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);
}