import { fileURLToPath } from 'node:url' import { mergeConfig, defineConfig, configDefaults } from 'vitest/config' import viteConfig from './vite.config' /** * 테스트 하나 · 훅 하나의 시간 한도 (기본은 테스트 5초 · 훅 10초). * jsdom 에 서식 편집기(TipTap/ProseMirror)를 띄우는 테스트는 CPU 를 많이 쓴다 — 부하가 걸리면 테스트 하나가 5~13초 걸려 * 기본 5초에서 전체 실행이 들쭉날쭉 실패했다. 이 호스트는 다른 프로젝트의 CI 도 함께 돌려 두 겹 부하가 흔하다 — * 전체 실행 두 개를 함께 돌리자 15초 한도 아래의 가장 느린 테스트가 12.8초까지 걸려 20초로 둔다 (2026-10-27). * 정말 멈춘 테스트는 이 한도(20초) 안에 여전히 실패한다. */ const TEST_TIMEOUT_MS = 20_000 // vite.config 는 mode 별 설정(포트·프록시)을 계산하는 함수다. // mergeConfig 는 함수를 병합하지 못하므로 테스트용 ConfigEnv 로 먼저 평가한다. // (테스트는 dev 서버를 띄우지 않아 포트·프록시 값에 영향받지 않는다) export default mergeConfig( viteConfig({ command: 'serve', mode: 'test' }), defineConfig({ test: { environment: 'jsdom', exclude: [...configDefaults.exclude, 'e2e/**'], root: fileURLToPath(new URL('./', import.meta.url)), testTimeout: TEST_TIMEOUT_MS, hookTimeout: TEST_TIMEOUT_MS, }, }), )