fix(usage): unify OpenAI Live and WebSocket records

This commit is contained in:
ZheFox
2026-08-21 11:53:53 +08:00
parent 9996e75a34
commit acde38b8e7
32 changed files with 629 additions and 95 deletions
@@ -3109,6 +3109,21 @@ fn usage_sql_reads_http_audits_for_single_record_fetches() {
assert!(super::FIND_BY_ID_SQL.contains("http_client_response_body_ref"));
}
#[test]
fn usage_sql_single_record_fetches_preserve_full_request_metadata() {
for sql in [super::FIND_BY_REQUEST_ID_SQL, super::FIND_BY_ID_SQL] {
assert!(
sql.contains("\n \"usage\".request_metadata,\n"),
"single-record usage detail queries must preserve the full request metadata, \
including WebSocket and Live session summaries"
);
assert!(
!sql.contains("END AS request_metadata"),
"bounded list metadata projection must not leak into detail queries"
);
}
}
#[test]
fn usage_sql_reads_routing_snapshots_for_single_record_fetches() {
assert!(super::FIND_BY_REQUEST_ID_SQL.contains("LEFT JOIN usage_routing_snapshots"));
@@ -3240,6 +3255,42 @@ fn usage_sql_uses_json_null_placeholders_for_usage_payload_columns() {
assert!(!super::LIST_RECENT_USAGE_AUDITS_PREFIX.contains("NULL::jsonb"));
}
#[test]
fn usage_sql_list_queries_project_bounded_live_and_realtime_metadata() {
for sql in [
super::LIST_USAGE_AUDITS_PREFIX,
super::LIST_RECENT_USAGE_AUDITS_PREFIX,
] {
assert!(sql.contains("'websocket_transport'"));
assert!(
sql.contains("NULLIF(BTRIM(\"usage\".request_metadata->>'websocket_transport'), '')")
);
for key in ["usage_available", "usage_pricing_available"] {
assert!(sql.contains(format!("'{key}'").as_str()));
assert!(sql.contains(
format!("WHEN (\"usage\".request_metadata->>'{key}') IN ('true', 'false')")
.as_str()
));
assert!(sql.contains(
format!("THEN (\"usage\".request_metadata->>'{key}')::boolean").as_str()
));
}
for key in ["live_session", "realtime_session"] {
assert!(sql.contains(format!("'{key}'").as_str()));
assert!(sql.contains(
format!("WHEN json_typeof(\"usage\".request_metadata->'{key}') = 'object'")
.as_str()
));
assert!(sql.contains(format!("THEN \"usage\".request_metadata->'{key}'").as_str()));
}
assert!(sql.contains("END AS request_metadata"));
assert!(!sql.contains("\n \"usage\".request_metadata,\n"));
}
}
#[test]
fn usage_sql_admin_record_filters_are_pushed_into_postgres_queries() {
let source = include_str!("mod.rs");