waffensachkunde

Waffensachkunde – Lernsoftware für die Sachkundeprüfung nach § 7 WaffG. Barrierefrei, offline, EUPL-1.2.

/ app vitest.config.ts

2,2 KB Rohdatei
app/vitest.config.ts — 58 Zeilen
1 import { resolve } from 'node:path';
2
3 import react from '@vitejs/plugin-react';
4 import { defineConfig } from 'vitest/config';
5
6 export default defineConfig({
7 plugins: [react()],
8 resolve: {
9 alias: {
10 '@renderer': resolve(__dirname, 'src/renderer/src'),
11 '@shared': resolve(__dirname, 'src/shared'),
12 },
13 },
14 test: {
15 // Unit-Tests laufen in jsdom; die E2E-Tests (Playwright, echtes Electron)
16 // liegen unter e2e/ und werden hier bewusst ausgeschlossen.
17 environment: 'jsdom',
18 globals: false,
19 include: ['tests/**/*.test.{ts,tsx}'],
20 exclude: ['node_modules/**', 'out/**', 'e2e/**'],
21 setupFiles: ['./tests/setup.ts'],
22 restoreMocks: true,
23 coverage: {
24 provider: 'v8',
25 reportsDirectory: 'coverage',
26 include: ['src/**/*.{ts,tsx}'],
27 exclude: ['src/**/*.d.ts'],
28 /*
29 Die Schwellen sind eine Sperre gegen Rückschritt, kein Wunschwert.
30
31 Erstmessung am 27.08.2026, Stand 0.21.0 (1235 Tests in 46 Dateien):
32 Statements 77,87 – Branches 73,59 – Functions 77,11 – Lines 77,86.
33 Nach dem Schließen der Lücke in `pruefung/bogen.ts` und mit den
34 Tests desselben Tages (1260 Tests in 47 Dateien): Statements 78,68 –
35 Branches 73,93 – Functions 78,04 – Lines 78,62.
36
37 Eingetragen ist bewusst die niedrigere Erstmessung, abgerundet: Sie
38 hält auch dann, wenn gerade laufende Arbeiten am Baum die Zahlen
39 kurzzeitig drücken. Eine Schwelle, die beim ersten Lauf rot ist,
40 wird abgeschaltet und bewacht danach gar nichts mehr – dieselbe
41 Überlegung wie bei den stummen Wachen. Sobald der Baum ruhig ist,
42 dürfen die Zahlen auf die höhere Messung nachgezogen werden.
43
44 Wer die Abdeckung hebt, darf die Zahlen nachziehen; wer sie senkt,
45 muss es begründen. Absichtlich nicht bei 100: Der Hauptprozess
46 (Fenster, Menü, Dialoge, Druck) wird von Playwright gefahren, nicht
47 von Vitest, und taucht hier deshalb als Lücke auf, obwohl er geprüft
48 ist – siehe docs/stand.md.
49 */
50 thresholds: {
51 statements: 77,
52 branches: 73,
53 functions: 76,
54 lines: 77,
55 },
56 },
57 },
58 });