Skip to content

Commit ae276ed

Browse files
committed
test: registered users authorization tests
1 parent ab2164e commit ae276ed

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

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

+71
Original file line numberDiff line numberDiff line change
@@ -283,4 +283,75 @@ mod authorization {
283283
assert_eq!(response.status, 401);
284284
}
285285
}
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+
}
286357
}

0 commit comments

Comments
 (0)