diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-02 21:20:28 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-02 21:25:32 +0300 |
| commit | 295b09ca25edbccac65401ee84fa420dd3888aad (patch) | |
| tree | d54ed875518e042869ed3f43e95f0b9ee59f5d34 /tests/cli_wrapper.rs | |
| parent | 48641e253f1aa3886b470cbebec60103247a7622 (diff) | |
feat: make claude codex opencode hooks session-only
Diffstat (limited to 'tests/cli_wrapper.rs')
| -rw-r--r-- | tests/cli_wrapper.rs | 39 |
1 files changed, 14 insertions, 25 deletions
diff --git a/tests/cli_wrapper.rs b/tests/cli_wrapper.rs index 511674ab..871cba64 100644 --- a/tests/cli_wrapper.rs +++ b/tests/cli_wrapper.rs @@ -568,19 +568,11 @@ fn run_shell_hook(asset_path: &str, args: &[&str], hook_input: &str) -> Option<s } #[test] -fn claude_hook_reports_subagent_working_and_blocked() { +fn claude_hook_ignores_state_actions() { let subagent_input = r#"{"hook_event_name":"Notification","agent_id":"agent-abc123","agent_type":"Explore","notification_type":"permission_prompt"}"#; - let working = - run_claude_hook("working", subagent_input).expect("subagent working should report working"); - assert_eq!(working["method"], "pane.report_agent"); - assert_eq!(working["params"]["state"], "working"); - assert!(working["params"]["seq"].as_u64().is_some()); - - let blocked = - run_claude_hook("blocked", subagent_input).expect("subagent blocked should report blocked"); - assert_eq!(blocked["method"], "pane.report_agent"); - assert_eq!(blocked["params"]["state"], "blocked"); + assert!(run_claude_hook("working", subagent_input).is_none()); + assert!(run_claude_hook("blocked", subagent_input).is_none()); } #[test] @@ -598,36 +590,35 @@ fn claude_hook_keeps_parent_agent_type_only_blocked() { let request = run_claude_hook( "blocked", r#"{"hook_event_name":"PermissionRequest","agent_type":"Explore"}"#, - ) - .expect("parent blocked should still report blocked"); + ); - assert_eq!(request["method"], "pane.report_agent"); - assert_eq!(request["params"]["state"], "blocked"); + assert!(request.is_none()); } #[test] fn claude_hook_reports_session_id_from_stdin() { let request = run_claude_hook( - "idle", + "session", r#"{"hook_event_name":"SessionStart","session_id":"claude-session"}"#, ) - .expect("session start should report idle"); + .expect("session start should report session identity"); - assert_eq!(request["method"], "pane.report_agent"); + assert_eq!(request["method"], "pane.report_agent_session"); assert_eq!(request["params"]["agent_session_id"], "claude-session"); + assert!(request["params"].get("state").is_none()); } #[test] fn codex_hook_reports_session_id_from_stdin() { let request = run_codex_hook( - "working", + "session", r#"{"hook_event_name":"SessionStart","session_id":"codex-session"}"#, ) - .expect("codex hook should report working"); + .expect("codex hook should report session identity"); - assert_eq!(request["method"], "pane.report_agent"); - assert_eq!(request["params"]["state"], "working"); + assert_eq!(request["method"], "pane.report_agent_session"); assert_eq!(request["params"]["agent_session_id"], "codex-session"); + assert!(request["params"].get("state").is_none()); } #[test] @@ -893,8 +884,6 @@ fn pane_report_metadata_sends_presentation_request() { "user:claude-title", "--agent", "claude", - "--applies-to-source", - "herdr:claude", "--title", "Refactor auth", "--display-agent", @@ -919,7 +908,7 @@ fn pane_report_metadata_sends_presentation_request() { assert_eq!(request["params"]["pane_id"], "1-1"); assert_eq!(request["params"]["source"], "user:claude-title"); assert_eq!(request["params"]["agent"], "claude"); - assert_eq!(request["params"]["applies_to_source"], "herdr:claude"); + assert!(request["params"]["applies_to_source"].is_null()); assert_eq!(request["params"]["title"], "Refactor auth"); assert_eq!(request["params"]["display_agent"], "Claude auth"); assert_eq!(request["params"]["custom_status"], "middleware"); |
