pub fn is_admin_user(admin_users: &[String], user_email: &str) -> bool {
admin_users
.iter()
.any(|admin| admin.eq_ignore_ascii_case(user_email))
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_is_admin_user_case_insensitive() {
let admin_users = vec!["Admin@Example.Com".to_string(), "user@test.org".to_string()];
assert!(is_admin_user(&admin_users, "Admin@Example.Com"));
assert!(is_admin_user(&admin_users, "admin@example.com"));
assert!(is_admin_user(&admin_users, "ADMIN@EXAMPLE.COM"));
assert!(is_admin_user(&admin_users, "AdMiN@eXaMpLe.CoM"));
assert!(is_admin_user(&admin_users, "user@test.org"));
assert!(is_admin_user(&admin_users, "USER@TEST.ORG"));
assert!(!is_admin_user(&admin_users, "other@example.com"));
assert!(!is_admin_user(&admin_users, ""));
}
#[test]
fn test_is_admin_user_empty_list() {
let admin_users: Vec<String> = vec![];
assert!(!is_admin_user(&admin_users, "admin@example.com"));
}
}