Fix #61: Verbliebenen roten E2E-Test aus dem Typeahead-Umbau behoben

Die vier in #61 beschriebenen Ursachen waren bereits durch Fix #62 (PR #63)
behoben. Ein Test blieb aber weiterhin zuverlässig rot: Der Abgleich gegen die
absichtlich ungültige Bargeld-Tool-Adresse braucht durch Verbindungsaufbau und
Namensauflösung über 15 Sekunden, bevor er als gescheitert gilt – mehr, als
Playwrights Standard-Timeout von 5 s für toContainText() hergibt. Die
betroffenen Erwartungen tragen jetzt 25 s Timeout, der Test insgesamt 90 s.

Geprüft: tests/e2e/run.sh (87/87 grün, dreifach wiederholt) und
./scripts/run-tests.sh (1895 Prüfungen bestanden).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
fds2610-bot 2026-09-04 21:37:57 +02:00
parent 2abcb852c3
commit 9488c2d4ef
2 changed files with 20 additions and 3 deletions

View file

@ -1,5 +1,17 @@
# Änderungen
## Letzter roter E2E-Test aus dem Typeahead-Umbau behoben (04.09.2026)
Ein Test blieb nach der Anpassung an den Typeahead (siehe unten) noch rot:
„Bargeld-Tool › Eine vorgemerkte Kategorie wird beim Zuordnen geprüft“ – und zwar
zuverlässig, nicht nur gelegentlich. Ursache war kein Rest des Umbaus mehr, sondern ein zu
knapper Timeout: Die Schnellzuordnung im Kontoblatt prüft dabei gegen eine absichtlich
ungültige Adresse (`kasse.beispiel.invalid`), und bis der serverseitige Abruf daran
scheitert, vergehen durch `BargeldTool::ZEITGRENZE` (8 s Verbindungsaufbau) plus die
Namensauflösung der ungültigen Adresse über 15 Sekunden – mehr, als Playwrights
Standard-Timeout von 5 s für `toContainText()` hergibt. Die betroffenen Erwartungen tragen
jetzt einen eigenen Timeout von 25 s, der Test insgesamt 90 s statt 60 s.
## E2E-Datenbestand wird vor jedem Lauf aufgeräumt (04.09.2026)
Die Browser-Tests legten ihre Konten, Kategorien und Buchungen bei jedem Lauf neu an,

View file

@ -148,7 +148,7 @@ test.describe('Bargeld-Tool', () => {
test('Eine vorgemerkte Kategorie wird beim Zuordnen geprüft', async ({ page }) => {
// Der Abruf läuft ins Leere; genau das soll das Ausrufezeichen zeigen –
// und die Zuordnung muss trotzdem stehen.
test.setTimeout(60_000)
test.setTimeout(90_000)
const empfaenger = `Bargeldabhebung ${MARKE}`
@ -172,8 +172,13 @@ test.describe('Bargeld-Tool', () => {
// Die Zuordnung steht, der gescheiterte Abruf hat sie nicht aufgehalten.
// Über der Meldung steht noch die des Anlegens – gemeint ist die neue.
await expect(page.locator('.meldung-erfolg').last()).toContainText('Zuordnung gespeichert')
await expect(page.locator('.meldung-erfolg').last()).toContainText('fehlgeschlagen')
// Der Abruf selbst braucht bis zu BargeldTool::ZEITGRENZE (8 s) für die
// Verbindung – dazu kommt die Namensauflösung der ungültigen Adresse,
// zusammen bis über 15 s. Der Standard-Timeout von 5 s reicht dafür nicht.
await expect(page.locator('.meldung-erfolg').last())
.toContainText('Zuordnung gespeichert', { timeout: 25_000 })
await expect(page.locator('.meldung-erfolg').last())
.toContainText('fehlgeschlagen', { timeout: 25_000 })
const danach = page.locator('tr', { hasText: empfaenger })
await expect(danach).toContainText(KATEGORIE)