Skip to content

Commit b7f2a61

Browse files
committedOct 16, 2024··
test: tag context authorization tests for admin users
1 parent 082adf0 commit b7f2a61

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed
 

‎tests/e2e/web/api/v1/contexts/tag/contract.rs

+64
Original file line numberDiff line numberDiff line change
@@ -251,4 +251,68 @@ mod authorization {
251251
assert_eq!(response.status, 200);
252252
}
253253
}
254+
255+
mod for_admin_users {
256+
use torrust_index::web::api;
257+
258+
use crate::common::client::Client;
259+
use crate::common::contexts::tag::fixtures::random_tag_name;
260+
use crate::common::contexts::tag::forms::{AddTagForm, DeleteTagForm};
261+
use crate::e2e::environment::TestEnv;
262+
use crate::e2e::web::api::v1::contexts::tag::steps::{add_random_tag, add_tag};
263+
use crate::e2e::web::api::v1::contexts::user::steps::new_logged_in_admin;
264+
265+
#[tokio::test]
266+
async fn it_should_allow_admins_to_add_new_tags() {
267+
let mut env = TestEnv::new();
268+
env.start(api::Version::V1).await;
269+
270+
let logged_in_admin = new_logged_in_admin(&env).await;
271+
272+
let client = Client::authenticated(&env.server_socket_addr().unwrap(), &logged_in_admin.token);
273+
274+
let tag_name = random_tag_name();
275+
276+
let response = client
277+
.add_tag(AddTagForm {
278+
name: tag_name.to_string(),
279+
})
280+
.await;
281+
282+
assert_eq!(response.status, 200);
283+
}
284+
#[tokio::test]
285+
async fn it_should_allow_admins_to_delete_tags() {
286+
let mut env = TestEnv::new();
287+
env.start(api::Version::V1).await;
288+
289+
let logged_in_admin = new_logged_in_admin(&env).await;
290+
291+
let client = Client::authenticated(&env.server_socket_addr().unwrap(), &logged_in_admin.token);
292+
293+
let (tag_id, _tag_name) = add_random_tag(&env).await;
294+
295+
let response = client.delete_tag(DeleteTagForm { tag_id }).await;
296+
297+
assert_eq!(response.status, 200);
298+
}
299+
#[tokio::test]
300+
async fn it_should_allow_admin_users_to_get_tags() {
301+
let mut env = TestEnv::new();
302+
env.start(api::Version::V1).await;
303+
304+
let logged_in_admin = new_logged_in_admin(&env).await;
305+
306+
let client = Client::authenticated(&env.server_socket_addr().unwrap(), &logged_in_admin.token);
307+
308+
// Add a tag
309+
let tag_name = random_tag_name();
310+
let response = add_tag(&tag_name, &env).await;
311+
assert_eq!(response.status, 200);
312+
313+
let response = client.get_tags().await;
314+
315+
assert_eq!(response.status, 200);
316+
}
317+
}
254318
}

0 commit comments

Comments
 (0)
Please sign in to comment.