mirror of
https://github.com/mailscope/kumomta.git
synced 2026-10-30 01:56:52 +00:00
add explicit test that logging captures headers for Delivery events
We already tested this functionality at reception time, but let's also assert for delivery time.
This commit is contained in:
@@ -27,7 +27,7 @@ kumo.on('init', function()
|
||||
kumo.configure_local_logs {
|
||||
log_dir = TEST_DIR .. '/logs',
|
||||
max_segment_duration = '1s',
|
||||
headers = { 'X-*', 'Y-*' },
|
||||
headers = { 'X-*', 'Y-*', 'Subject' },
|
||||
}
|
||||
|
||||
if WEBHOOK_PORT then
|
||||
|
||||
@@ -437,10 +437,14 @@ impl KumoDaemon {
|
||||
|
||||
for line in text.lines() {
|
||||
let record: JsonLogRecord = serde_json::from_str(&line)?;
|
||||
if record.kind == RecordType::Reception {
|
||||
assert!(record.headers.contains_key("X-Test1"));
|
||||
assert!(record.headers.contains_key("X-Another"));
|
||||
assert!(!record.headers.contains_key("y-something"));
|
||||
match record.kind {
|
||||
RecordType::Reception | RecordType::Delivery => {
|
||||
assert!(record.headers.contains_key("Subject"));
|
||||
assert!(record.headers.contains_key("X-Test1"));
|
||||
assert!(record.headers.contains_key("X-Another"));
|
||||
assert!(!record.headers.contains_key("y-something"));
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -944,10 +944,13 @@ Ok(
|
||||
);
|
||||
|
||||
let mut logged_headers = vec![];
|
||||
let mut headers_delivered = vec![];
|
||||
for record in daemon.webhook.return_logs() {
|
||||
let ordered_headers: BTreeMap<_, _> = record.headers.into_iter().collect();
|
||||
if record.kind == RecordType::Reception {
|
||||
let ordered_headers: BTreeMap<_, _> = record.headers.into_iter().collect();
|
||||
logged_headers.push(ordered_headers);
|
||||
} else if record.kind == RecordType::Delivery {
|
||||
headers_delivered.push(ordered_headers);
|
||||
}
|
||||
}
|
||||
k9::snapshot!(
|
||||
@@ -961,6 +964,19 @@ Ok(
|
||||
"X-Test1": String("Test1"),
|
||||
},
|
||||
]
|
||||
"#
|
||||
);
|
||||
k9::snapshot!(
|
||||
headers_delivered,
|
||||
r#"
|
||||
[
|
||||
{
|
||||
"Subject": String("Hello! This is a test"),
|
||||
"X-Another": String("Another"),
|
||||
"X-KumoRef": String("eyJfQF8iOiJcXF8vIiwicmVjaXBpZW50IjoicmVjaXBAZXhhbXBsZS5jb20ifQ=="),
|
||||
"X-Test1": String("Test1"),
|
||||
},
|
||||
]
|
||||
"#
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user