// @ts-check const { test, expect } = require('@playwright/test') const BENUTZER = process.env.E2E_USER || 'e2e' const PASSWORT = process.env.E2E_PASSWORD || 'e2e-testpasswort' const MARKE = Date.now().toString().slice(-6) // Alle Listenansichten, in denen „+ Neu“ ein modales Formular zur Neuanlage öffnet. const ANSICHTEN = [ '/verwaltung/klassen', '/vorlagen', '/termine', '/termine/erinnerungen', '/vertraege', '/vertraege/adressen', '/vertraege/sparziele', '/vertraege/kredite', '/banking/regeln', '/planung/budget/verwaltung', '/auswertungen/gruppen', ] async function anmelden(page) { await page.goto('/login') await page.fill('#benutzername', BENUTZER) await page.fill('#passwort', PASSWORT) await page.click('button[type="submit"]') await expect(page).toHaveURL(/\/$/) } test.describe('„+ Neu“ öffnet den Dialog zur Neuanlage', () => { test.beforeEach(async ({ page }) => { await anmelden(page) }) for (const pfad of ANSICHTEN) { test(`${pfad}: Dialog erst nach Klick, Abbrechen schließt ihn`, async ({ page }) => { await page.goto(pfad) await expect(page.locator('#neudialog')).toBeHidden() await page.click('#neu-knopf') await expect(page.locator('#neudialog')).toBeVisible() await page.locator('#neudialog button', { hasText: 'Abbrechen' }).click() await expect(page.locator('#neudialog')).toBeHidden() }) } test('Klasse anlegen: Dialog verschwindet, Eintrag steht in der Liste', async ({ page }) => { const name = `E2E Dialogklasse ${MARKE}` await page.goto('/verwaltung/klassen') await page.click('#neu-knopf') await page.fill('#neudialog #name', name) await page.locator('#neudialog button[type="submit"]', { hasText: 'Klasse anlegen' }).click() await expect(page.locator('#neudialog')).toBeHidden() await expect(page.locator(`input[value="${name}"]`).first()).toBeVisible() }) })