summaryrefslogtreecommitdiff
path: root/src/test/fixtures
diff options
context:
space:
mode:
authorKit La Touche <kit@transneptune.net>2024-09-30 21:41:36 -0400
committerKit La Touche <kit@transneptune.net>2024-09-30 21:41:36 -0400
commitc0fead957c6433be1ddfbbe8a55276a4aa8fc4df (patch)
treefb8a12519e86628349d8070a193d3ce75a82e1a8 /src/test/fixtures
parenta6a170ab5320d9ef0a2e007ac3ab75edee574fef (diff)
parent6c054c5b8d43a818ccfa9087960dc19b286e6bb7 (diff)
Merge branch 'main' into feature-frontend
Diffstat (limited to 'src/test/fixtures')
-rw-r--r--src/test/fixtures/identity.rs18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/test/fixtures/identity.rs b/src/test/fixtures/identity.rs
index 69b5f4c..633fb8a 100644
--- a/src/test/fixtures/identity.rs
+++ b/src/test/fixtures/identity.rs
@@ -3,7 +3,7 @@ use uuid::Uuid;
use crate::{
app::App,
clock::RequestedAt,
- login::extract::{IdentitySecret, IdentityToken},
+ login::extract::{Identity, IdentitySecret, IdentityToken},
password::Password,
};
@@ -22,6 +22,22 @@ pub async fn logged_in(app: &App, login: &(String, Password), now: &RequestedAt)
IdentityToken::new().set(token)
}
+pub async fn from_token(app: &App, token: &IdentityToken, issued_at: &RequestedAt) -> Identity {
+ let secret = token.secret().expect("identity token has a secret");
+ let (token, login) = app
+ .logins()
+ .validate(&secret, issued_at)
+ .await
+ .expect("always validates newly-issued secret");
+
+ Identity { token, login }
+}
+
+pub async fn identity(app: &App, login: &(String, Password), issued_at: &RequestedAt) -> Identity {
+ let secret = logged_in(app, login, issued_at).await;
+ from_token(app, &secret, issued_at).await
+}
+
pub fn secret(identity: &IdentityToken) -> IdentitySecret {
identity.secret().expect("identity contained a secret")
}