test(e2e): event-lifecycle.spec.ts und base.spec.ts auf getByTestId umstellen #261

Closed
opened 2026-07-06 21:50:42 +02:00 by niboer · 2 comments
Owner

Beschreibung

Nachdem in #260 die fehlenden testids im Frontend ergaenzt wurden, sollen die E2E-Tests in event-lifecycle.spec.ts und base.spec.ts von getByLabel/getByRole/getByText auf getByTestId umgestellt werden.

Abhaengigkeit

Blocked by #260 — die testids muessen erst im Frontend vorhanden sein.

Aenderungen

e2e/specs/test-3-workflows/event-lifecycle.spec.ts

3 Stellen mit je 3 Selektoren (Zeilen 30-32, 42-43, 51-53):

- page.getByLabel('Titel')
+ page.getByTestId('input-event-title')
- page.getByLabel('Datum')
+ page.getByTestId('input-event-date')
- page.getByRole('button', { name: 'Event anlegen' })
+ page.getByTestId('btn-event-create')

e2e/specs/test-1-base/base.spec.ts

Sidebar-Links (testids existieren bereits):

- nav.getByRole('link', { name: 'Dashboard' })
+ page.getByTestId('nav-link-dashboard')
- nav.getByRole('link', { name: 'Events' })
+ page.getByTestId('nav-link-events')
- nav.getByRole('link', { name: 'Personen' })
+ page.getByTestId('nav-link-persons')
- nav.getByRole('link', { name: 'Mein Haushalt' })
+ page.getByTestId('nav-link-groups')

Selektoren die testids aus #260 benoetigen:

- nav.getByRole('link', { name: /logout/i })
+ page.getByTestId('btn-logout')
- nav.getByText('Max Mustermann')
+ page.getByTestId('text-sidebar-name')
- nav.getByText('max@example.com')
+ page.getByTestId('text-sidebar-email')
- nav.getByText('App-Admin')
+ page.getByTestId('text-sidebar-role')
- getByRole('heading', { name: 'Naechste Feier' })
+ page.getByTestId('heading-next-event')
- getByRole('heading', { name: 'Offene RSVPs' })
+ page.getByTestId('heading-open-rsvps')
- getByRole('heading', { name: 'Personen' })
+ page.getByTestId('heading-persons')

Test-Hinweise

  • npm run test:integration muss gruen sein
  • Ergebnis in /output/e2e-results/ kontrollieren — alle Tests passed

Checkliste

  • event-lifecycle.spec.ts auf testid umgestellt
  • base.spec.ts auf testid umgestellt
  • E2E-Testlauf erfolgreich (alle 64+ Tests passed)
  • PR erstellt mit Referenz auf #260
## Beschreibung Nachdem in #260 die fehlenden testids im Frontend ergaenzt wurden, sollen die E2E-Tests in `event-lifecycle.spec.ts` und `base.spec.ts` von `getByLabel`/`getByRole`/`getByText` auf `getByTestId` umgestellt werden. ## Abhaengigkeit **Blocked by #260** — die testids muessen erst im Frontend vorhanden sein. ## Aenderungen ### `e2e/specs/test-3-workflows/event-lifecycle.spec.ts` 3 Stellen mit je 3 Selektoren (Zeilen 30-32, 42-43, 51-53): ```diff - page.getByLabel('Titel') + page.getByTestId('input-event-title') - page.getByLabel('Datum') + page.getByTestId('input-event-date') - page.getByRole('button', { name: 'Event anlegen' }) + page.getByTestId('btn-event-create') ``` ### `e2e/specs/test-1-base/base.spec.ts` Sidebar-Links (testids existieren bereits): ```diff - nav.getByRole('link', { name: 'Dashboard' }) + page.getByTestId('nav-link-dashboard') - nav.getByRole('link', { name: 'Events' }) + page.getByTestId('nav-link-events') - nav.getByRole('link', { name: 'Personen' }) + page.getByTestId('nav-link-persons') - nav.getByRole('link', { name: 'Mein Haushalt' }) + page.getByTestId('nav-link-groups') ``` Selektoren die testids aus #260 benoetigen: ```diff - nav.getByRole('link', { name: /logout/i }) + page.getByTestId('btn-logout') - nav.getByText('Max Mustermann') + page.getByTestId('text-sidebar-name') - nav.getByText('max@example.com') + page.getByTestId('text-sidebar-email') - nav.getByText('App-Admin') + page.getByTestId('text-sidebar-role') - getByRole('heading', { name: 'Naechste Feier' }) + page.getByTestId('heading-next-event') - getByRole('heading', { name: 'Offene RSVPs' }) + page.getByTestId('heading-open-rsvps') - getByRole('heading', { name: 'Personen' }) + page.getByTestId('heading-persons') ``` ## Test-Hinweise - `npm run test:integration` muss gruen sein - Ergebnis in `/output/e2e-results/` kontrollieren — alle Tests `passed` ## Checkliste - [ ] `event-lifecycle.spec.ts` auf testid umgestellt - [ ] `base.spec.ts` auf testid umgestellt - [ ] E2E-Testlauf erfolgreich (alle 64+ Tests passed) - [ ] PR erstellt mit Referenz auf #260
Author
Owner

