test(catalog): E2E und vorläufige Latenzmessung der Katalogsuche (KAT-01, 3c) #70

Open
cschlaefke wants to merge 6 commits from feature/3c-katalog-suche-e2e into main
Owner

Refs #3 (kein Closes: Spec-F4 nicht freigegeben, mobile Stichprobe C1 und perf-Job D1 offen)

Teil 3c der Katalogsuche: Playwright-E2E und vorläufige Latenzmessung (Option A).

Inhalt

  • e2e/tests/web/kat01-suche.spec.ts (17 Tests, ohne Anmeldung, Einstieg über „Search games“) und e2e/tests/api/kat01-suche.spec.ts (18 Tests, search_catalog_games als anon über Kong, Fehlerfälle). Testnamen „KAT-01 Kriterium n“.
  • Testdaten e2e/support/catalog.ts: je Datei eigenes Datenset mit UUID-Präfix und Kunstwort (jede Suche enthält das Kunstwort), Aufräumen im afterAll.
  • Perf: e2e/tests/perf/kat01-suche-latenz.spec.ts (nur mit PERF_WEB_URL, nicht in e2e-run.sh), Ladeskripte supabase/perf/catalog_search_perf_load.sql/_unload.sql (Schutz: Unix-Socket, confirm_local, Exit-Code ≠ 0).
  • Doku: e2e/README.md, docs/specs/3-katalog-suche-umsetzung.md § 5.
  • Review (code-reviewer) mit Blocker B1 (Kollision der Datensätze) und Warnungen; alle eingearbeitet, u. a. Rücknahme der Abschwächung von screenText in krit04-06-07-anmeldung.spec.ts (stattdessen Warten, bis die Live-Region leer ist).

Messung (lokal, 10 001 Spiele, Chrome gedrosselt 100 ms / 10 Mbit/s)

p95 458 ms (Grenze 2000 ms); Gegenprobe mit 1800 ms zusätzlicher Latenz scheitert wie erwartet (p95 2165 ms). Kein Staging, nur Desktop-Web, synthetische Daten, Browser und Docker auf demselben Rechner.

Bitte beachten

  • Flakiness: Im lokalen Gesamtlauf (--workers=2) schlugen zuletzt in einigen Läufen bestehende Anmelde-Tests fehl, auch ohne die neuen Tests. Issue #68. Mehrlaufzeit durch die neuen Tests lokal rund 30 s. Die CI entscheidet.
  • Bewusst nicht automatisiert: „Weitere laden“ per Tastatur und Tastaturbedienung (begründet in der Doku).
  • RLS-Frage zu ausgeblendeten Spielen: Issue #69, Entscheidung bei Chris.

🤖 Generated with Claude Code

Refs #3 (kein `Closes`: Spec-F4 nicht freigegeben, mobile Stichprobe C1 und perf-Job D1 offen) Teil 3c der Katalogsuche: Playwright-E2E und vorläufige Latenzmessung (Option A). ## Inhalt - `e2e/tests/web/kat01-suche.spec.ts` (17 Tests, ohne Anmeldung, Einstieg über „Search games“) und `e2e/tests/api/kat01-suche.spec.ts` (18 Tests, `search_catalog_games` als `anon` über Kong, Fehlerfälle). Testnamen „KAT-01 Kriterium n“. - Testdaten `e2e/support/catalog.ts`: je Datei eigenes Datenset mit UUID-Präfix und Kunstwort (jede Suche enthält das Kunstwort), Aufräumen im `afterAll`. - Perf: `e2e/tests/perf/kat01-suche-latenz.spec.ts` (nur mit `PERF_WEB_URL`, nicht in `e2e-run.sh`), Ladeskripte `supabase/perf/catalog_search_perf_load.sql`/`_unload.sql` (Schutz: Unix-Socket, `confirm_local`, Exit-Code ≠ 0). - Doku: `e2e/README.md`, `docs/specs/3-katalog-suche-umsetzung.md` § 5. - Review (code-reviewer) mit Blocker B1 (Kollision der Datensätze) und Warnungen; alle eingearbeitet, u. a. Rücknahme der Abschwächung von `screenText` in `krit04-06-07-anmeldung.spec.ts` (stattdessen Warten, bis die Live-Region leer ist). ## Messung (lokal, 10 001 Spiele, Chrome gedrosselt 100 ms / 10 Mbit/s) p95 458 ms (Grenze 2000 ms); Gegenprobe mit 1800 ms zusätzlicher Latenz scheitert wie erwartet (p95 2165 ms). **Kein Staging, nur Desktop-Web, synthetische Daten, Browser und Docker auf demselben Rechner.** ## Bitte beachten - **Flakiness:** Im lokalen Gesamtlauf (`--workers=2`) schlugen zuletzt in einigen Läufen bestehende Anmelde-Tests fehl, auch ohne die neuen Tests. Issue #68. Mehrlaufzeit durch die neuen Tests lokal rund 30 s. Die CI entscheidet. - **Bewusst nicht automatisiert:** „Weitere laden“ per Tastatur und Tastaturbedienung (begründet in der Doku). - RLS-Frage zu ausgeblendeten Spielen: Issue #69, Entscheidung bei Chris. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
cschlaefke added 5 commits 2026-11-04 20:33:41 +00:00
Web: Suche per Schaltflaeche, Relevanz, alternative Titel, Verlage, Filter,
Nachladen, leere Zustaende, URL/Reload/Zurueck, Offline. API: RPC als anon
ueber Kong inkl. Fehlerfaellen. Eigene Datensets je Spec-Datei.

