From 5fee00fe3ed647a9f5c66c8761af3d3b260273cb Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Sun, 28 Jun 2026 11:15:11 -0400 Subject: [PATCH] Cover MCP startup during active agent turns --- codex-rs/tui/src/chatwidget/tests/mcp_startup.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/codex-rs/tui/src/chatwidget/tests/mcp_startup.rs b/codex-rs/tui/src/chatwidget/tests/mcp_startup.rs index 48a02b1957..9135935436 100644 --- a/codex-rs/tui/src/chatwidget/tests/mcp_startup.rs +++ b/codex-rs/tui/src/chatwidget/tests/mcp_startup.rs @@ -167,6 +167,21 @@ async fn esc_during_mcp_startup_does_not_interrupt_agent_draft() { assert_eq!(chat.bottom_pane.composer_text(), "/agent "); } +#[tokio::test] +async fn esc_during_mcp_startup_and_agent_turn_does_not_interrupt() { + let (mut chat, _rx, mut op_rx) = make_chatwidget_manual(/*model_override*/ None).await; + notify_mcp_status(&mut chat, "alpha", McpServerStartupState::Starting); + handle_turn_started(&mut chat, "turn-1"); + chat.bottom_pane + .set_composer_text("/review".to_string(), Vec::new(), Vec::new()); + assert!(!chat.bottom_pane.no_modal_or_popup_active()); + + chat.handle_key_event(KeyEvent::new(KeyCode::Esc, KeyModifiers::NONE)); + + assert!(op_rx.try_recv().is_err()); + assert_eq!(chat.bottom_pane.composer_text(), "/review"); +} + #[tokio::test] async fn mcp_startup_complete_does_not_clear_running_task() { let (mut chat, _rx, _op_rx) = make_chatwidget_manual(/*model_override*/ None).await;