diff options
Diffstat (limited to 'src/login/routes')
| -rw-r--r-- | src/login/routes/test/login.rs | 32 |
1 files changed, 10 insertions, 22 deletions
diff --git a/src/login/routes/test/login.rs b/src/login/routes/test/login.rs index 6a3b79c..68c92de 100644 --- a/src/login/routes/test/login.rs +++ b/src/login/routes/test/login.rs @@ -6,16 +6,16 @@ use axum::{ use crate::{login::routes, test::fixtures, token::app}; #[tokio::test] -async fn new_identity() { +async fn correct_credentials() { // Set up the environment let app = fixtures::scratch_app().await; + let (name, password) = fixtures::login::create_with_password(&app, &fixtures::now()).await; // Call the endpoint let identity = fixtures::identity::not_logged_in(); let logged_in_at = fixtures::now(); - let (name, password) = fixtures::login::propose(); let request = routes::LoginRequest { name: name.clone(), password, @@ -33,54 +33,42 @@ async fn new_identity() { // Verify the semantics let validated_at = fixtures::now(); - let (_, validated) = app + let (_, validated_login) = app .tokens() .validate(&secret, &validated_at) .await .expect("identity secret is valid"); - assert_eq!(name, validated.name); + assert_eq!(name, validated_login.name); } #[tokio::test] -async fn existing_identity() { +async fn invalid_name() { // Set up the environment let app = fixtures::scratch_app().await; - let (name, password) = fixtures::login::create_with_password(&app, &fixtures::now()).await; // Call the endpoint let identity = fixtures::identity::not_logged_in(); let logged_in_at = fixtures::now(); + let (name, password) = fixtures::login::propose(); let request = routes::LoginRequest { name: name.clone(), password, }; - let (identity, status) = + let routes::LoginError(error) = routes::on_login(State(app.clone()), logged_in_at, identity, Json(request)) .await - .expect("logged in with valid credentials"); + .expect_err("logged in with an incorrect password"); // Verify the return value's basic structure - assert_eq!(StatusCode::NO_CONTENT, status); - let secret = identity.secret().expect("logged in with valid credentials"); - - // Verify the semantics - - let validated_at = fixtures::now(); - let (_, validated_login) = app - .tokens() - .validate(&secret, &validated_at) - .await - .expect("identity secret is valid"); - - assert_eq!(name, validated_login.name); + assert!(matches!(error, app::LoginError::Rejected)); } #[tokio::test] -async fn authentication_failed() { +async fn incorrect_password() { // Set up the environment let app = fixtures::scratch_app().await; |
