use keyhog_scanner::testing::shape::{
looks_like_credential_colliding_punctuation, looks_like_punctuation_decorated_identifier,
looks_like_syntactic_punctuation_marker,
};
#[test]
fn tier_a_markers_are_syntactic_only() {
assert!(looks_like_syntactic_punctuation_marker("--api-secret"));
assert!(looks_like_syntactic_punctuation_marker("&password"));
assert!(looks_like_syntactic_punctuation_marker("@api_key"));
assert!(looks_like_syntactic_punctuation_marker("$API_KEY"));
assert!(looks_like_syntactic_punctuation_marker("Password:"));
assert!(!looks_like_syntactic_punctuation_marker(
"@gAdtFo%B!tcnSl+A"
));
assert!(!looks_like_syntactic_punctuation_marker(
"SnowFlakePass123!"
));
assert!(!looks_like_syntactic_punctuation_marker("/7j3M6glXEI5gvG5"));
}
#[test]
fn tier_b_collision_keeps_real_bang_passwords() {
assert!(looks_like_credential_colliding_punctuation(
"/7j3M6glXEI5gvG5"
));
assert!(looks_like_credential_colliding_punctuation(
"!t1c!_Axt_7ARTF"
));
assert!(looks_like_credential_colliding_punctuation(
"privateAccessToken!"
));
assert!(!looks_like_credential_colliding_punctuation(
"SnowFlakePass123!"
));
assert!(!looks_like_credential_colliding_punctuation(
"SourceTreePass1234!"
));
assert!(!looks_like_credential_colliding_punctuation(
"Vk9Bn3Lp7Qm2Rs5"
));
}
#[test]
fn anchored_password_ending_in_bang_is_not_suppressed_by_either_tier() {
let v = "SnowFlakePass123!";
assert!(!looks_like_syntactic_punctuation_marker(v));
assert!(!looks_like_credential_colliding_punctuation(v));
assert!(!looks_like_punctuation_decorated_identifier(v));
}