@@ -254,5 +254,78 @@ mod authorization {
254
254
255
255
assert_eq ! ( response. status, 200 ) ;
256
256
}
257
- mod for_admin_users { }
257
+ mod for_admin_users {
258
+ use torrust_index:: web:: api;
259
+
260
+ use crate :: {
261
+ common:: {
262
+ client:: Client ,
263
+ contexts:: category:: {
264
+ asserts:: assert_deleted_category_response,
265
+ fixtures:: random_category_name,
266
+ forms:: { AddCategoryForm , DeleteCategoryForm } ,
267
+ } ,
268
+ } ,
269
+ e2e:: {
270
+ environment:: TestEnv ,
271
+ web:: api:: v1:: contexts:: { category:: steps:: add_random_category, user:: steps:: new_logged_in_admin} ,
272
+ } ,
273
+ } ;
274
+
275
+ #[ tokio:: test]
276
+ async fn it_should_allow_admins_to_add_new_categories ( ) {
277
+ let mut env = TestEnv :: new ( ) ;
278
+ env. start ( api:: Version :: V1 ) . await ;
279
+
280
+ let logged_in_admin = new_logged_in_admin ( & env) . await ;
281
+
282
+ let client = Client :: authenticated ( & env. server_socket_addr ( ) . unwrap ( ) , & logged_in_admin. token ) ;
283
+
284
+ let category_name = random_category_name ( ) ;
285
+
286
+ let response = client
287
+ . add_category ( AddCategoryForm {
288
+ name : category_name. to_string ( ) ,
289
+ icon : None ,
290
+ } )
291
+ . await ;
292
+
293
+ assert_eq ! ( response. status, 200 ) ;
294
+ }
295
+ #[ tokio:: test]
296
+ async fn it_should_allow_admins_to_delete_categories ( ) {
297
+ let mut env = TestEnv :: new ( ) ;
298
+ env. start ( api:: Version :: V1 ) . await ;
299
+
300
+ let logged_in_admin = new_logged_in_admin ( & env) . await ;
301
+
302
+ let client = Client :: authenticated ( & env. server_socket_addr ( ) . unwrap ( ) , & logged_in_admin. token ) ;
303
+
304
+ let added_category_name = add_random_category ( & env) . await ;
305
+
306
+ let response = client
307
+ . delete_category ( DeleteCategoryForm {
308
+ name : added_category_name. to_string ( ) ,
309
+ icon : None ,
310
+ } )
311
+ . await ;
312
+
313
+ assert_deleted_category_response ( & response, & added_category_name) ;
314
+ }
315
+ #[ tokio:: test]
316
+ async fn it_should_allow_admin_users_to_get_categories ( ) {
317
+ let mut env = TestEnv :: new ( ) ;
318
+ env. start ( api:: Version :: V1 ) . await ;
319
+
320
+ let logged_in_admin = new_logged_in_admin ( & env) . await ;
321
+
322
+ let client = Client :: authenticated ( & env. server_socket_addr ( ) . unwrap ( ) , & logged_in_admin. token ) ;
323
+
324
+ add_random_category ( & env) . await ;
325
+
326
+ let response = client. get_categories ( ) . await ;
327
+
328
+ assert_eq ! ( response. status, 200 ) ;
329
+ }
330
+ }
258
331
}
0 commit comments