nxtgauge-frontend-solid/src/test/setup.ts

61 lines
1.3 KiB
TypeScript
Raw Normal View History

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() {}
};