summaryrefslogtreecommitdiff
path: root/src/login/routes/test/login.rs
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-10-11 21:16:11 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-10-11 21:16:11 -0400
commit864febeefc5213928bf88f89a714a006326e5b41 (patch)
treeb684ab871771044d2b8153f018eb49a001610f72 /src/login/routes/test/login.rs
parent62349ab4ce463b6aafd818021849c63f60f6bf49 (diff)
Stop creating accounts during login.
Diffstat (limited to 'src/login/routes/test/login.rs')
-rw-r--r--src/login/routes/test/login.rs32
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;