Refs #3

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Playwright-Projekt perf (nur mit PERF_WEB_URL, nur lesend, nie in der CI):
CDP-Drosselung 100 ms / 10 Mbit/s, mind. 100 Suchen, Messung im Browser vom
letzten Tastendruck bis zur ersten Kachel. Ladeskript fuer synthetisches
Volumen unter supabase/perf/. Messung und Aussagegrenzen in der Umsetzungsdoku.

Refs #3

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Refs #3

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Meldung je Suche genau abwarten (kein Treffer durch Reste der vorigen Suche),
Suchbegriff UND Filter zusammen pruefen, positive Pruefung nach Filter-Reset;
screenText der Anmelde-Tests ignoriert die Live-Region.

Refs #3

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
test(catalog): Datensaetze trennen, Assertions und Latenzmessung schaerfen
All checks were successful
CI / flutter (pull_request) Successful in 1m29s
CI / web-build (pull_request) Successful in 1m1s
CI / supabase (pull_request) Successful in 8s
CI / supabase-tests (pull_request) Successful in 33s
CI / e2e (pull_request) Successful in 3m33s
cd96d91eae
Jede Suche enthaelt das Kunstwort des eigenen Datensets (Kollision web/api
behoben); Kachelzaehlung ohne first(), konkrete Trefferzahlen; screenText
wartet auf die Live-Region statt sie zu entfernen; Latenzmessung ueberspringt
bereits sichtbare Treffer, Filtersuchen ergaenzt; Ladeskripte mit Exit-Code
und TCP-Schutz; Doku aktualisiert.

Refs #3

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cschlaefke added 1 commit 2026-11-04 20:56:54 +00:00
test(auth): Ansagen der Live-Region im Bildschirmvergleich pruefen
All checks were successful
CI / flutter (pull_request) Successful in 1m24s
CI / web-build (pull_request) Successful in 59s
CI / supabase (pull_request) Successful in 33s
CI / supabase-tests (pull_request) Successful in 38s
CI / e2e (pull_request) Successful in 5m25s
8b11df2727
screenText sammelt Ansagen per MutationObserver und vergleicht sie; wartet
auf leere Region mit registrierter Ansage bzw. 400 ms Ruhe. Unload-Skript mit
TCP-Schutz, Doku-Praezisierungen.

Refs #3

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cschlaefke added the
status/ready-for-merge
label 2026-11-04 21:22:50 +00:00
All checks were successful
CI / flutter (pull_request) Successful in 1m24s
CI / web-build (pull_request) Successful in 59s
CI / supabase (pull_request) Successful in 33s
CI / supabase-tests (pull_request) Successful in 38s
CI / e2e (pull_request) Successful in 5m25s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature/3c-katalog-suche-e2e:feature/3c-katalog-suche-e2e
git checkout feature/3c-katalog-suche-e2e

Merge

Merge the changes and update on Forgejo.
git checkout main
git merge --no-ff feature/3c-katalog-suche-e2e
git checkout main
git merge --ff-only feature/3c-katalog-suche-e2e
git checkout feature/3c-katalog-suche-e2e
git rebase main
git checkout main
git merge --no-ff feature/3c-katalog-suche-e2e
git checkout main
git merge --squash feature/3c-katalog-suche-e2e
git checkout main
git merge --ff-only feature/3c-katalog-suche-e2e
git checkout main
git merge feature/3c-katalog-suche-e2e
git push origin main
Sign in to join this conversation.
No description provided.