diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2024-10-11 21:16:11 -0400 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2024-10-11 21:16:11 -0400 |
| commit | 864febeefc5213928bf88f89a714a006326e5b41 (patch) | |
| tree | b684ab871771044d2b8153f018eb49a001610f72 /src/login/routes | |
| parent | 62349ab4ce463b6aafd818021849c63f60f6bf49 (diff) | |
Stop creating accounts during login.
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; |
