From 6bb9b0656f26241ea8b8f7e7ceaab07fe34698f5 Mon Sep 17 00:00:00 2001 From: Shakker Date: Tue, 17 Feb 2026 14:34:41 +0000 Subject: [PATCH] Tests: fix fetch mock typings for type-aware checks --- src/memory/embeddings-voyage.test.ts | 29 ++++++++++++++++------------ src/test-utils/fetch-mock.ts | 17 +++++++++++----- 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/memory/embeddings-voyage.test.ts b/src/memory/embeddings-voyage.test.ts index 371ab9bbe..65b6e4306 100644 --- a/src/memory/embeddings-voyage.test.ts +++ b/src/memory/embeddings-voyage.test.ts @@ -14,11 +14,12 @@ vi.mock("../agents/model-auth.js", () => ({ })); const createFetchMock = () => { - const fetchMock = vi.fn(async () => ({ - ok: true, - status: 200, - json: async () => ({ data: [{ embedding: [0.1, 0.2, 0.3] }] }), - })); + const fetchMock = vi.fn(async (_input: RequestInfo | URL, _init?: RequestInit) => { + return new Response(JSON.stringify({ data: [{ embedding: [0.1, 0.2, 0.3] }] }), { + status: 200, + headers: { "Content-Type": "application/json" }, + }); + }); return withFetchPreconnect(fetchMock) as typeof fetch & typeof fetchMock; }; @@ -94,13 +95,17 @@ describe("voyage embedding provider", () => { it("passes input_type=document for embedBatch", async () => { const fetchMock = withFetchPreconnect( - vi.fn(async () => ({ - ok: true, - status: 200, - json: async () => ({ - data: [{ embedding: [0.1, 0.2] }, { embedding: [0.3, 0.4] }], - }), - })), + vi.fn(async (_input: RequestInfo | URL, _init?: RequestInit) => { + return new Response( + JSON.stringify({ + data: [{ embedding: [0.1, 0.2] }, { embedding: [0.3, 0.4] }], + }), + { + status: 200, + headers: { "Content-Type": "application/json" }, + }, + ); + }), ); vi.stubGlobal("fetch", fetchMock); diff --git a/src/test-utils/fetch-mock.ts b/src/test-utils/fetch-mock.ts index 719152f03..7eec83cd2 100644 --- a/src/test-utils/fetch-mock.ts +++ b/src/test-utils/fetch-mock.ts @@ -1,6 +1,13 @@ -export const withFetchPreconnect = unknown>( +type FetchWithPreconnect = { + preconnect: (url: string, init?: { credentials?: RequestCredentials }) => void; +}; + +export function withFetchPreconnect(fn: T): T & FetchWithPreconnect; +export function withFetchPreconnect( fn: T, -): typeof fetch => - Object.assign(fn, { - preconnect: () => {}, - }) as unknown as typeof fetch; +): T & FetchWithPreconnect & typeof fetch; +export function withFetchPreconnect(fn: object) { + return Object.assign(fn, { + preconnect: (_url: string, _init?: { credentials?: RequestCredentials }) => {}, + }); +}