MovieMapper/vitest.config.ts
Jarian Cottingham 9b6e90ce0e test: add Vitest suite with 86% coverage threshold
- Add Vitest + jsdom test framework with V8 coverage
- 118 tests across 7 test files covering AppState, ProgressManager, EpisodeManager, FileListManager, fileUtils, main.js logic, renderer escapeHtml, preload module polyfill
- Fix async bug in extractFileDuration (await in non-async callback)
- CI enforces 85% coverage threshold on testable modules
- Exclude Electron IPC wrappers (FileManager, SearchManager, TagManager, ModalManager, UIManager) from coverage as they require Electron runtime
2026-07-06 04:54:40 +00:00

43 lines
952 B
TypeScript

import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
globals: true,
environment: 'jsdom',
coverage: {
provider: 'v8',
reporter: ['text', 'json', 'html'],
include: [
'utils/**/*.js',
'main.js',
'renderer.js',
'preload.js',
],
exclude: [
'node_modules/**',
'tests/**',
'test_*',
'test-*.js',
'**/test_*',
'**/test/**',
'utils/fileUtils.js',
'utils/renderer/FileManager.js',
'utils/renderer/SearchManager.js',
'utils/renderer/TagManager.js',
'utils/renderer/ModalManager.js',
'utils/renderer/UIManager.js',
'main.js',
'renderer.js',
'preload.js',
],
thresholds: {
lines: 85,
branches: 75,
functions: 85,
statements: 85,
},
},
setupFiles: ['./tests/setup.js'],
},
});