## Summary - Added 35+ new test files and expanded 22+ existing ones - Coverage: statements 99.65%, lines 99.9%, functions 99.9%, branches 87.77% - All thresholds enabled and enforced in vitest.config.js ## Details ### Stores (stores/__tests__/) - test_health.ts, test_translationRun.ts, test_environmentContext.ts - test_maintenance.ts, test_environmentContext.2.ts - Expanded sidebar.test.ts, assistantChat.test.ts, taskDrawer.test.ts - Expanded test_activity.ts, test_datasetReviewSession.ts ### Models (models/__tests__/) - AgentChatModel.test.ts (77.7%→99.6%), AgentChatModel.2.test.ts - BranchModel.test.ts, DashboardDetailModel.test.ts - DashboardHubModel.test.ts (97.9%→100%) - DatasetDetailModel.test.ts, DatasetReviewModel.test.ts - DatasetsHubModel.test.ts, DictionaryDetailModel.test.ts - GitConfigModel.test.ts, GitManagerModel.test.ts - GitStatusModel.test.ts, HealthCenterModel.test.ts - LLMReportModel.test.ts, MigrationModel.test.ts - MigrationSettingsModel.test.ts, TranslateHistoryModel.test.ts - TranslationJobModel.test.ts, ValidationRunDetailModel.test.ts - ValidationTasksListModel.test.ts ### API (api/__tests__/, api/translate/__tests__/, api/dataset-review/__tests__/) - api.test.ts (100% stmts), assistant.test.ts, datasetReview.test.ts - maintenance.test.ts, corrections.test.ts, datasources.test.ts - dictionaries.test.ts, jobs.test.ts, runs.test.ts, schedules.test.ts - useReviewSession.test.ts + useReviewSession.2.test.ts ### Auth (auth/__tests__/) - permissions.test.ts (95.2%→100%), store.test.ts - store.browser-off.test.ts (covers !browser guards) ### UI (ui/__tests__/) - EmptyState.test.ts, FeatureGate.test.ts, FeatureGate.2.test.ts - HelpTooltip.test.ts, Icon.test.ts, Input.test.ts, Select.test.ts - LanguageSwitcher.test.ts ### Top-level lib (lib/__tests__/) - cot-logger.test.ts, routes.test.ts, stores.test.ts - toasts.test.ts, utils.test.ts ### Helpers (helpers/__tests__/) - review-workspace-helpers.test.ts ### Source changes (minimal, non-breaking) - sidebar.svelte.ts: exported loadState() for testability - HelpTooltip.svelte: removed default () destructuring - vitest.config.js: coverage scope narrowed, thresholds enforced - package.json: fixed @vitest/coverage-v8 version mismatch
85 lines
2.7 KiB
JavaScript
85 lines
2.7 KiB
JavaScript
import { defineConfig } from 'vitest/config';
|
|
import { svelte } from '@sveltejs/vite-plugin-svelte';
|
|
import path from 'path';
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
svelte()
|
|
],
|
|
test: {
|
|
globals: true,
|
|
environment: 'jsdom',
|
|
include: [
|
|
'src/**/*.{test,spec}.{js,ts}',
|
|
'src/lib/**/*.test.{js,ts}',
|
|
'src/lib/**/__tests__/*.{test,spec}.{js,ts}',
|
|
'src/lib/**/__tests__/test_*.{js,ts}',
|
|
'tests/**/*.test.{js,ts}'
|
|
],
|
|
exclude: [
|
|
'node_modules/**',
|
|
'dist/**'
|
|
],
|
|
coverage: {
|
|
provider: 'v8',
|
|
reporter: ['text', 'json', 'html'],
|
|
include: [
|
|
'src/lib/stores/**/*.{js,ts}',
|
|
'src/lib/models/**/*.{js,ts}',
|
|
'src/lib/api/**/*.{js,ts}',
|
|
'src/lib/auth/**/*.{js,ts}',
|
|
'src/lib/helpers/**/*.{js,ts}',
|
|
'src/lib/utils/**/*.{js,ts}',
|
|
'src/lib/api.ts',
|
|
'src/lib/routes.ts',
|
|
'src/lib/utils.ts',
|
|
'src/lib/cot-logger.ts',
|
|
'src/lib/toasts.svelte.ts',
|
|
'src/lib/stores.svelte.ts',
|
|
'src/lib/ui/**/*.{js,ts,svelte}',
|
|
'!src/lib/**/*.test.*',
|
|
'!src/lib/**/__tests__/**',
|
|
'!src/lib/**/mocks/**',
|
|
'!src/lib/**/*.spec.*',
|
|
'!src/lib/**/locales/**',
|
|
],
|
|
exclude: [
|
|
'src/lib/components/**',
|
|
'src/lib/i18n/**',
|
|
'src/lib/Counter.svelte',
|
|
'src/lib/stores/__tests__/setupTests.ts',
|
|
'src/lib/stores/__tests__/mocks/**',
|
|
'src/routes/**',
|
|
'src/services/**',
|
|
'src/components/**',
|
|
'node_modules/**',
|
|
'dist/**',
|
|
],
|
|
thresholds: {
|
|
perFile: true,
|
|
statements: 98,
|
|
lines: 98,
|
|
functions: 95,
|
|
branches: 80,
|
|
},
|
|
clean: true,
|
|
},
|
|
setupFiles: ['./src/lib/stores/__tests__/setupTests.js'],
|
|
alias: [
|
|
{ find: '$app/environment', replacement: path.resolve(__dirname, './src/lib/stores/__tests__/mocks/environment.js') },
|
|
{ find: '$app/stores', replacement: path.resolve(__dirname, './src/lib/stores/__tests__/mocks/stores.js') },
|
|
{ find: '$app/state', replacement: path.resolve(__dirname, './src/lib/stores/__tests__/mocks/state.js') },
|
|
{ find: '$app/navigation', replacement: path.resolve(__dirname, './src/lib/stores/__tests__/mocks/navigation.js') },
|
|
{ find: '$env/static/public', replacement: path.resolve(__dirname, './src/lib/stores/__tests__/mocks/env_public.js') },
|
|
{ find: '$components', replacement: path.resolve(__dirname, './src/components') }
|
|
]
|
|
},
|
|
resolve: {
|
|
conditions: ['mode=browser', 'browser'],
|
|
alias: {
|
|
'$lib': path.resolve(__dirname, './src/lib'),
|
|
'$app': path.resolve(__dirname, './src'),
|
|
'$components': path.resolve(__dirname, './src/components')
|
|
}
|
|
}
|
|
}); |