refactor(backend): zentrale Test-Mocks + Factories + Coverage #265
No reviewers
Labels
No labels
component/backend
component/docs
component/e2e
component/frontend
component/infra
component/keycloak
prio/high
prio/low
prio/medium
type/bug
type/chore
type/feature
type/refactor
type/test
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
WompSchmiede/FamilienFeierPlaner!265
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "issue/backend-test-optimierung"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Altes Verhalten
Jede Testdatei in
src/__tests__/deklarierte ihre eigenenvi.fn()-Mock-Variablen undvi.mock('../lib/prisma.js')-Bloecke. Dadurch entstanden:const mockXxx = vi.fn()-Deklarationen in 24 DateienmockGaesteCreate, generischmockFindMany)Neues Verhalten
Zentrale Test-Infrastruktur in
src/test/:mocks/prisma.ts— zentralesmockPrismamitvi.fn()fuer alle 13 Prisma-Modelle (ersetzt 158 Deklarationen)mocks/jwt.ts— zentralermockVerifyJwtfactories/*.ts— 13 Factory-Funktionen (buildPerson(),buildEvent(), ...)helpers/setup.ts—setupConsent(),createTestServer()vitest.setup.ts— globales Setupvitest.config.ts— Coverage mit v8-Provider + Thresholds (Statements/Lines 79%, Functions 80%, Branches 70%)Migration von 17 Testdateien auf zentrales Pattern. Coverage erstmalig aktiv.
Begruendung
Weniger Boilerplate, konsistentes Naming, zentrale Wartbarkeit. Coverage-Thresholds verhindern unbeabsichtigte Testluecken.
Test-Hinweise
cd backend && npm test— alle 550 Tests passennpm run test:build— Lint + TypeScript + Testsdist/enthaelt keinsrc/test/(tsconfig-exclude)Checkliste
use:testidan neuen<button>,<a>,<form>-Elementen gesetzt?e2e/specs/angelegt?- src/test/ mit mocks/prisma.ts (alle 13 Modelle), mocks/jwt.ts, factories/ (13 Factory-Funktionen) und helpers/setup.ts - vi.mock('../lib/prisma.js') in 24 Dateien durch zentrale mockPrisma-Importe ersetzt (158 -> 17 lokale vi.fn()-Deklarationen) - Inconsistentes/Deutsches Mock-Naming entfaellt automatisch - vitest.config.ts: Coverage mit v8-Provider + Thresholds - src/test im tsconfig-exclude + eslint allowDefault ergaenzt - backend/AGENTS.md: Test-Konvention aktualisiert closes #260