refactor(e2e): User-Context in .test-coverage.json via specs-Array #267

Merged
niboer merged 3 commits from issue-258 into main 2026-07-08 18:55:54 +02:00
Owner

Allgemein

  • closes #258
  • REBASE-MERGE

Altes Verhalten

.test-coverage.json hatte pro Route ein flaches Schema mit spec und status:

{ "route": "/app/groups", "spec": "specs/test-2-independent/groups.spec.ts", "status": "covered" }

Keine Abbildung, welcher DEV_User (max.mustermann, thomas.koenig, petra.musterfrau) in der Spec verwendet wird.

Neues Verhalten

.test-coverage.json hat pro Route ein specs-Array mit spec-Pfad und users-Array:

{
  "route": "/app/groups",
  "status": "covered",
  "specs": [
    { "spec": "specs/test-2-independent/groups.spec.ts", "users": ["max.mustermann"] },
    { "spec": "specs/test-3-workflows/group-create.spec.ts", "users": ["thomas.koenig"] }
  ]
}

scripts/check-e2e-coverage.mjs validiert:

  • specs-Array existiert und ist non-empty bei covered-Status
  • Jeder Spec-Eintrag hat gueltigen spec-Pfad und existierende Datei
  • users-Array ist non-empty mit gueltigen DEV_USER-Usernamen (aus test-data.ts via Regex geparst)

docs/design/07-e2e-tests.md: Schema-Doku aktualisiert, User-Spalte in Spec-Tabellen ergaenzt.
AGENTS.md: users-Feld-Pflicht unter Route-Test-Mapping dokumentiert.

Begruendung

Bei der Erstellung neuer E2E-Tests war oft unklar, welcher DEV_User in welcher Spec verwendet wird. Die strukturelle Abbildung im Coverage-JSON und die automatische Validierung im CI verhindern Inkonsistenzen.

Test-Hinweise

node scripts/check-e2e-coverage.mjs und node scripts/check-e2e-coverage.mjs --warn laufen beide ohne Fehler durch.

Checkliste

  • use:testid an neuen <button>, <a>, <form>-Elementen gesetzt?
  • Korrespondierender E2E-Test in e2e/specs/ angelegt?
### Allgemein - closes #258 - *REBASE-MERGE* ### Altes Verhalten `.test-coverage.json` hatte pro Route ein flaches Schema mit `spec` und `status`: ```json { "route": "/app/groups", "spec": "specs/test-2-independent/groups.spec.ts", "status": "covered" } ``` Keine Abbildung, welcher DEV_User (max.mustermann, thomas.koenig, petra.musterfrau) in der Spec verwendet wird. ### Neues Verhalten `.test-coverage.json` hat pro Route ein `specs`-Array mit `spec`-Pfad und `users`-Array: ```json { "route": "/app/groups", "status": "covered", "specs": [ { "spec": "specs/test-2-independent/groups.spec.ts", "users": ["max.mustermann"] }, { "spec": "specs/test-3-workflows/group-create.spec.ts", "users": ["thomas.koenig"] } ] } ``` `scripts/check-e2e-coverage.mjs` validiert: - specs-Array existiert und ist non-empty bei `covered`-Status - Jeder Spec-Eintrag hat gueltigen spec-Pfad und existierende Datei - `users`-Array ist non-empty mit gueltigen DEV_USER-Usernamen (aus `test-data.ts` via Regex geparst) `docs/design/07-e2e-tests.md`: Schema-Doku aktualisiert, User-Spalte in Spec-Tabellen ergaenzt. `AGENTS.md`: `users`-Feld-Pflicht unter Route-Test-Mapping dokumentiert. ### Begruendung Bei der Erstellung neuer E2E-Tests war oft unklar, welcher DEV_User in welcher Spec verwendet wird. Die strukturelle Abbildung im Coverage-JSON und die automatische Validierung im CI verhindern Inkonsistenzen. ### Test-Hinweise `node scripts/check-e2e-coverage.mjs` und `node scripts/check-e2e-coverage.mjs --warn` laufen beide ohne Fehler durch. ### Checkliste - [ ] `use:testid` an neuen `<button>`, `<a>`, `<form>`-Elementen gesetzt? - [ ] Korrespondierender E2E-Test in `e2e/specs/` angelegt?
refactor(e2e): User-Context in .test-coverage.json via specs-Array
Some checks failed
CI Backend / lint-backend (pull_request) Successful in 53s
CI Frontend / lint-frontend (pull_request) Successful in 1m10s
CI Meta / conventional-commit (pull_request) Successful in 1s
CI Backend / test-backend (pull_request) Has been cancelled
CI Frontend / test-frontend (pull_request) Has been cancelled
E2E / e2e (pull_request) Has been cancelled
196d4d51e0
refs #258

Aktuelles: .test-coverage.json hat flaches spec-Feld ohne User-Context
Neu: specs[]-Array mit spec-Pfad + users-Array pro Eintrag.
Jeder covered-Eintrag hat users mit gueltigen DEV_USER-Usernamen.
check-e2e-coverage.mjs parst Usernamen aus test-data.ts und validiert.
API/design-Doku und AGENTS.md aktualisiert.

Wichtige Aenderung:
- .test-coverage.json: spec -> specs[] (Brechende Aenderung fuer CI)
chore: PROJECT_STATE.md und alle Referenzen darauf entfernt
Some checks failed
CI Backend / lint-backend (pull_request) Successful in 1m8s
CI Backend / test-backend (pull_request) Has been cancelled
CI Frontend / test-frontend (pull_request) Has been cancelled
CI Meta / conventional-commit (pull_request) Has been cancelled
E2E / e2e (pull_request) Has been cancelled
CI Frontend / lint-frontend (pull_request) Has been cancelled
7748c21934
refs #258

Aktuelles: PROJECT_STATE.md wird gepflegt und referenziert
Neu: Projektstand wird nur noch in Gitea Milestones getrackt.
Context Preservation in AGENTS.md aktualisiert, Referenz in
docs/design.md und no-umlauts.test.ts entfernt.
niboer force-pushed issue-258 from 7748c21934
Some checks failed
CI Backend / lint-backend (pull_request) Successful in 1m8s
CI Backend / test-backend (pull_request) Has been cancelled
CI Frontend / test-frontend (pull_request) Has been cancelled
CI Meta / conventional-commit (pull_request) Has been cancelled
E2E / e2e (pull_request) Has been cancelled
CI Frontend / lint-frontend (pull_request) Has been cancelled
to 753fa485f1
All checks were successful
CI Backend / lint-backend (pull_request) Successful in 53s
CI Frontend / lint-frontend (pull_request) Successful in 1m11s
CI Meta / conventional-commit (pull_request) Successful in 2s
E2E / e2e (pull_request) Successful in 1m58s
CI Backend / test-backend (pull_request) Successful in 2m54s
CI Frontend / test-frontend (pull_request) Successful in 43s
CI Backend / lint-backend (push) Successful in 53s
CI Meta / conventional-commit (push) Has been skipped
CI Backend / test-backend (push) Successful in 2m54s
2026-07-08 18:47:45 +02:00
Compare
niboer merged commit 753fa485f1 into main 2026-07-08 18:55:54 +02:00
niboer deleted branch issue-258 2026-07-08 18:55:54 +02:00
Sign in to join this conversation.
No description provided.