summaryrefslogtreecommitdiff
path: root/src/login/routes
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-09-29 02:02:41 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-09-29 02:04:01 -0400
commit6c054c5b8d43a818ccfa9087960dc19b286e6bb7 (patch)
treec1eff6f13a1ac3ba102fcfa22de9f25ed30546d0 /src/login/routes
parent0b1cb80dd0b0f90c4892de7e7a2d18a076ecbdf2 (diff)
Reimplement the logout machinery in terms of token IDs, not token secrets.
This (a) reduces the amount of passing secrets around that's needed, and (b) allows tests to log out in a more straightforwards manner. Ish. The fixtures are a mess, but so is the nomenclature. Fix the latter and the former will probably follow.
Diffstat (limited to 'src/login/routes')
-rw-r--r--src/login/routes/test/logout.rs30
1 files changed, 21 insertions, 9 deletions
diff --git a/src/login/routes/test/logout.rs b/src/login/routes/test/logout.rs
index 05594be..20b0d55 100644
--- a/src/login/routes/test/logout.rs
+++ b/src/login/routes/test/logout.rs
@@ -22,6 +22,7 @@ async fn successful() {
let (response_identity, response_status) = routes::on_logout(
State(app.clone()),
+ fixtures::now(),
identity.clone(),
Json(routes::LogoutRequest {}),
)
@@ -57,10 +58,14 @@ async fn no_identity() {
// Call the endpoint
let identity = fixtures::identity::not_logged_in();
- let (identity, status) =
- routes::on_logout(State(app), identity, Json(routes::LogoutRequest {}))
- .await
- .expect("logged out with no token");
+ let (identity, status) = routes::on_logout(
+ State(app),
+ fixtures::now(),
+ identity,
+ Json(routes::LogoutRequest {}),
+ )
+ .await
+ .expect("logged out with no token");
// Verify the return value's basic structure
@@ -77,12 +82,19 @@ async fn invalid_token() {
// Call the endpoint
let identity = fixtures::identity::fictitious();
- let routes::LogoutError(error) =
- routes::on_logout(State(app), identity, Json(routes::LogoutRequest {}))
- .await
- .expect_err("logged out with an invalid token");
+ let error = routes::on_logout(
+ State(app),
+ fixtures::now(),
+ identity,
+ Json(routes::LogoutRequest {}),
+ )
+ .await
+ .expect_err("logged out with an invalid token");
// Verify the return value's basic structure
- assert!(matches!(error, app::ValidateError::InvalidToken));
+ assert!(matches!(
+ error,
+ routes::LogoutError::ValidateError(app::ValidateError::InvalidToken)
+ ));
}