This commit is contained in:
Mateusz Gruszczyński committed 2026-10-06 23:54:01 +02:00
1 parent 9d6614c1b4
commit a9f9450f80
16 files changed
+171 -47

No files matched your search

+58
View File
@@ -45,4 +45,62 @@ mod tests {
};
assert!(rules.compile().is_err());
}
#[test]
fn response_age_is_allowed_but_applied_only_at_wire_stage() {
let request_age = HeaderRules {
request: vec![Rule {
op: Operation::Set,
name: "Age".into(),
value: Some("7".into()),
}],
response: vec![],
};
let request_compiled = request_age.compile().unwrap();
let mut request_headers = HeaderMap::new();
apply(&mut request_headers, &request_compiled.request);
assert_eq!(request_headers["age"], "7");
let response_age = HeaderRules {
request: vec![],
response: vec![Rule {
op: Operation::Remove,
name: "Age".into(),
value: None,
}],
};
let compiled = response_age.compile().unwrap();
let mut headers = HeaderMap::new();
headers.insert("age", HeaderValue::from_static("42"));
apply(&mut headers, &compiled.response);
assert_eq!(headers["age"], "42");
apply_wire_age(&mut headers, &compiled.response);
assert!(!headers.contains_key("age"));
}
#[test]
fn response_age_keeps_0266_rule_compatibility() {
let rules = HeaderRules {
request: vec![],
response: vec![
Rule {
op: Operation::Set,
name: "age".into(),
value: Some("custom".into()),
},
Rule {
op: Operation::Append,
name: "age".into(),
value: Some("7".into()),
},
],
};
let compiled = rules.compile().unwrap();
let mut headers = HeaderMap::new();
headers.insert("age", HeaderValue::from_static("42"));
apply(&mut headers, &compiled.response);
assert_eq!(headers["age"], "42");
apply_wire_age(&mut headers, &compiled.response);
assert_eq!(headers.get_all("age").iter().count(), 2);
}
}