Files
Gnuboard7/templates/_bundled/sirsoft-basic/src/test-setup.ts
T
2026-04-01 10:30:52 +09:00

54 lines
1.3 KiB
TypeScript

/**
* Vitest 테스트 환경 설정
*/
import { vi } from 'vitest';
import { act } from 'react';
import '@testing-library/jest-dom/vitest';
// React 19 + @testing-library/react 호환성 설정
// React 19에서 act가 react 패키지로 이동했으므로 react-dom/test-utils를 mock
vi.mock('react-dom/test-utils', () => ({
act,
}));
// Mock window.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(),
})),
});
// Mock ResizeObserver
global.ResizeObserver = vi.fn().mockImplementation(() => ({
observe: vi.fn(),
unobserve: vi.fn(),
disconnect: vi.fn(),
}));
// Mock IntersectionObserver
global.IntersectionObserver = vi.fn().mockImplementation(() => ({
observe: vi.fn(),
unobserve: vi.fn(),
disconnect: vi.fn(),
}));
// Mock scrollTo
window.scrollTo = vi.fn();
// Mock localStorage
const localStorageMock = {
getItem: vi.fn(),
setItem: vi.fn(),
removeItem: vi.fn(),
clear: vi.fn(),
};
Object.defineProperty(window, 'localStorage', { value: localStorageMock });