use axum::extract::FromRef; use crate::{ login::Login, name::Name, test::fixtures, token::{Secret, app, app::Tokens}, }; pub async fn valid_for_name(app: &App, secret: &Secret, name: &Name) where Tokens: FromRef, { let identity = Tokens::from_ref(app) .validate(secret, &fixtures::now()) .await .expect("provided secret is valid"); assert_eq!(name, &identity.login.name); } pub async fn valid_for_login(app: &App, secret: &Secret, login: &Login) where Tokens: FromRef, { let identity = Tokens::from_ref(app) .validate(secret, &fixtures::now()) .await .expect("provided secret is valid"); assert_eq!(login, &identity.login); } pub async fn invalid(app: &App, secret: &Secret) where Tokens: FromRef, { let error = Tokens::from_ref(app) .validate(secret, &fixtures::now()) .await .expect_err("provided secret is invalid"); assert!(matches!(error, app::ValidateError::InvalidToken)); }