diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2025-10-28 14:41:50 -0400 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2025-10-28 14:41:50 -0400 |
| commit | 4a91792e023a5877f8ac9b8a352e99c4486d698f (patch) | |
| tree | 0b0e5466d0945a5f853e98eb8d0b0215e67ed3fb /src/test/fixtures/identity.rs | |
| parent | 9c271b27ff03cf4976326090ff54e3b5dfc04962 (diff) | |
| parent | 0ef69c7d256380e660edc45ace7f1d6151226340 (diff) | |
Merge remote-tracking branch 'codeberg/main' into push-notify
Diffstat (limited to 'src/test/fixtures/identity.rs')
| -rw-r--r-- | src/test/fixtures/identity.rs | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/test/fixtures/identity.rs b/src/test/fixtures/identity.rs index 93e4a38..20929f9 100644 --- a/src/test/fixtures/identity.rs +++ b/src/test/fixtures/identity.rs @@ -1,11 +1,15 @@ +use axum::extract::FromRef; + use crate::{ app::App, clock::RequestedAt, + login::app::Logins, name::Name, password::Password, test::fixtures, token::{ Token, + app::Tokens, extract::{Identity, IdentityCookie}, }, }; @@ -15,23 +19,30 @@ pub async fn create(app: &App, created_at: &RequestedAt) -> Identity { logged_in(app, &credentials, created_at).await } -pub async fn from_cookie( +pub async fn from_cookie<App>( app: &App, cookie: &IdentityCookie, validated_at: &RequestedAt, -) -> Identity { +) -> Identity +where + Tokens: FromRef<App>, +{ let secret = cookie.secret().expect("identity token has a secret"); - app.tokens() + Tokens::from_ref(app) .validate(&secret, validated_at) .await .expect("always validates newly-issued secret") } -pub async fn logged_in( +pub async fn logged_in<App>( app: &App, credentials: &(Name, Password), issued_at: &RequestedAt, -) -> Identity { +) -> Identity +where + Tokens: FromRef<App>, + Logins: FromRef<App>, +{ let secret = fixtures::cookie::logged_in(app, credentials, issued_at).await; from_cookie(app, &secret, issued_at).await } |
