use super::*;
use crate::output::ProviderContextInjectionDisplay;
#[test]
fn provider_context_injection_content_row_includes_header_and_body() {
let mut state = MissionControlState::default();
state.apply_output_event(&OutputEvent::ProviderContextInjection {
metadata: ProviderContextInjectionDisplay::new(
crate::hooks::HookPhase::After,
"after-context",
"read",
"success",
1,
42,
Some("injected api_key=sk-testSecret123456".to_string()),
),
});
assert_eq!(state.transcript.len(), 1);
assert!(
state.transcript[0]
.contains("provider context injection · after-context · success · 1 item · 42 bytes")
);
assert!(state.transcript[0].contains("api_key=<redacted>"));
}
#[test]
fn provider_context_injection_metadata_row_omits_body() {
let mut state = MissionControlState::default();
state.apply_output_event(&OutputEvent::ProviderContextInjection {
metadata: ProviderContextInjectionDisplay::new(
crate::hooks::HookPhase::After,
"after-context",
"read",
"success",
2,
42,
None,
),
});
assert_eq!(
state.transcript,
vec!["provider context injection · after-context · success · 2 items · 42 bytes"]
);
}
#[test]
fn provider_context_injection_no_event_means_no_row() {
let state = MissionControlState::default();
assert!(state.transcript.is_empty());
}