Exclude the tsc build output from vitest instead of from the build

Excluding src/common tests from tsconfig.common.json kept vitest from
running the compiled copies twice, but it also meant those test files were
no longer type checked at all by `tsc --build` (eslint only catches lint
issues, not type errors).

Exclude common-ts-dist from test discovery instead, so the tests are both
type checked and run exactly once.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YCf7BBiPqNLUjVoN7rTCF6
pull/2874/merge
Claude 3 weeks ago committed by Mikael Finstad
parent ca6813f9a4
commit 273ec3b1ce

@ -16,9 +16,4 @@
"include": [
"src/common/**/*",
],
// tests are run by vitest from the sources; don't emit them into the build output,
// or vitest would discover and run the compiled copies too
"exclude": [
"src/common/**/*.test.ts",
],
}

@ -11,6 +11,7 @@
},
"include": [
"electron.vite.config.ts",
"vitest.config.ts",
"i18next.config*.ts",
"script/**/*",
],

@ -0,0 +1,9 @@
import { configDefaults, defineConfig } from 'vitest/config';
export default defineConfig({
test: {
// `tsc --build` compiles src/common (tests included) into common-ts-dist. Don't discover those
// compiled copies, or every test in src/common would also run a second time from the build output.
exclude: [...configDefaults.exclude, 'common-ts-dist/**'],
},
});
Loading…
Cancel
Save