From fa5270abefb1028fea62d86b8638a0f328f2929a Mon Sep 17 00:00:00 2001 From: viyatb-oai Date: Tue, 7 Apr 2026 14:48:27 -0700 Subject: [PATCH] test(hooks): preserve JSON quotes in windows stop fixtures cmd.exe removes unescaped JSON quotes before echoing. Caret-escape the quotes so the observer hook stop/block tests feed valid JSON to the hook output parser on Windows.\n\nCo-authored-by: Codex --- codex-rs/hooks/src/events/session_start.rs | 2 +- codex-rs/hooks/src/events/user_prompt_submit.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/codex-rs/hooks/src/events/session_start.rs b/codex-rs/hooks/src/events/session_start.rs index e88a7ed5a2..3f115742c5 100644 --- a/codex-rs/hooks/src/events/session_start.rs +++ b/codex-rs/hooks/src/events/session_start.rs @@ -394,7 +394,7 @@ mod tests { ( "cmd.exe".to_string(), vec!["/D".to_string(), "/C".to_string()], - "echo {\"continue\":false,\"stopReason\":\"pause\",\"hookSpecificOutput\":{\"hookEventName\":\"SessionStart\",\"additionalContext\":\"trusted context\"}}".to_string(), + r#"echo {^"continue^":false,^"stopReason^":^"pause^",^"hookSpecificOutput^":{^"hookEventName^":^"SessionStart^",^"additionalContext^":^"trusted context^"}}"#.to_string(), "type nul > project-ran && echo project context".to_string(), ) } else { diff --git a/codex-rs/hooks/src/events/user_prompt_submit.rs b/codex-rs/hooks/src/events/user_prompt_submit.rs index 6801137c1c..2f148475ff 100644 --- a/codex-rs/hooks/src/events/user_prompt_submit.rs +++ b/codex-rs/hooks/src/events/user_prompt_submit.rs @@ -453,7 +453,7 @@ mod tests { ( "cmd.exe".to_string(), vec!["/D".to_string(), "/C".to_string()], - "echo {\"decision\":\"block\",\"reason\":\"slow down\",\"hookSpecificOutput\":{\"hookEventName\":\"UserPromptSubmit\",\"additionalContext\":\"trusted context\"}}".to_string(), + r#"echo {^"decision^":^"block^",^"reason^":^"slow down^",^"hookSpecificOutput^":{^"hookEventName^":^"UserPromptSubmit^",^"additionalContext^":^"trusted context^"}}"#.to_string(), "type nul > project-ran && echo project context".to_string(), ) } else {