refactor(frontend): zentrale Test-Infrastruktur + Component-Rendering-Tests + Coverage #268
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#268
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Beschreibung
Analog zur Backend-Test-Optimierung (PR #265) soll das Frontend eine zentrale Test-Infrastruktur erhalten:
Aktueller Zustand
frontend/src/tests/, Vitest v4, Environmentnodefetch, (2) readFileSync-Inspektion (testet Text-Inhalt, nicht Verhalten)@testing-library/svelte(^5.4.2) undjsdom(^29.1.1) in devDependencies aber ungenutztvitest.setup.ts.component.test.ts-Dateien (obwohlinclude-Pattern im vitest.config existiert)Umsetzung
Status
Phase 1: Shared Test-Infrastruktur
Neues Verzeichnis
frontend/src/test-utils/analog zubackend/src/test/:vitest.config.ts: setupFiles, Coverage-v8 mit Thresholds, per-file jsdom-Environment via
// @vitest-environment jsdomin.component.test.ts-Dateien.Phase 2: StatusBadge-Rendering-Tests (Proof of Concept)
status-badge.component.test.ts-- alle 10 Status-Kombinationen rendern und auf korrektes Label/Variant pruefen.readFileSync
status-badge.test.tswird entfernt.Phase 3: Weitere Rendering-Tests
empty-state.component.test.ts-> Rendering mit title/description/children, ersetzt readFileSyncdata-table.component.test.ts-> Rendering mit columns/data/rowIdKey, zunaechst parallel zu readFileSyncapp-shell.component.test.ts-> NEU (Sidebar im DOM, Props-Durchreichung), readFileSync bleibt zunaechstsidebar.component.test.ts-> NEU, readFileSync bleibtconsent-dialog.component.test.ts-> NEU, readFileSync bleibtPhase 4: Helper-Extraktion aus Server-Logic-Tests
Bestehende Inline-Helfer auslagern:
createFormData(values)->test-utils/helpers/form.tsmockFetchOk(body),mockFetchError(status, msg)->test-utils/helpers/fetch.tscreateRequestEvent(url, cookies)->test-utils/helpers/request.tscreateToken(payload)(aus auth-flow.test.ts) ->test-utils/helpers/auth.tsKeine Aenderung an der Testlogik -- nur Extraktion.
Phase 5: Coverage-Konfiguration
Niedrige Start-Thresholds -- erst mit wachsenden Rendering-Tests erhoehen.
Nicht-aendernde Tests
Folgende readFileSync-Tests bleiben (kein Rendering-Aequivalent moeglich/sinnvoll):
api-conventions.test.ts-- Meta-Konventions-Pruefungdesign-tokens.test.ts-- Token-Vollstaendigkeitsvelte-config.test.ts,wrangler-config.test.ts-- Config-Validierungsvelte-syntax.test.ts-- Syntax-Validierungi18n.test.ts-- Uebersetzungs-String-PruefungLabels
component/frontend, type/refactor
niboer referenced this issue2026-07-08 19:35:33 +02:00