import '@testing-library/jest-dom'; import { afterEach, vi } from 'vitest'; import { cleanup } from '@testing-library/react'; // Очистка после каждого теста afterEach(() => { cleanup(); }); // Мок для localStorage const localStorageMock = { getItem: vi.fn(), setItem: vi.fn(), removeItem: vi.fn(), clear: vi.fn(), }; Object.defineProperty(window, 'localStorage', { value: localStorageMock }); // Мок для matchMedia Object.defineProperty(window, 'matchMedia', { writable: true, value: vi.fn().mockImplementation((query: string) => ({ matches: false, media: query, onchange: null, addListener: vi.fn(), removeListener: vi.fn(), addEventListener: vi.fn(), removeEventListener: vi.fn(), dispatchEvent: vi.fn(), })), }); // Мок для ResizeObserver class ResizeObserverMock { observe = vi.fn(); unobserve = vi.fn(); disconnect = vi.fn(); } Object.defineProperty(window, 'ResizeObserver', { value: ResizeObserverMock }); // Мок для clipboard Object.defineProperty(navigator, 'clipboard', { value: { writeText: vi.fn().mockResolvedValue(undefined), readText: vi.fn().mockResolvedValue(''), }, });