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:
Wez Furlong
2024-06-10 06:44:15 -07:00
parent 670df0041a
commit 413625d99c
3 changed files with 26 additions and 6 deletions
+1 -1
View File
@@ -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
+8 -4
View File
@@ -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"));
}
_ => {}
}
}
}
+17 -1
View File
@@ -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"),
},
]
"#
);