magi-code 0.61.0

Repository-aware CLI coding agent for terminal work
Documentation
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());
}