mirror of
https://github.com/complexcaresolutions/cms.c2sgmbh.git
synced 2026-03-17 23:14:12 +00:00
49 lines
1.6 KiB
Markdown
49 lines
1.6 KiB
Markdown
# Projektweites Dynamisches Testsystem
|
|
|
|
## Ziel
|
|
|
|
Dieses System stellt sicher, dass die Testabdeckung mit dem gesamten Projekt mitwaechst.
|
|
Bestehende Altlasten werden als Baseline dokumentiert, aber neue ungetestete Dateien
|
|
werden sofort als Fehler erkannt.
|
|
|
|
## Komponenten
|
|
|
|
- Guard-Script: `scripts/test-system/audit.mjs`
|
|
- Baseline: `tests/test-system-baseline.json`
|
|
- Statusreport: `docs/reports/test-system-status.md`
|
|
|
|
## Funktionsweise
|
|
|
|
1. Das Script scannt alle `src/**/*.{ts,tsx}` Dateien (mit Exclusions, z. B. Migrationen).
|
|
2. Es sucht Test-Evidenz in `tests/unit`, `tests/int`, `tests/e2e`:
|
|
- direkte Modulimporte (z. B. `@/lib/...`)
|
|
- API-Endpoint-Nutzung fuer `route.ts` Dateien (z. B. `/api/news`)
|
|
- konservative Dateinamen-Heuristik
|
|
3. Es vergleicht die aktuelle Liste ungetesteter Dateien mit der Baseline.
|
|
4. Ergebnis:
|
|
- **Pass**: keine neuen Luecken
|
|
- **Fail**: neue ungetestete Dateien gefunden
|
|
|
|
## Befehle
|
|
|
|
```bash
|
|
# Guard ausfuehren (CI-geeignet)
|
|
pnpm test:system
|
|
|
|
# Baseline absichtlich aktualisieren
|
|
pnpm test:system:update
|
|
```
|
|
|
|
## Team-Regeln fuer laufende Weiterentwicklung
|
|
|
|
- Bei jeder neuen Datei unter `src/` direkt passende Tests anlegen.
|
|
- Wenn technisch begruendet keine Tests moeglich sind, Datei bewusst in der Baseline belassen.
|
|
- Baseline nur nach Review aktualisieren (kein automatisches "wegklicken" von Luecken).
|
|
- Report unter `docs/reports/test-system-status.md` bei Auffaelligkeiten pruefen.
|
|
|
|
## CI-Integration
|
|
|
|
Der Guard laeuft im CI-Workflow `ci.yml` im Lint-Job als Schritt:
|
|
- `pnpm test:system`
|
|
|
|
Damit greifen die Regeln sowohl auf Pull Requests als auch auf Pushes nach `develop`.
|