use cellos_core::types::SecretView;
const SENTINEL: &str = "ultra-confidential-sentinel-value-do-not-leak";
fn make_view() -> SecretView {
SecretView {
key: "DB_PASSWORD".to_string(),
value: zeroize::Zeroizing::new(SENTINEL.to_string()),
}
}
#[test]
fn debug_redacts_secret_value() {
let view = make_view();
let formatted = format!("{:?}", view);
assert!(
formatted.contains("<REDACTED>"),
"Debug output must contain the literal `<REDACTED>` marker; got: {}",
formatted
);
assert!(
!formatted.contains(SENTINEL),
"Debug output must NOT contain the secret value; got: {}",
formatted
);
}
#[test]
fn debug_pretty_redacts_secret_value() {
let view = make_view();
let formatted = format!("{:#?}", view);
assert!(
formatted.contains("<REDACTED>"),
"pretty Debug must contain `<REDACTED>`; got: {}",
formatted
);
assert!(
!formatted.contains(SENTINEL),
"pretty Debug must NOT contain the secret value; got: {}",
formatted
);
}
#[test]
fn debug_exposes_key_for_audit_correlation() {
let view = make_view();
let formatted = format!("{:?}", view);
assert!(
formatted.contains("DB_PASSWORD"),
"Debug must expose the key (kind) for audit correlation; got: {}",
formatted
);
}