From 7250e82a9be901b23b95860b9448a152ed1cb2de Mon Sep 17 00:00:00 2001 From: Charles Cunningham Date: Fri, 13 Mar 2026 05:46:45 -0700 Subject: [PATCH] tui: preserve world-writable warning opt-out Co-authored-by: Codex --- codex-rs/tui/src/chatwidget/tests.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/codex-rs/tui/src/chatwidget/tests.rs b/codex-rs/tui/src/chatwidget/tests.rs index eca0d9a8b7..c616de1336 100644 --- a/codex-rs/tui/src/chatwidget/tests.rs +++ b/codex-rs/tui/src/chatwidget/tests.rs @@ -9495,6 +9495,31 @@ async fn permissions_full_access_history_cell_emitted_only_after_confirmation() ); } +#[cfg(target_os = "windows")] +#[tokio::test] +async fn world_writable_warning_without_preset_persists_dont_warn_again() { + let (mut chat, mut rx, _op_rx) = make_chatwidget_manual(None).await; + + chat.open_world_writable_warning_confirmation(None, Vec::new(), 0, true); + chat.handle_key_event(KeyEvent::from(KeyCode::Down)); + chat.handle_key_event(KeyEvent::from(KeyCode::Enter)); + + let events: Vec = std::iter::from_fn(|| rx.try_recv().ok()).collect(); + assert!( + events.iter().any(|event| matches!( + event, + AppEvent::UpdateWorldWritableWarningAcknowledged(true) + )), + "expected update-world-writable-warning acknowledgement event, got: {events:?}" + ); + assert!( + events + .iter() + .any(|event| matches!(event, AppEvent::PersistWorldWritableWarningAcknowledged)), + "expected persist-world-writable-warning acknowledgement event, got: {events:?}" + ); +} + // // Snapshot test: command approval modal //