@@ -57,6 +57,12 @@ func TestUser_AddRemove(t *testing.T) {
57
57
require .Equal (t , "phil" , users [0 ].Name )
58
58
require .Equal (t , "emma" , users [1 ].Name )
59
59
require .Equal (t , user .Everyone , users [2 ].Name )
60
+
61
+ // Reject invalid user change
62
+ rr = request (t , s , "PUT" , "/v1/users" , `{"username": "ben"}` , map [string ]string {
63
+ "Authorization" : util .BasicAuth ("phil" , "phil" ),
64
+ })
65
+ require .Equal (t , 400 , rr .Code )
60
66
}
61
67
62
68
func TestUser_ChangeUserPassword (t * testing.T ) {
@@ -97,6 +103,46 @@ func TestUser_ChangeUserPassword(t *testing.T) {
97
103
require .Equal (t , 200 , rr .Code )
98
104
}
99
105
106
+ func TestUser_ChangeUserTier (t * testing.T ) {
107
+ s := newTestServer (t , newTestConfigWithAuthFile (t ))
108
+ defer s .closeDatabases ()
109
+
110
+ // Create admin, tier
111
+ require .Nil (t , s .userManager .AddUser ("phil" , "phil" , user .RoleAdmin ))
112
+ require .Nil (t , s .userManager .AddTier (& user.Tier {
113
+ Code : "tier1" ,
114
+ }))
115
+ require .Nil (t , s .userManager .AddTier (& user.Tier {
116
+ Code : "tier2" ,
117
+ }))
118
+
119
+ // Create user with tier via API
120
+ rr := request (t , s , "POST" , "/v1/users" , `{"username": "ben", "password":"ben", "tier": "tier1"}` , map [string ]string {
121
+ "Authorization" : util .BasicAuth ("phil" , "phil" ),
122
+ })
123
+ require .Equal (t , 200 , rr .Code )
124
+
125
+ // Check users
126
+ users , err := s .userManager .Users ()
127
+ require .Nil (t , err )
128
+ require .Equal (t , 3 , len (users ))
129
+ require .Equal (t , "phil" , users [0 ].Name )
130
+ require .Equal (t , "ben" , users [1 ].Name )
131
+ require .Equal (t , user .RoleUser , users [1 ].Role )
132
+ require .Equal (t , "tier1" , users [1 ].Tier .Code )
133
+
134
+ // Change user tier via API
135
+ rr = request (t , s , "PUT" , "/v1/users" , `{"username": "ben", "tier": "tier2"}` , map [string ]string {
136
+ "Authorization" : util .BasicAuth ("phil" , "phil" ),
137
+ })
138
+ require .Equal (t , 200 , rr .Code )
139
+
140
+ // Check users again
141
+ users , err = s .userManager .Users ()
142
+ require .Nil (t , err )
143
+ require .Equal (t , "tier2" , users [1 ].Tier .Code )
144
+ }
145
+
100
146
func TestUser_DontChangeAdminPassword (t * testing.T ) {
101
147
s := newTestServer (t , newTestConfigWithAuthFile (t ))
102
148
defer s .closeDatabases ()
0 commit comments