61 lines
1.3 KiB
TypeScript
61 lines
1.3 KiB
TypeScript
|
|
import "@testing-library/jest-dom";
|
||
|
|
import { beforeAll, afterEach, afterAll } from "vitest";
|
||
|
|
import { setupServer } from "msw/node";
|
||
|
|
import { rest } from "msw";
|
||
|
|
|
||
|
|
// Mock API responses
|
||
|
|
const server = setupServer(
|
||
|
|
rest.get("/api/users/public", (req, res, ctx) => {
|
||
|
|
return res.once(
|
||
|
|
200,
|
||
|
|
ctx.json([{ id: "1", name: "Public User", email: "user@example.com" }]),
|
||
|
|
);
|
||
|
|
}),
|
||
|
|
rest.get("/api/jobs", (req, res, ctx) => {
|
||
|
|
return res.once(
|
||
|
|
200,
|
||
|
|
ctx.json({
|
||
|
|
jobs: [{ id: "1", title: "Developer", status: "OPEN" }],
|
||
|
|
}),
|
||
|
|
);
|
||
|
|
}),
|
||
|
|
);
|
||
|
|
|
||
|
|
beforeAll(() => server.listen());
|
||
|
|
afterEach(() => server.resetHandlers());
|
||
|
|
afterAll(() => server.close());
|
||
|
|
|
||
|
|
// Mock window.matchMedia
|
||
|
|
Object.defineProperty(window, "matchMedia", {
|
||
|
|
writable: true,
|
||
|
|
value: vi.fn().mockImplementation((query) => ({
|
||
|
|
matches: false,
|
||
|
|
media: query,
|
||
|
|
onchange: null,
|
||
|
|
addListener: vi.fn(),
|
||
|
|
removeListener: vi.fn(),
|
||
|
|
addEventListener: vi.fn(),
|
||
|
|
removeEventListener: vi.fn(),
|
||
|
|
dispatchEvent: vi.fn(),
|
||
|
|
})),
|
||
|
|
});
|
||
|
|
|
||
|
|
// Mock IntersectionObserver
|
||
|
|
global.IntersectionObserver = class IntersectionObserver {
|
||
|
|
constructor() {}
|
||
|
|
disconnect() {}
|
||
|
|
observe() {}
|
||
|
|
takeRecords() {
|
||
|
|
return [];
|
||
|
|
}
|
||
|
|
trigger() {}
|
||
|
|
};
|
||
|
|
|
||
|
|
// Mock ResizeObserver
|
||
|
|
global.ResizeObserver = class ResizeObserver {
|
||
|
|
constructor() {}
|
||
|
|
observe() {}
|
||
|
|
unobserve() {}
|
||
|
|
disconnect() {}
|
||
|
|
};
|