Some checks failed
Dev Deployment (Zero Downtime) / deploy-dev (push) Failing after 9m26s
68 lines
1.9 KiB
TypeScript
68 lines
1.9 KiB
TypeScript
import "@testing-library/jest-dom";
|
|
import { Request, Response, Headers } from "node-fetch";
|
|
|
|
// Mock matchMedia
|
|
Object.defineProperty(window, "matchMedia", {
|
|
writable: true,
|
|
value: jest.fn().mockImplementation((query) => ({
|
|
matches: false,
|
|
media: query,
|
|
onchange: null,
|
|
addListener: jest.fn(),
|
|
removeListener: jest.fn(),
|
|
addEventListener: jest.fn(),
|
|
removeEventListener: jest.fn(),
|
|
dispatchEvent: jest.fn(),
|
|
})),
|
|
});
|
|
|
|
// Mock IntersectionObserver
|
|
class MockIntersectionObserver {
|
|
observe = jest.fn();
|
|
unobserve = jest.fn();
|
|
disconnect = jest.fn();
|
|
}
|
|
|
|
Object.defineProperty(window, "IntersectionObserver", {
|
|
writable: true,
|
|
configurable: true,
|
|
value: MockIntersectionObserver,
|
|
});
|
|
|
|
// Polyfill Headers/Request/Response
|
|
if (!global.Headers) {
|
|
// @ts-expect-error - Polyfilling global Headers for jest environment
|
|
global.Headers = Headers;
|
|
}
|
|
if (!global.Request) {
|
|
// @ts-expect-error - Polyfilling global Request for jest environment
|
|
global.Request = Request;
|
|
}
|
|
if (!global.Response) {
|
|
// @ts-expect-error - Polyfilling global Response for jest environment
|
|
global.Response = Response;
|
|
}
|
|
|
|
// Mock NextResponse
|
|
jest.mock('next/server', () => {
|
|
const actual = jest.requireActual('next/server');
|
|
return {
|
|
...actual,
|
|
NextResponse: {
|
|
json: (data: Record<string, unknown>, init?: unknown) => {
|
|
// Use global Response from whatwg-fetch
|
|
const res = new (global as any).Response(JSON.stringify(data), init);
|
|
res.headers.set('Content-Type', 'application/json');
|
|
return res;
|
|
},
|
|
next: () => ({ headers: new Headers() }),
|
|
redirect: (_url: string) => ({ headers: new Headers(), status: 302 }),
|
|
},
|
|
};
|
|
});
|
|
|
|
// Env vars for tests
|
|
process.env.DIRECTUS_URL = "http://localhost:8055";
|
|
process.env.DIRECTUS_TOKEN = "test-token";
|
|
process.env.NEXT_PUBLIC_SITE_URL = "http://localhost:3000";
|