magi-code 0.77.1

Repository-aware CLI coding agent for terminal work
Documentation
use super::*;

#[test]
fn submit_decision_characterizes_empty_active_and_normal_prompts() {
    assert_eq!(submit_decision(false, "   \t"), SubmitDecision::IgnoreEmpty);
    assert_eq!(
        submit_decision(true, "next prompt"),
        SubmitDecision::QueueSteering
    );
    assert_eq!(
        submit_decision(false, "next prompt"),
        SubmitDecision::Accept
    );
}

#[test]
fn submit_decision_queues_while_run_active() {
    assert_eq!(submit_decision(true, "next"), SubmitDecision::QueueSteering);
}

#[test]
fn submit_decision_accepts_after_run_finished() {
    let (sender, receiver) = bounded::<TuiEvent>(2);
    sender
        .send(TuiEvent::RunFinished {
            worker_id: 0,
            final_event: None,
        })
        .unwrap();
    let mut state = state::MissionControlState {
        active_worker_id: Some(0),
        ..Default::default()
    };
    assert!(drain_tui_events(&receiver, &mut state).run_finished);
    assert_eq!(submit_decision(false, "next"), SubmitDecision::Accept);
}

#[test]
fn submit_decision_queues_concurrent_prompt_but_keeps_empty_noop() {
    assert_eq!(submit_decision(false, "hello"), SubmitDecision::Accept);
    assert_eq!(submit_decision(false, "   "), SubmitDecision::IgnoreEmpty);
    assert_eq!(submit_decision(true, "next"), SubmitDecision::QueueSteering);
}