feat(backend+frontend+e2e): Personenliste mit Haushaltsgruppierung und erweiterter Ansicht #263

Merged
niboer merged 4 commits from issue-254-3 into main 2026-07-06 21:13:29 +00:00
Owner

4 Commits, via Rebase-Merge.

  • parsePersonInclude: 'consent' ins valid-Set aufgenommen
  • PERSON_CONSENT_INCLUDE fuer consentsGiven-Subquery
  • mapPersonConsent() fuegt consentGranted: boolean zum Response
  • Gruppen-Endpunkt um group-consent-Logik erweitert
  • openapi.yaml consent-Felder ergaenzt
  • Unit-Tests fuer include=consent
  • Lint-Warnung: doppelte String-Literale durch Konstanten ersetzt

Commit 2: e92d0bb — feat(frontend): testId-Prop an DataTable fuer testid

  • testId-Prop an data-table.svelte
  • data-testid={testId} auf <table> gesetzt
  • Ermoeglicht E2E-Tests per getByTestId statt DOM-Traversierung
  • group-create.spec.ts: Consent-Handling aus beforeAll entfernt
  • group-permissions.spec.ts: Consent-Handling aus beforeAll entfernt
  • consent.petra.musterfrau.spec.ts (NEU): Login + Household-Consent
  • consent.thomas.koenig.spec.ts (NEU): Login + GDPR-Consent
  • Alphabetische Reihenfolge stellt sicher, dass Consent vor anderen Phase-2-Tests laeuft

