Skip to content

Testing

Ebene Werkzeug Scope
Unit-Tests Jest Geschäftslogik pro Modul — isoliert, InMemory-Repositories
Integration-Tests Jest + Supertest Cross-Modul-Workflows über den Route/API-Layer
E2E-Tests Playwright API-, Web- und Mobile-Flows über echtes Netzwerk/Browser
Smoke-Tests Jest Root-Export-Verifikation, Health-Checks
Security-Tests Semgrep, Gitleaks, Trivy SAST, Secret-Scan, Dependency-Scan in CI
Mutation-Tests StrykerJS Kritische Module — Ziel: >= 80 % Mutation-Score

Empfohlene Reihenfolge — jede Stufe läuft nur, wenn die vorherige erfolgreich war:

Terminal window
npx tsc --noEmit --project api/tsconfig.json
pnpm lint
pnpm test
pnpm build
  • Keine PII in Test-Daten: synthetische UUIDs (00000000-0000-4000-8000-*) und example.com-Adressen verwenden.
  • setup()-Funktion kapselt das Test-Wiring (DRY) — kein beforeEach mit geteiltem State.
  • Error-Tests spezifisch: rejects.toThrow(SpecificErrorClass) statt generischem toThrow().
  • Tenant-Isolation mitverifizieren: jeder Service-Test enthält einen Cross-Tenant-Fall, der NOT_FOUND erwartet.
  • Kein any in Tests für typisierte Interfaces (Mocks ausgenommen).

Die vollständige Pipeline (Typecheck, Lint, Tests, Build, Security-Scans, E2E) läuft automatisch in der CI. Mutation-Tests laufen wöchentlich als eigener Gate-Job mit definierten Score-Schwellen pro Modul.