#[cfg(test)]
mod tests {
use crate::common::error::ErrorVerbosity;
use crate::oidc::{OidcJwtVerifier, OidcProviderConfig};
use std::time::Duration;
#[test]
fn test_new_verifier() {
let config = OidcProviderConfig::new(
"https://accounts.example.com",
Some("https://accounts.example.com/.well-known/jwks.json"),
&["client1".to_string()],
None,
)
.unwrap();
let verifier = OidcJwtVerifier::new(vec![config]).unwrap();
let provider_ids = verifier.get_provider_ids();
assert_eq!(provider_ids.len(), 1);
assert!(provider_ids.contains(&"https://accounts.example.com".to_string()));
}
#[test]
fn test_new_single_provider() {
let verifier = OidcJwtVerifier::new_single_provider(
"https://accounts.example.com",
Some("https://accounts.example.com/.well-known/jwks.json"),
&["client1".to_string()],
)
.unwrap();
let provider_ids = verifier.get_provider_ids();
assert_eq!(provider_ids.len(), 1);
assert!(provider_ids.contains(&"https://accounts.example.com".to_string()));
}
#[test]
fn test_add_provider() {
let mut verifier = OidcJwtVerifier::new(vec![]).unwrap();
let config = OidcProviderConfig::new(
"https://accounts.example.com",
Some("https://accounts.example.com/.well-known/jwks.json"),
&["client1".to_string()],
None,
)
.unwrap();
verifier.add_provider("example", config).unwrap();
let provider_ids = verifier.get_provider_ids();
assert_eq!(provider_ids.len(), 1);
assert!(provider_ids.contains(&"example".to_string()));
}
#[test]
fn test_add_provider_with_discovery() {
let mut verifier = OidcJwtVerifier::new(vec![]).unwrap();
verifier
.add_provider_with_discovery(
"example",
"https://accounts.example.com",
&["client1".to_string()],
)
.unwrap();
let provider_ids = verifier.get_provider_ids();
assert_eq!(provider_ids.len(), 1);
assert!(provider_ids.contains(&"example".to_string()));
}
#[test]
fn test_remove_provider() {
let config = OidcProviderConfig::new(
"https://accounts.example.com",
Some("https://accounts.example.com/.well-known/jwks.json"),
&["client1".to_string()],
None,
)
.unwrap();
let mut verifier = OidcJwtVerifier::new(vec![config]).unwrap();
let provider_ids = verifier.get_provider_ids();
assert_eq!(provider_ids.len(), 1);
verifier
.remove_provider("https://accounts.example.com")
.unwrap();
let provider_ids = verifier.get_provider_ids();
assert_eq!(provider_ids.len(), 0);
}
#[test]
fn test_set_error_verbosity() {
let mut verifier = OidcJwtVerifier::new(vec![]).unwrap();
verifier.set_error_verbosity(ErrorVerbosity::Detailed);
}
#[test]
fn test_set_discovery_cache_duration() {
let mut verifier = OidcJwtVerifier::new(vec![]).unwrap();
verifier.set_discovery_cache_duration(Duration::from_secs(3600 * 12));
}
}