@@ -283,4 +283,75 @@ mod authorization {
283
283
assert_eq ! ( response. status, 401 ) ;
284
284
}
285
285
}
286
+
287
+ mod for_registered_users {
288
+ use torrust_index:: web:: api;
289
+
290
+ use crate :: common:: client:: Client ;
291
+ use crate :: common:: contexts:: user:: fixtures:: { DEFAULT_PASSWORD , VALID_PASSWORD } ;
292
+ use crate :: common:: contexts:: user:: forms:: { ChangePasswordForm , RegistrationForm , Username } ;
293
+ use crate :: e2e:: environment:: TestEnv ;
294
+ use crate :: e2e:: web:: api:: v1:: contexts:: user:: steps:: { new_logged_in_user, new_registered_user} ;
295
+
296
+ #[ tokio:: test]
297
+ async fn it_should_not_allow_a_registered_user_to_register ( ) {
298
+ let mut env = TestEnv :: new ( ) ;
299
+ env. start ( api:: Version :: V1 ) . await ;
300
+
301
+ let logged_in_user = new_logged_in_user ( & env) . await ;
302
+
303
+ let client = Client :: authenticated ( & env. server_socket_addr ( ) . unwrap ( ) , & logged_in_user. token ) ;
304
+
305
+ let response = client
306
+ . register_user ( RegistrationForm {
307
+ username : logged_in_user. username ,
308
+ email : Some ( "test@email.com" . to_string ( ) ) ,
309
+ password : VALID_PASSWORD . to_string ( ) ,
310
+ confirm_password : VALID_PASSWORD . to_string ( ) ,
311
+ } )
312
+ . await ;
313
+
314
+ assert_eq ! ( response. status, 400 ) ;
315
+ }
316
+
317
+ #[ tokio:: test]
318
+ async fn it_should_allow_registered_users_to_change_their_passwords ( ) {
319
+ let mut env = TestEnv :: new ( ) ;
320
+ env. start ( api:: Version :: V1 ) . await ;
321
+
322
+ let logged_in_user = new_logged_in_user ( & env) . await ;
323
+
324
+ let client = Client :: authenticated ( & env. server_socket_addr ( ) . unwrap ( ) , & logged_in_user. token ) ;
325
+
326
+ let new_password = VALID_PASSWORD . to_string ( ) ;
327
+
328
+ let response = client
329
+ . change_password (
330
+ Username :: new ( logged_in_user. username . clone ( ) ) ,
331
+ ChangePasswordForm {
332
+ current_password : DEFAULT_PASSWORD . to_string ( ) ,
333
+ password : new_password. clone ( ) ,
334
+ confirm_password : new_password. clone ( ) ,
335
+ } ,
336
+ )
337
+ . await ;
338
+
339
+ assert_eq ! ( response. status, 200 ) ;
340
+ }
341
+ #[ tokio:: test]
342
+ async fn it_should_not_allow_a_registered_to_ban_a_user ( ) {
343
+ let mut env = TestEnv :: new ( ) ;
344
+ env. start ( api:: Version :: V1 ) . await ;
345
+
346
+ let logged_in_user = new_logged_in_user ( & env) . await ;
347
+
348
+ let client = Client :: authenticated ( & env. server_socket_addr ( ) . unwrap ( ) , & logged_in_user. token ) ;
349
+
350
+ let registered_user = new_registered_user ( & env) . await ;
351
+
352
+ let response = client. ban_user ( Username :: new ( registered_user. username . clone ( ) ) ) . await ;
353
+
354
+ assert_eq ! ( response. status, 403 ) ;
355
+ }
356
+ }
286
357
}
0 commit comments