use axum::extract::FromRef; use crate::{ login::app::{LoginError, Logins}, name::Name, password::Password, test::{fixtures, verify}, token::app::Tokens, }; pub async fn valid_login(app: &App, name: &Name, password: &Password) where Logins: FromRef, Tokens: FromRef, { let secret = Logins::from_ref(app) .with_password(name, password, &fixtures::now()) .await .expect("login credentials expected to be valid"); verify::token::valid_for_name(&app, &secret, &name).await; } pub async fn invalid_login(app: &App, name: &Name, password: &Password) where Logins: FromRef, { let error = Logins::from_ref(app) .with_password(name, password, &fixtures::now()) .await .expect_err("login credentials expected not to be valid"); assert!(matches!(error, LoginError::Rejected)); }