diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-13 03:26:03 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-13 03:30:13 +0300 |
| commit | 5cfe5e5e730246948b0c9428ad876b6938590aad (patch) | |
| tree | 53d4bbe1aff6887f63f279eed1b5e4e11e7331b7 /tests/cli_wrapper.rs | |
| parent | 7f3364a468f7dcfd8c9c84e5737fe5699f0e3a93 (diff) | |
feat: add configurable sidebar metadata tokens
Diffstat (limited to 'tests/cli_wrapper.rs')
| -rw-r--r-- | tests/cli_wrapper.rs | 75 |
1 files changed, 68 insertions, 7 deletions
diff --git a/tests/cli_wrapper.rs b/tests/cli_wrapper.rs index 10a00c41..78d4c123 100644 --- a/tests/cli_wrapper.rs +++ b/tests/cli_wrapper.rs @@ -898,6 +898,61 @@ fn pane_run_sends_one_send_input_request_with_enter_key() { } #[test] +fn workspace_report_metadata_sends_token_patch() { + let base = unique_test_dir(); + fs::create_dir_all(&base).unwrap(); + let socket_path = base.join("herdr.sock"); + let listener = UnixListener::bind(&socket_path).unwrap(); + + let server = thread::spawn(move || { + let (mut stream, _) = listener.accept().unwrap(); + let mut line = String::new(); + let mut reader = BufReader::new(stream.try_clone().unwrap()); + reader.read_line(&mut line).unwrap(); + stream + .write_all(br#"{"id":"cli:request","result":{"type":"ok"}}"#) + .unwrap(); + stream.write_all(b"\n").unwrap(); + stream.flush().unwrap(); + line + }); + + let run = run_cli( + &socket_path, + &[ + "workspace", + "report-metadata", + "2", + "--source", + "user:jj", + "--token", + "jj_status=2 changes", + "--token", + "summary=clean", + "--clear-token", + "old", + "--ttl-ms", + "5000", + ], + ); + assert!( + run.status.success(), + "stderr: {}", + String::from_utf8_lossy(&run.stderr) + ); + + let request: serde_json::Value = serde_json::from_str(&server.join().unwrap()).unwrap(); + assert_eq!(request["method"], "workspace.report_metadata"); + assert_eq!(request["params"]["workspace_id"], "2"); + assert_eq!(request["params"]["tokens"]["jj_status"], "2 changes"); + assert_eq!(request["params"]["tokens"]["summary"], "clean"); + assert!(request["params"]["tokens"]["old"].is_null()); + assert_eq!(request["params"]["ttl_ms"], 5000); + + cleanup_test_base(&base); +} + +#[test] fn pane_report_metadata_sends_presentation_request() { let base = unique_test_dir(); fs::create_dir_all(&base).unwrap(); @@ -931,10 +986,14 @@ fn pane_report_metadata_sends_presentation_request() { "Refactor auth", "--display-agent", "Claude auth", - "--custom-status", - "middleware", "--state-label", "working=deep in the mines", + "--token", + "summary=reviewing auth", + "--token", + "model=opus", + "--clear-token", + "old", "--ttl-ms", "3600000", ], @@ -954,11 +1013,13 @@ fn pane_report_metadata_sends_presentation_request() { 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"); assert_eq!( request["params"]["state_labels"]["working"], "deep in the mines" ); + assert_eq!(request["params"]["tokens"]["summary"], "reviewing auth"); + assert_eq!(request["params"]["tokens"]["model"], "opus"); + assert!(request["params"]["tokens"]["old"].is_null()); assert_eq!(request["params"]["ttl_ms"], 3_600_000); cleanup_test_base(&base); @@ -978,8 +1039,8 @@ fn pane_report_metadata_rejects_blank_source_before_socket_request() { "1-1", "--source", " ", - "--custom-status", - "middleware", + "--token", + "summary=middleware", ], ); @@ -1009,8 +1070,8 @@ fn pane_report_metadata_rejects_blank_applies_to_source_before_socket_request() "user:claude-title", "--applies-to-source", " ", - "--custom-status", - "middleware", + "--token", + "summary=middleware", ], ); |
