From 1993b2a40c46b2e7fbb785aaf1ec6af7fbcad0ce Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 12 May 2026 20:22:48 +0100 Subject: [PATCH] test: dedupe openrouter media mock reads --- .../media-understanding-provider.test.ts | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/extensions/openrouter/media-understanding-provider.test.ts b/extensions/openrouter/media-understanding-provider.test.ts index 86c6ac0e5ed..c17b9644851 100644 --- a/extensions/openrouter/media-understanding-provider.test.ts +++ b/extensions/openrouter/media-understanding-provider.test.ts @@ -33,6 +33,14 @@ vi.mock("openclaw/plugin-sdk/provider-http", () => ({ resolveProviderHttpRequestConfig: resolveProviderHttpRequestConfigMock, })); +function firstPostJsonRequest(): { body?: unknown; headers?: Headers } { + const [request] = postJsonRequestMock.mock.calls[0] ?? []; + if (!request || typeof request !== "object") { + throw new Error("expected first OpenRouter JSON request"); + } + return request as { body?: unknown; headers?: Headers }; +} + describe("openrouter media understanding provider", () => { afterEach(() => { assertOkOrThrowHttpErrorMock.mockClear(); @@ -109,7 +117,10 @@ describe("openrouter media understanding provider", () => { dispatcherPolicy: undefined, auditContext: "openrouter stt", }); - const headers = postJsonRequestMock.mock.calls.at(0)?.[0]?.headers as Headers; + const headers = firstPostJsonRequest().headers; + if (!headers) { + throw new Error("expected OpenRouter request headers"); + } expect(headers.get("authorization")).toBe("Bearer sk-openrouter"); expect(headers.get("http-referer")).toBe("https://openclaw.ai"); expect(headers.get("x-openrouter-title")).toBe("OpenClaw"); @@ -132,7 +143,7 @@ describe("openrouter media understanding provider", () => { fetchFn: fetch, }); - expect(postJsonRequestMock.mock.calls.at(0)?.[0]?.body).toEqual({ + expect(firstPostJsonRequest().body).toEqual({ model: "openai/whisper-large-v3-turbo", input_audio: { data: Buffer.from("audio").toString("base64"), @@ -157,7 +168,7 @@ describe("openrouter media understanding provider", () => { fetchFn: fetch, }); - expect(postJsonRequestMock.mock.calls.at(0)?.[0]?.body).toEqual({ + expect(firstPostJsonRequest().body).toEqual({ model: "openai/whisper-large-v3-turbo", input_audio: { data: Buffer.from("audio").toString("base64"), @@ -181,7 +192,7 @@ describe("openrouter media understanding provider", () => { fetchFn: fetch, }); - expect(postJsonRequestMock.mock.calls.at(0)?.[0]?.body).toEqual({ + expect(firstPostJsonRequest().body).toEqual({ model: "openai/whisper-large-v3-turbo", input_audio: { data: Buffer.from("audio").toString("base64"), @@ -206,7 +217,7 @@ describe("openrouter media understanding provider", () => { fetchFn: fetch, }); - expect(postJsonRequestMock.mock.calls.at(0)?.[0]?.body).toEqual({ + expect(firstPostJsonRequest().body).toEqual({ model: "openai/whisper-large-v3-turbo", input_audio: { data: Buffer.from("audio").toString("base64"),