Elf Listenansichten (Klassen, Buchungsvorlagen, Regelmäßige Buchungen, Erinnerungen, Verträge, Adressen, Sparziele, Kredite, Abgleichregeln, Budgets, Berichtsgruppen) zeigten das Formular unter der Liste. Jetzt öffnet der Knopf „+ Neu“ es als Dialog. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
60 lines
1.8 KiB
JavaScript
60 lines
1.8 KiB
JavaScript
// @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()
|
|
})
|
|
})
|