import "@testing-library/jest-dom/vitest"; import { cleanup } from "@testing-library/react"; import { afterAll, afterEach, beforeAll } from "vitest"; import { configureAuthClient } from "@/shared/api"; import "../shared/i18n"; import { server } from "./server"; beforeAll(() => server.listen({ onUnhandledRequest: "error" })); afterEach(() => { cleanup(); configureAuthClient(null); server.resetHandlers(); }); afterAll(() => server.close()); class ResizeObserver { observe() {} unobserve() {} disconnect() {} } window.ResizeObserver = ResizeObserver; // JSDOM has no layout/scrolling; Mantine Combobox scrolls the active option. Object.defineProperty(HTMLElement.prototype, "scrollIntoView", { configurable: true, value: () => {}, }); Object.defineProperty(window, "matchMedia", { writable: true, value: (query: string) => ({ matches: false, media: query, onchange: null, addEventListener: () => {}, removeEventListener: () => {}, addListener: () => {}, removeListener: () => {}, dispatchEvent: () => false, }), });