From 013ef9203492a6540fce1146ebf32026df1a94c1 Mon Sep 17 00:00:00 2001 From: Shakker Date: Mon, 11 May 2026 17:56:21 +0100 Subject: [PATCH] test: check ACP retry calls --- src/acp/translator.session-rate-limit.test.ts | 4 ++-- src/acp/translator.stop-reason.test.ts | 20 +++++++++++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/acp/translator.session-rate-limit.test.ts b/src/acp/translator.session-rate-limit.test.ts index a4e3edd8eae..b40032b77c5 100644 --- a/src/acp/translator.session-rate-limit.test.ts +++ b/src/acp/translator.session-rate-limit.test.ts @@ -115,7 +115,7 @@ async function expectOversizedPromptRejected(params: { sessionId: string; text: await expect(agent.prompt(createPromptRequest(params.sessionId, params.text))).rejects.toThrow( /maximum allowed size/i, ); - expect(request).not.toHaveBeenCalledWith("chat.send", expect.anything(), expect.anything()); + expect(request.mock.calls.some(([method]) => method === "chat.send")).toBe(false); const session = sessionStore.getSession(params.sessionId); expect(session?.activeRunId).toBeNull(); expect(session?.abortController).toBeNull(); @@ -727,7 +727,7 @@ describe("acp setSessionConfigOption bridge behavior", () => { ); expect(Array.isArray(result.configOptions)).toBe(true); - expect(request).not.toHaveBeenCalledWith("sessions.patch", expect.anything()); + expect(request.mock.calls.some(([method]) => method === "sessions.patch")).toBe(false); sessionStore.clearAllSessionsForTest(); }); diff --git a/src/acp/translator.stop-reason.test.ts b/src/acp/translator.stop-reason.test.ts index 206f1d3a777..89a7eb51b01 100644 --- a/src/acp/translator.stop-reason.test.ts +++ b/src/acp/translator.stop-reason.test.ts @@ -227,17 +227,19 @@ describe("acp translator stop reason mapping", () => { it("rechecks accepted prompts at the disconnect deadline after reconnect timeout", async () => { vi.useFakeTimers(); try { + let chatRunId: string | undefined; + const agentWaitParams: Array | undefined> = []; let waitCount = 0; const request = vi.fn(async (method: string, params?: Record) => { if (method === "chat.send") { + const runId = params?.idempotencyKey; + expect(typeof runId).toBe("string"); + chatRunId = runId; return {}; } if (method === "agent.wait") { waitCount += 1; - expect(params).toEqual({ - runId: expect.any(String), - timeoutMs: 0, - }); + agentWaitParams.push(params); return waitCount === 1 ? { status: "timeout" } : { status: "ok" }; } return {}; @@ -256,6 +258,16 @@ describe("acp translator stop reason mapping", () => { await vi.advanceTimersByTimeAsync(1); await expect(promptPromise).resolves.toEqual({ stopReason: "end_turn" }); + expect(agentWaitParams).toEqual([ + { + runId: requireValue(chatRunId, "chat.send run id"), + timeoutMs: 0, + }, + { + runId: requireValue(chatRunId, "chat.send run id"), + timeoutMs: 0, + }, + ]); } finally { vi.useRealTimers(); }