Spaces:
Running
Running
| import "@testing-library/jest-dom"; | |
| import { vi } from "vitest"; | |
| 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(), | |
| })), | |
| }); | |
| class ResizeObserverMock { | |
| observe = vi.fn(); | |
| unobserve = vi.fn(); | |
| disconnect = vi.fn(); | |
| } | |
| vi.stubGlobal("ResizeObserver", ResizeObserverMock); | |
| class IntersectionObserverMock { | |
| root = null; | |
| rootMargin = ""; | |
| thresholds = []; | |
| observe = vi.fn(); | |
| unobserve = vi.fn(); | |
| disconnect = vi.fn(); | |
| takeRecords = vi.fn().mockReturnValue([]); | |
| } | |
| vi.stubGlobal("IntersectionObserver", IntersectionObserverMock); | |
| class StorageMock implements Storage { | |
| private store = new Map<string, string>(); | |
| get length(): number { | |
| return this.store.size; | |
| } | |
| clear(): void { | |
| this.store.clear(); | |
| } | |
| getItem(key: string): string | null { | |
| return this.store.has(key) ? (this.store.get(key) as string) : null; | |
| } | |
| setItem(key: string, value: string): void { | |
| this.store.set(String(key), String(value)); | |
| } | |
| removeItem(key: string): void { | |
| this.store.delete(key); | |
| } | |
| key(index: number): string | null { | |
| return Array.from(this.store.keys())[index] ?? null; | |
| } | |
| } | |
| vi.stubGlobal("localStorage", new StorageMock()); | |
| vi.stubGlobal("sessionStorage", new StorageMock()); | |
| Object.defineProperty(document, "fonts", { | |
| writable: true, | |
| value: { | |
| addEventListener: vi.fn(), | |
| removeEventListener: vi.fn(), | |
| }, | |
| }); | |