use thiserror::Error;
#[derive(Debug, Error)]
pub enum TestAuthError {
#[error("session backend error: {0}")]
SessionError(String),
#[error("JWT signing error: {0}")]
JwtError(String),
#[error("secondary auth error: {0}")]
SecondaryAuthError(String),
#[error("no primary auth configured")]
NoPrimaryAuth,
#[error("MFA user not registered: {0}")]
MfaUserNotRegistered(String),
#[error("client error: {0}")]
ClientError(String),
}
#[cfg(test)]
mod tests {
use super::*;
use rstest::*;
#[rstest]
#[case(TestAuthError::SessionError("timeout".into()), "session backend error: timeout")]
#[case(TestAuthError::JwtError("bad key".into()), "JWT signing error: bad key")]
#[case(TestAuthError::NoPrimaryAuth, "no primary auth configured")]
#[case(TestAuthError::MfaUserNotRegistered("alice".into()), "MFA user not registered: alice")]
#[case(TestAuthError::ClientError("header fail".into()), "client error: header fail")]
fn display_formats(#[case] error: TestAuthError, #[case] expected: &str) {
assert_eq!(error.to_string(), expected);
}
}