diff --git a/Changes.md b/Changes.md index 9964f9a..a00f1e5 100644 --- a/Changes.md +++ b/Changes.md @@ -1,5 +1,33 @@ # Änderungen +## E2E-Tests an den Typeahead im Kontoblatt angepasst (04.09.2026) + +Zwölf E2E-Tests standen seit dem Typeahead-Umbau (Fix #41) auf Rot – nicht, weil die +Anwendung etwas falsch machte, sondern weil die Specs den alten Stand prüften. Vier +Ursachen lagen darunter: + +- **Die Kombobox versteckt ihr `` versteckt +im Formular stehen, `selectOption()` läuft darauf in einen Timeout. Der Helfer +tippt stattdessen die Beschriftung ein und klickt den genau passenden Treffer an. + +```js +const { komboboxWaehlen } = require('./hilfen') + +await komboboxWaehlen(zeile.locator('#zuordnungsauswahl select'), 'Lebensmittel') +``` + ## Berichte HTML-Report, Screenshots und Traces landen nach einem Lauf in diff --git a/tests/e2e/specs/bargeld.spec.js b/tests/e2e/specs/bargeld.spec.js index 824ae72..9b7e01f 100644 --- a/tests/e2e/specs/bargeld.spec.js +++ b/tests/e2e/specs/bargeld.spec.js @@ -1,5 +1,6 @@ // @ts-check const { test, expect } = require('@playwright/test') +const { komboboxWaehlen } = require('./hilfen') /* * Der Abgleich mit dem Bargeld-Tool im Browser: die Kachel in der Verwaltung, @@ -167,11 +168,12 @@ test.describe('Bargeld-Tool', () => { const zeile = page.locator('tr', { hasText: empfaenger }) await zeile.locator('a.zuordnungsfeld').click() - await zeile.locator('#zuordnungsauswahl select').selectOption({ label: KATEGORIE }) + await komboboxWaehlen(zeile.locator('#zuordnungsauswahl select'), KATEGORIE) // Die Zuordnung steht, der gescheiterte Abruf hat sie nicht aufgehalten. - await expect(page.locator('.meldung-erfolg')).toContainText('Zuordnung gespeichert') - await expect(page.locator('.meldung-erfolg')).toContainText('fehlgeschlagen') + // Ü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') const danach = page.locator('tr', { hasText: empfaenger }) await expect(danach).toContainText(KATEGORIE) diff --git a/tests/e2e/specs/buchungen.spec.js b/tests/e2e/specs/buchungen.spec.js index 8be3bbe..6011309 100644 --- a/tests/e2e/specs/buchungen.spec.js +++ b/tests/e2e/specs/buchungen.spec.js @@ -1,5 +1,6 @@ // @ts-check const { test, expect } = require('@playwright/test') +const { komboboxWaehlen } = require('./hilfen') const BENUTZER = process.env.E2E_USER || 'e2e' const PASSWORT = process.env.E2E_PASSWORD || 'e2e-testpasswort' @@ -172,11 +173,15 @@ test.describe('Buchungen', () => { await zeile.locator('a.zuordnungsfeld').click() // Die Auswahlliste gibt es einmal und wandert in die angeklickte Zelle. - const liste = zeile.locator('#zuordnungsauswahl select') + // Sichtbar wird das Formular; das ` nur noch versteckt im + * Formular; bedient wird das Eingabefeld daneben. `selectOption()` läuft + * darauf in einen Timeout. Der Helfer tippt die Beschriftung ein – das ist + * zugleich die Probe auf die Filterung – und klickt den Treffer an. + * + * @param {import('@playwright/test').Locator} select das versteckte