summaryrefslogtreecommitdiff
path: root/src/test/fixtures/identity.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/fixtures/identity.rs')
-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")
}