diff --git a/apps/api/tests/lib-url-fetch.test.ts b/apps/api/tests/lib-url-fetch.test.ts index c7675bf..f5432a3 100644 --- a/apps/api/tests/lib-url-fetch.test.ts +++ b/apps/api/tests/lib-url-fetch.test.ts @@ -1,12 +1,17 @@ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'; import { fetchUrlContent } from '../src/lib/url-fetch.ts'; -function makeFetch(responses: Array<{ ok: boolean; json?: () => Promise; text?: () => Promise }>) { +function makeFetch( + responses: Array<{ ok: boolean; json?: () => Promise; text?: () => Promise }>, +): typeof globalThis.fetch { let call = 0; - return vi.fn(async () => { + const fn = vi.fn(async () => { const r = responses[Math.min(call++, responses.length - 1)]; return r as unknown as Response; }); + // Bun's `typeof fetch` includes a `preconnect`-method that vi.fn() + // doesn't have. Cast über `unknown` umgeht den strikten Type-Check. + return fn as unknown as typeof globalThis.fetch; } describe('fetchUrlContent', () => { @@ -67,7 +72,9 @@ describe('fetchUrlContent', () => { }); it('returns null when mana-search returns no content and direct fetch fails', async () => { - globalThis.fetch = vi.fn().mockRejectedValue(new Error('Network error')); + globalThis.fetch = vi + .fn() + .mockRejectedValue(new Error('Network error')) as unknown as typeof globalThis.fetch; const result = await fetchUrlContent('https://example.com'); expect(result).toBeNull();