Commit 4: cc9c420 — Rest (eigentliches Issue #254)

  • Frontend: Haushaltsgruppierung wie Gaesteliste (client-seitig)
  • Spalten: Non-Admin (Name/Status), Admin (+Benutzer), Admin+Erweitert (+E-Mail/+Zustimmung/+Aktionen)
  • Erweiterte-Ansicht-Toggle (nur edit-person, sessionStorage)
  • PersonEditModal: Create-Modus mit Haushalt-Dropdown
  • ?/create Action in +page.server.ts
  • persons.spec.ts aufgeteilt in persons.max.mustermann.spec.ts + persons.thomas.koenig.spec.ts
  • ActionMenu: getByRole/locator('button') durch getByTestId ersetzt
  • Thomas-Test: erwartete Zahlen an archivierte Person angepasst, Sortierung repariert
  • global-setup: Passwoerter fuer alle 3 DEV_USERS
  • i18n DE/EN: extendedView, consentGranted, consentNotGranted

closes #254
refs #256

4 Commits, via Rebase-Merge. ## Commit 1: `e4678d4` — feat(backend): include=consent fuer Personen-API - `parsePersonInclude`: `'consent'` ins valid-Set aufgenommen - `PERSON_CONSENT_INCLUDE` fuer `consentsGiven`-Subquery - `mapPersonConsent()` fuegt `consentGranted: boolean` zum Response - Gruppen-Endpunkt um group-consent-Logik erweitert - `openapi.yaml` consent-Felder ergaenzt - Unit-Tests fuer `include=consent` - Lint-Warnung: doppelte String-Literale durch Konstanten ersetzt ## Commit 2: `e92d0bb` — feat(frontend): testId-Prop an DataTable fuer testid - `testId`-Prop an `data-table.svelte` - `data-testid={testId}` auf `<table>` gesetzt - Ermoeglicht E2E-Tests per `getByTestId` statt DOM-Traversierung ## Commit 3: `3b975fe` — test(e2e): Consent-Tests von Phase 3 nach Phase 2 - `group-create.spec.ts`: Consent-Handling aus `beforeAll` entfernt - `group-permissions.spec.ts`: Consent-Handling aus `beforeAll` entfernt - `consent.petra.musterfrau.spec.ts` (NEU): Login + Household-Consent - `consent.thomas.koenig.spec.ts` (NEU): Login + GDPR-Consent - Alphabetische Reihenfolge stellt sicher, dass Consent vor anderen Phase-2-Tests laeuft ## Commit 4: `cc9c420` — Rest (eigentliches Issue #254) - Frontend: Haushaltsgruppierung wie Gaesteliste (client-seitig) - Spalten: Non-Admin (Name/Status), Admin (+Benutzer), Admin+Erweitert (+E-Mail/+Zustimmung/+Aktionen) - Erweiterte-Ansicht-Toggle (nur edit-person, sessionStorage) - PersonEditModal: Create-Modus mit Haushalt-Dropdown - `?/create` Action in `+page.server.ts` - `persons.spec.ts` aufgeteilt in `persons.max.mustermann.spec.ts` + `persons.thomas.koenig.spec.ts` - ActionMenu: `getByRole`/`locator('button')` durch `getByTestId` ersetzt - Thomas-Test: erwartete Zahlen an archivierte Person angepasst, Sortierung repariert - global-setup: Passwoerter fuer alle 3 DEV_USERS - i18n DE/EN: `extendedView`, `consentGranted`, `consentNotGranted` closes #254 refs #256
- parsePersonInclude: 'consent' ins valid-Set aufgenommen
- PERSON_CONSENT_INCLUDE fuer consentsGiven-Subquery
- mapPersonConsent() fuegt consentGranted: boolean zum Response
- Gruppen-Endpunkt group-consent-Logik
- openapi.yaml consent-Felder ergaenzt
- Unit-Tests fuer include=consent

refs #254
Damit koennen E2E-Tests Tabellen direkt per getByTestId adressieren,
ohne fragile DOM-Traversierung (z.B. locator('..')).

refs #254
- group-create.spec.ts: Consent-Handling aus beforeAll entfernt
- group-permissions.spec.ts: Consent-Handling aus beforeAll entfernt
- consent.petra.musterfrau.spec.ts (NEU): Login + GDPR+Household-Consent
- consent.thomas.koenig.spec.ts (NEU): Login + GDPR-Consent

refs #254
feat(backend+frontend+e2e): Personenliste mit Haushaltsgruppierung und erweiterter Ansicht
Some checks failed
CI Backend / lint-backend (pull_request) Successful in 52s
CI Frontend / lint-frontend (pull_request) Successful in 1m12s
E2E / e2e (pull_request) Failing after 39s
CI Frontend / test-frontend (pull_request) Has been cancelled
CI Backend / test-backend (pull_request) Has been cancelled
CI Meta / conventional-commit (pull_request) Has been cancelled
4151795ddb
- Frontend: Haushaltsgruppierung wie Gaesteliste (client-seitig)
- Spalten: Non-Admin (Name/Status), Admin (+Benutzer),
  Admin+Erweitert (+E-Mail/+Zustimmung/+Aktionen)
- Erweiterte-Ansicht-Toggle (nur edit-person, sessionStorage)
- PersonEditModal: Create-Modus mit Haushalt-Dropdown
- ?/create Action in page.server.ts
- E2E: 2 Testszenarien (Thomas Koenig + Max Mustermann)
  in eigenstaendigen Dateien
- ActionMenu: getByRole/locator('button') durch getByTestId
- Thomas-Test: erwartete Zahlen, Sortierung repariert
- global-setup: Passwoerter fuer alle 3 DEV_USERS
- i18n DE/EN: extendedView, consentGranted, consentNotGranted

closes #254

refs #256
niboer changed title from WIP: feat(backend+frontend+e2e): Personenliste mit Haushaltsgruppierung und erweiterter Ansicht to feat(backend+frontend+e2e): Personenliste mit Haushaltsgruppierung und erweiterter Ansicht 2026-07-06 20:58:50 +00:00
niboer force-pushed issue-254-3 from 4151795ddb
Some checks failed
CI Backend / lint-backend (pull_request) Successful in 52s
CI Frontend / lint-frontend (pull_request) Successful in 1m12s
E2E / e2e (pull_request) Failing after 39s
CI Frontend / test-frontend (pull_request) Has been cancelled
CI Backend / test-backend (pull_request) Has been cancelled
CI Meta / conventional-commit (pull_request) Has been cancelled
to 5b3433be23
All checks were successful
CI Backend / lint-backend (pull_request) Successful in 51s
CI Frontend / lint-frontend (pull_request) Successful in 1m10s
CI Meta / conventional-commit (pull_request) Successful in 1s
E2E / e2e (pull_request) Successful in 3m36s
CI Backend / test-backend (pull_request) Successful in 1m49s
CI Frontend / test-frontend (pull_request) Successful in 42s
CI Backend / lint-backend (push) Successful in 54s
CI Frontend / lint-frontend (push) Successful in 1m12s
CI Meta / conventional-commit (push) Has been skipped
CI Backend / test-backend (push) Successful in 1m50s
CI Frontend / test-frontend (push) Successful in 43s
CD / build-and-push (push) Successful in 49s
2026-07-06 21:03:05 +00:00
Compare
niboer merged commit 5b3433be23 into main 2026-07-06 21:13:29 +00:00
niboer deleted branch issue-254-3 2026-07-06 21:13:29 +00:00
Sign in to join this conversation.
No description provided.