Finanzmanager/tests/e2e/specs/hilfen.js
fds2610-bot 5491bb69f6 Fix #62: E2E-Tests an den Typeahead im Kontoblatt angepasst
Zwölf Tests standen auf Rot, ohne dass die Anwendung etwas falsch machte – die
Specs prüften den Stand vor dem Umbau. Vier Ursachen lagen darunter:

Die Kombobox lässt ihr <select> zwar im Formular stehen, setzt es aber auf
hidden; selectOption() wartet darauf vergeblich. Der neue Helfer
tests/e2e/specs/hilfen.js bedient das Eingabefeld, tippt die Beschriftung ein
und klickt den genau passenden Treffer an – exakt, weil [Depot] sonst auch das
[Depot] … des Wertpapiergeschäfts träfe.

Seit dem Schnellspeichern ohne Neuladen stehen zwei Erfolgsmeldungen
übereinander; gemeint ist die neue, also .last().

Die Adressliste ist seit der Adressverwaltung eine Bearbeitungstabelle: Die
Namen stehen in Eingabefeldern, wo toContainText nicht hinsieht. Geprüft wird
jetzt der Feldwert – gespeichert wurde die Adresse die ganze Zeit korrekt.

Die beiden übrigen Fehlschläge waren Folgefehler: Playwright startet nach jedem
Fehlschlag einen frischen Worker, das Spec-Modul wird neu geladen, seine Marke
neu gezogen und beforeAll legt leere Konten an. Sie brauchten keine Änderung.

87 Tests grün, und ohne die Timeouts in 2,7 statt 7,1 Minuten.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AQ57wQWZ4xKHcKmp26bzgr
2026-09-04 12:39:29 +02:00

26 lines
1.1 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// @ts-check
/* Gemeinsame Helfer der E2E-Specs. Die Datei endet nicht auf `.spec.js` und
* wird deshalb nicht als Testdatei eingesammelt. */
/**
* Wählt in einer Typeahead-Kombobox (public/static/kombobox.js) den Eintrag
* mit genau dieser Beschriftung.
*
* Seit dem Umbau steht das ursprüngliche `<select>` 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 <select>
* @param {string} beschriftung Text des Eintrags, exakt
*/
async function komboboxWaehlen(select, beschriftung) {
const kombobox = select.locator('xpath=ancestor::div[contains(@class,"kombobox")][1]')
await kombobox.locator('.kombobox-eingabe').fill(beschriftung)
// Exakt, sonst träfe „[Depot]“ auch das „[Depot] …“ des Wertpapiergeschäfts.
await kombobox.getByRole('option', { name: beschriftung, exact: true }).click()
}
module.exports = { komboboxWaehlen }