Blocked by #260 — testids muessen erst im Frontend vorhanden sein.

Blocked by #260 — testids muessen erst im Frontend vorhanden sein.
Author
Owner

Plan aktualisiert (09.07.2026)

Nach Analyse des aktuellen Code-Stands und Ruecksprache:

Scope

Datei Aenderungen
e2e/fixtures/test-data.ts SEED_EVENT_ID-Konstante fuer hartcodierte Seed-Event-UUID 9675d3e8-b3cd-4a38-aafe-d031fb6fd3b5
event-lifecycle.spec.ts 3 Formular-Selektoren: getByLabel('Titel')getByTestId('input-event-title'), getByLabel('Datum')getByTestId('input-event-date'), getByRole('button', ...)getByTestId('btn-event-create')
event-lifecycle.spec.ts 7 Tabs/Back-Link: page.locator('[data-testid="..."]')page.getByTestId('...')
event-lifecycle.spec.ts 2 Row-Selektoren: page.locator('[data-testid^="row-"]').first()page.getByTestId('row-9675d3e8-b3cd-4a38-aafe-d031fb6fd3b5')
base.spec.ts 6 Nav-Selektoren: nav.getByRole('link', ...)page.getByTestId('nav-link-*') / page.getByTestId('btn-logout') / page.getByTestId('link-login')
docs/design/07-e2e-tests.md Beispiel-Code (Z. 169-174) von page.locator('[data-testid="..."]') auf page.getByTestId('...') aktualisieren

Ausgelassen

  • page.locator('h1') — keine testids, bleiben
  • page.getByText('Letzte Feiern') — kein testid vorhanden, nicht im Scope
**Plan aktualisiert (09.07.2026)** Nach Analyse des aktuellen Code-Stands und Ruecksprache: ### Scope | Datei | Aenderungen | |-------|------------| | `e2e/fixtures/test-data.ts` | `SEED_EVENT_ID`-Konstante fuer hartcodierte Seed-Event-UUID `9675d3e8-b3cd-4a38-aafe-d031fb6fd3b5` | | `event-lifecycle.spec.ts` | **3 Formular-Selektoren**: `getByLabel('Titel')` → `getByTestId('input-event-title')`, `getByLabel('Datum')` → `getByTestId('input-event-date')`, `getByRole('button', ...)` → `getByTestId('btn-event-create')` | | `event-lifecycle.spec.ts` | **7 Tabs/Back-Link**: `page.locator('[data-testid="..."]')` → `page.getByTestId('...')` | | `event-lifecycle.spec.ts` | **2 Row-Selektoren**: `page.locator('[data-testid^="row-"]').first()` → `page.getByTestId('row-9675d3e8-b3cd-4a38-aafe-d031fb6fd3b5')` | | `base.spec.ts` | **6 Nav-Selektoren**: `nav.getByRole('link', ...)` → `page.getByTestId('nav-link-*')` / `page.getByTestId('btn-logout')` / `page.getByTestId('link-login')` | | `docs/design/07-e2e-tests.md` | Beispiel-Code (Z. 169-174) von `page.locator('[data-testid="..."]')` auf `page.getByTestId('...')` aktualisieren | ### Ausgelassen - `page.locator('h1')` — keine testids, bleiben - `page.getByText('Letzte Feiern')` — kein testid vorhanden, nicht im Scope
Sign in to join this conversation.
No description provided.