Files
sausage/host/tests/cred_presentation.rs
T

17 lines
1.1 KiB
Rust

//! Approval text exposes public policy and rejects deceptive display controls.
use sausage::cred::{edits::Operation, items::Item, summary::operation_summary};
#[test]
fn summaries_show_public_values_rules_free_use_and_wildcard_risk() {
let item: Item = serde_json::from_value(serde_json::json!({"name":"test","free_use":true,"rules":[{"scheme":"https","hosts":["*.com","api.example"],"port":8443,"path_prefixes":["/"],"methods":null}],"validate_js":null,"transform_js":"","fields":[]})).unwrap();
let text = operation_summary(&Operation::CreateItem { config:item });
for part in ["without a grant","*.com","api.example","8443","wildcard"] { assert!(text.contains(part)); }
let text = operation_summary(&Operation::SetFieldValue { field:"public-id".into(), value:"public-value".into() });
assert!(text.contains("public-id"));
assert!(text.contains("public-value"));
}
#[test]
fn summaries_remove_bidi_and_zero_width_controls() {
let text = operation_summary(&Operation::SetName { name:"a\u{202e}b\u{2066}c\u{200b}d\u{200d}e\u{feff}".into() });
for c in ['\u{202e}','\u{2066}','\u{200b}','\u{200d}','\u{feff}'] { assert!(!text.contains(c)); }
}