github.com/fastly/go-fastly/v5@v5.3.0/fastly/user_test.go (about)

     1  package fastly
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func TestClient_UsersCurrent(t *testing.T) {
     8  	t.Parallel()
     9  
    10  	var err error
    11  	var u *User
    12  	record(t, "users/get_current_user", func(c *Client) {
    13  		u, err = c.GetCurrentUser()
    14  	})
    15  	if err != nil {
    16  		t.Fatal(err)
    17  	}
    18  	t.Logf("%+v", u)
    19  }
    20  
    21  func TestClient_Users(t *testing.T) {
    22  	t.Parallel()
    23  
    24  	fixtureBase := "users/"
    25  
    26  	// Create
    27  	var err error
    28  	var u *User
    29  	record(t, fixtureBase+"create", func(c *Client) {
    30  		u, err = c.CreateUser(&CreateUserInput{
    31  			Login: "go-fastly-test+user1@example.com",
    32  			Name:  "test user",
    33  			Role:  "engineer",
    34  		})
    35  	})
    36  	if err != nil {
    37  		t.Fatal(err)
    38  	}
    39  
    40  	// Ensure deleted
    41  	defer func() {
    42  		record(t, fixtureBase+"cleanup", func(c *Client) {
    43  			c.DeleteUser(&DeleteUserInput{
    44  				ID: u.ID,
    45  			})
    46  		})
    47  	}()
    48  
    49  	if u.Login != "go-fastly-test+user1@example.com" {
    50  		t.Errorf("bad login: %v", u.Login)
    51  	}
    52  
    53  	if u.Name != "test user" {
    54  		t.Errorf("bad name: %v", u.Name)
    55  	}
    56  
    57  	if u.Role != "engineer" {
    58  		t.Errorf("bad role: %v", u.Role)
    59  	}
    60  
    61  	// List
    62  	var us []*User
    63  	record(t, fixtureBase+"list", func(c *Client) {
    64  		us, err = c.ListCustomerUsers(&ListCustomerUsersInput{
    65  			CustomerID: u.CustomerID,
    66  		})
    67  	})
    68  	if err != nil {
    69  		t.Fatal(err)
    70  	}
    71  	if len(us) < 1 {
    72  		t.Errorf("bad users: %v", us)
    73  	}
    74  
    75  	// Get
    76  	var nu *User
    77  	record(t, fixtureBase+"get", func(c *Client) {
    78  		nu, err = c.GetUser(&GetUserInput{
    79  			ID: u.ID,
    80  		})
    81  	})
    82  	if err != nil {
    83  		t.Fatal(err)
    84  	}
    85  	if u.Name != nu.Name {
    86  		t.Errorf("bad name: %q (%q)", u.Name, nu.Name)
    87  	}
    88  
    89  	// Update
    90  	var uu *User
    91  	record(t, fixtureBase+"update", func(c *Client) {
    92  		uu, err = c.UpdateUser(&UpdateUserInput{
    93  			ID:   u.ID,
    94  			Name: String("updated user"),
    95  			Role: String("superuser"),
    96  		})
    97  	})
    98  	if err != nil {
    99  		t.Fatal(err)
   100  	}
   101  	if uu.Name != "updated user" {
   102  		t.Errorf("bad name: %q", uu.Name)
   103  	}
   104  	if uu.Role != "superuser" {
   105  		t.Errorf("bad role: %q", uu.Role)
   106  	}
   107  
   108  	// Reset Password
   109  	record(t, fixtureBase+"reset_password", func(c *Client) {
   110  		err = c.ResetUserPassword(&ResetUserPasswordInput{
   111  			Login: uu.Login,
   112  		})
   113  	})
   114  	if err != nil {
   115  		t.Fatal(err)
   116  	}
   117  
   118  	// Delete
   119  	record(t, fixtureBase+"delete", func(c *Client) {
   120  		err = c.DeleteUser(&DeleteUserInput{
   121  			ID: u.ID,
   122  		})
   123  	})
   124  	if err != nil {
   125  		t.Fatal(err)
   126  	}
   127  }
   128  
   129  func TestClient_CreateUser_validation(t *testing.T) {
   130  	var err error
   131  	_, err = testClient.CreateUser(&CreateUserInput{
   132  		Login: "",
   133  	})
   134  	if err != ErrMissingLogin {
   135  		t.Errorf("bad error: %s", err)
   136  	}
   137  
   138  	_, err = testClient.CreateUser(&CreateUserInput{
   139  		Login: "new+user@example.com",
   140  		Name:  "",
   141  	})
   142  	if err != ErrMissingName {
   143  		t.Errorf("bad error: %s", err)
   144  	}
   145  }
   146  
   147  func TestClient_ListCustomerUsers_validation(t *testing.T) {
   148  	var err error
   149  	_, err = testClient.ListCustomerUsers(&ListCustomerUsersInput{
   150  		CustomerID: "",
   151  	})
   152  	if err != ErrMissingCustomerID {
   153  		t.Errorf("bad error: %s", err)
   154  	}
   155  }
   156  
   157  func TestClient_GetUser_validation(t *testing.T) {
   158  	var err error
   159  	_, err = testClient.GetUser(&GetUserInput{
   160  		ID: "",
   161  	})
   162  	if err != ErrMissingID {
   163  		t.Errorf("bad error: %s", err)
   164  	}
   165  }
   166  
   167  func TestClient_UpdateUser_validation(t *testing.T) {
   168  	var err error
   169  	_, err = testClient.UpdateUser(&UpdateUserInput{
   170  		ID: "",
   171  	})
   172  	if err != ErrMissingID {
   173  		t.Errorf("bad error: %s", err)
   174  	}
   175  }
   176  
   177  func TestClient_DeleteUser_validation(t *testing.T) {
   178  	err := testClient.DeleteUser(&DeleteUserInput{
   179  		ID: "",
   180  	})
   181  	if err != ErrMissingID {
   182  		t.Errorf("bad error: %s", err)
   183  	}
   184  }
   185  
   186  func TestClient_ResetUser_validation(t *testing.T) {
   187  	err := testClient.ResetUserPassword(&ResetUserPasswordInput{
   188  		Login: "",
   189  	})
   190  	if err != ErrMissingLogin {
   191  		t.Errorf("bad error: %s", err)
   192  	}
   193  }