Some checks failed
Dev Deployment (Zero Downtime) / deploy-dev (push) Failing after 9m19s
Fixed missing types, import errors, and updated test suites to match the new editorial design. Verified Docker container build.
67 lines
1.6 KiB
TypeScript
67 lines
1.6 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-ignore
|
|
global.Headers = Headers;
|
|
}
|
|
if (!global.Request) {
|
|
// @ts-ignore
|
|
global.Request = Request;
|
|
}
|
|
if (!global.Response) {
|
|
// @ts-ignore
|
|
global.Response = Response;
|
|
}
|
|
|
|
// Mock NextResponse
|
|
jest.mock('next/server', () => {
|
|
const actual = jest.requireActual('next/server');
|
|
return {
|
|
...actual,
|
|
NextResponse: {
|
|
json: (data: any, init?: any) => {
|
|
const res = new 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";
|