29 lines
998 B
TypeScript
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,
|
|
},
|
|
});
|