Files
buzz/crates/buzz-db/tests/observability_source.rs
OpenAI Codex e5ed71b381 refactor(db): separate runtime and store modules
Signed-off-by: OpenAI Codex <codex@openai.com>
2026-08-28 10:56:02 -04:00

41 lines
1.3 KiB
Rust

#[test]
fn database_metrics_and_slow_logs_exclude_sensitive_or_unbounded_fields() {
let implementation = include_str!("../src/runtime/observability.rs");
let datastore_macro = include_str!("../../buzz-datastore-tracing/src/lib.rs");
let instrumentation = format!("{implementation}\n{datastore_macro}");
for forbidden in [
"\"community\" =>",
"\"event_id\" =>",
"\"event_kind\" =>",
"\"kind\" =>",
"\"sql\" =>",
"\"query\" =>",
"\"query_id\" =>",
"\"d_tag\" =>",
"\"coordinate\" =>",
"community =",
"event_id =",
"event_kind =",
"sql =",
"query_id =",
"d_tag =",
"coordinate =",
] {
assert!(
!instrumentation.contains(forbidden),
"database instrumentation must not expose {forbidden}"
);
}
assert!(datastore_macro.contains("name: LitStr"));
assert!(datastore_macro.contains("\"operation\" => #name"));
assert!(datastore_macro.contains("elapsed_ms ="));
assert!(
datastore_macro.contains("parent: None"),
"slow warnings must not inherit dynamic datastore span fields"
);
// The runtime tracing-layer assertion covers field names because a source
// search would also match ordinary local variables such as `record_error`.
}