import { resolve } from 'node:path'; import react from '@vitejs/plugin-react'; import { defineConfig } from 'vitest/config'; export default defineConfig({ plugins: [react()], resolve: { alias: { '@renderer': resolve(__dirname, 'src/renderer/src'), '@shared': resolve(__dirname, 'src/shared'), }, }, test: { // Unit-Tests laufen in jsdom; die E2E-Tests (Playwright, echtes Electron) // liegen unter e2e/ und werden hier bewusst ausgeschlossen. environment: 'jsdom', globals: false, include: ['tests/**/*.test.{ts,tsx}'], exclude: ['node_modules/**', 'out/**', 'e2e/**'], setupFiles: ['./tests/setup.ts'], restoreMocks: true, coverage: { provider: 'v8', reportsDirectory: 'coverage', include: ['src/**/*.{ts,tsx}'], exclude: ['src/**/*.d.ts'], /* Die Schwellen sind eine Sperre gegen Rückschritt, kein Wunschwert. Erstmessung am 27.08.2026, Stand 0.21.0 (1235 Tests in 46 Dateien): Statements 77,87 – Branches 73,59 – Functions 77,11 – Lines 77,86. Nach dem Schließen der Lücke in `pruefung/bogen.ts` und mit den Tests desselben Tages (1260 Tests in 47 Dateien): Statements 78,68 – Branches 73,93 – Functions 78,04 – Lines 78,62. Eingetragen ist bewusst die niedrigere Erstmessung, abgerundet: Sie hält auch dann, wenn gerade laufende Arbeiten am Baum die Zahlen kurzzeitig drücken. Eine Schwelle, die beim ersten Lauf rot ist, wird abgeschaltet und bewacht danach gar nichts mehr – dieselbe Überlegung wie bei den stummen Wachen. Sobald der Baum ruhig ist, dürfen die Zahlen auf die höhere Messung nachgezogen werden. Wer die Abdeckung hebt, darf die Zahlen nachziehen; wer sie senkt, muss es begründen. Absichtlich nicht bei 100: Der Hauptprozess (Fenster, Menü, Dialoge, Druck) wird von Playwright gefahren, nicht von Vitest, und taucht hier deshalb als Lücke auf, obwohl er geprüft ist – siehe docs/stand.md. */ thresholds: { statements: 77, branches: 73, functions: 76, lines: 77, }, }, }, });