Skip to content

Commit 8516731

Browse files
committed
test: category context authorization tests for admin users
1 parent 509873f commit 8516731

File tree

1 file changed

+74
-1
lines changed

1 file changed

+74
-1
lines changed

tests/e2e/web/api/v1/contexts/category/contract.rs

+74-1
Original file line numberDiff line numberDiff line change
@@ -254,5 +254,78 @@ mod authorization {
254254

255255
assert_eq!(response.status, 200);
256256
}
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+
}
258331
}

0 commit comments

Comments
 (0)