aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-06-02 21:20:28 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-06-02 21:25:32 +0300
commit295b09ca25edbccac65401ee84fa420dd3888aad (patch)
treed54ed875518e042869ed3f43e95f0b9ee59f5d34 /tests
parent48641e253f1aa3886b470cbebec60103247a7622 (diff)
feat: make claude codex opencode hooks session-only
Diffstat (limited to 'tests')
-rw-r--r--tests/cli_wrapper.rs39
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");