use sshcerts::ssh::AllowedSigners;
#[test]
fn parse_good_allowed_signers() {
let allowed_signers = AllowedSigners::from_path("tests/allowed_signers/good_allowed_signers");
assert!(allowed_signers.is_ok());
let AllowedSigners(allowed_signers) = allowed_signers.unwrap();
assert_eq!(allowed_signers.len(), 3);
assert_eq!(
allowed_signers[0].key.fingerprint().to_string(),
"SHA256:QAtqtvvCePelMMUNPP7madH2zNa1ATxX1nt9L/0C5+M",
);
assert_eq!(
allowed_signers[0].principals,
vec!["mitchell@confurious.io".to_string()],
);
assert!(!allowed_signers[0].cert_authority);
assert!(allowed_signers[0].namespaces.is_none());
assert!(allowed_signers[0].valid_after.is_none());
assert!(allowed_signers[0].valid_before.is_none());
assert_eq!(
allowed_signers[1].principals,
vec!["mitchell@confurious.io".to_string(), "mitchel2@confurious.io".to_string()],
);
assert!(allowed_signers[1].cert_authority);
assert_eq!(
allowed_signers[1].namespaces,
Some(vec!["thanh".to_string(), "#mitchell".to_string()])
);
assert!(allowed_signers[1].valid_after.is_none());
assert_eq!(
allowed_signers[1].valid_before,
Some(1714867200i64),
);
assert_eq!(
allowed_signers[2].namespaces,
Some(vec![
"thanh".to_string(),
" ".to_string(),
"mitchell mitchell".to_string(),
" andrew andrew".to_string(),
]),
);
assert!(allowed_signers[2].valid_after.is_none());
assert_eq!(
allowed_signers[2].valid_before,
Some(1714867200i64),
);
}