- 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
43 lines
952 B
TypeScript
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'],
|
|
},
|
|
});
|