chore(frontend): coverage auf 70%+ heben #274
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#274
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
Nach Abschluss von #268 liegt die Frontend-Coverage bei 50.68% Statements, 79% in
lib/components/. Dieses Issue hebt die restlichen Luecken, sortiert nach absteigendem Aufwand.Aktueller Ist-Stand (Thresholds: 45/30/33/47):
Ziel nach Abschluss: ~70% Statements.
Phase 1: Page-Komponenten (hoechster Aufwand, groesster Impact)
Alle
+page.svelte-Templates haben 0% Coverage (~2000 Zeilen ungetestet). Jeder Page-Test benoetigt:// @vitest-environment jsdomrender()aus@testing-library/svelte$lib/stores/i18n.svelte.ts)$app/*-Mock viasrc/test/helpers/app-mocks.tsroutes/app/dashboard/+page.svelteroutes/app/events/+page.svelteroutes/app/events/new/+page.svelteroutes/app/templates/+page.svelteroutes/app/templates/new/+page.svelteroutes/app/templates/[templateId]/+page.svelteroutes/app/groups/+page.svelteroutes/app/groups/[groupId]/+page.svelteroutes/app/persons/+page.svelteroutes/app/persons/[personId]/+page.svelteroutes/app/account/+page.svelteroutes/app/events/[eventId]/+page.svelteroutes/app/deletion-requests/+page.svelteroutes/+page.svelteroutes/app/+layout.svelteroutes/app/+error.svelteVorgehen:
Ziel: ~20% Stmts Gesamtanstieg (vor allem durch routes/-Coverage).
Phase 2: Component-Tests erweitern (mittel)
action-menu.svelteenhance-Rückgabewert), Submenus (hover, children, close-on-action), Href-Items (window.location.href), Backdrop-Klick-Schliessendata-table.svelteonRowClick-Callback,children-Snippet-Rendering, Sort mitnull-WertenPhase 3: Server/Utils-Tests (mittel)
lib/server/auth.ts— 44% -> 100%base64UrlEncode():replace()mit padding-,+//-ErsetzunggenerateCodeChallenge():subtle.digest+ encodinggenerateRandomString():crypto.getRandomValues+ mappingtryRefreshToken(): Catch-Block bei fehlgeschlagenem Keycloak-RefreshcreateAiaUrl(): PKCE-Parameter, Cookie-Setzung, CodeVerifier-Erzeugung (kann teilweise ausauth-flow.test.tsübernommen werden)Phase 4: Kleine Lücken (geringster Aufwand, schnell erledigt)
lib/utils/form.tswithReloadsuccess/failure/navigateTo, Callback-Normalisierunglib/actions/testid.tsuse:testid-Action setztdata-testidlib/stores/session.svelte.tssetSessionExpiresAt()/getSessionExpiresAt()-Zykellib/stores/i18n.svelte.tsconsole.error-Catch insetLocale, Cookie-Fallback ininitLocaleThreshold-Anpassung (nach Abschluss)
Nach erfolgreicher Umsetzung werden die Thresholds erneut angehoben, z. B. auf
statements: 65, branches: 50, functions: 55, lines: 65.