Files

29 lines
998 B
TypeScript

import { defineConfig } from 'vitest/config';
import { existsSync } from 'node:fs';
import { dirname, resolve } from 'node:path';
/**
* NodeNext 규약대로 소스가 `./ledger.js` 로 임포트하지만 실제 파일은 `.ts` 다.
* Vite 는 이 치환을 하지 않으므로 여기서 직접 이어 준다.
*/
const tsExtension = {
name: 'resolve-js-to-ts',
resolveId(source: string, importer?: string) {
if (!importer || !source.startsWith('.') || !source.endsWith('.js')) return null;
const candidate = resolve(dirname(importer), source.replace(/\.js$/, '.ts'));
return existsSync(candidate) ? candidate : null;
},
};
export default defineConfig({
plugins: [tsExtension],
test: {
include: ['test/**/*.test.ts'],
// 에뮬레이터 왕복이 있어 기본 5초로는 모자란다.
testTimeout: 30_000,
hookTimeout: 30_000,
// 원장 테스트는 같은 사용자 문서를 건드리므로 순차로 돌린다.
fileParallelism: false,
},
});