Finanzmanager/tests/e2e/specs/zahlungsfreigabe.spec.js
fds2610-bot e95fc7302d Fix #117: Nicht freigegebene Überweisungen nachvollziehbar machen
- Status „wartet auf Freigabe“, solange die Bank auf TAN/Namensabgleich wartet
- Abbruch der Freigabe (auch durch neuen Sendeversuch) im Übermittlungsprotokoll
  als „abgebrochen“ festhalten, Auftrag als fehlgeschlagen vermerken
- Aufträge mit Übermittlungsprotokoll nur stornieren, nicht löschen
- Migration 025, PHP-Test 57, E2E-Spec zahlungsfreigabe

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 15:01:24 +02:00

38 lines
1.5 KiB
JavaScript

// @ts-check
const { test, expect } = require('@playwright/test')
const BENUTZER = process.env.E2E_USER || 'e2e'
const PASSWORT = process.env.E2E_PASSWORT || process.env.E2E_PASSWORD || 'e2e-testpasswort'
// Der Grundbestand (E2EGrundbestand) legt eine Überweisung an, für die die Bank
// eine TAN angefordert hat, die nie eingereicht wurde (#117).
const EMPFAENGER = 'E2E Grundbestand Finanzamt'
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('Zahlungsverkehr: nicht freigegebene Überweisung', () => {
test.beforeEach(async ({ page }) => {
await anmelden(page)
})
test('Liste zeigt „wartet auf Freigabe“ mit Hinweis', async ({ page }) => {
await page.goto('/zahlungsverkehr?status=freigabe')
const zeile = page.locator('table.liste tr', { hasText: EMPFAENGER })
await expect(zeile).toHaveCount(1)
await expect(zeile.locator('.marke-freigabe')).toHaveText('wartet auf Freigabe')
await expect(zeile).toContainText('die Bank führt den Auftrag ohne TAN nicht aus')
})
test('Auftrag mit Übermittlungsprotokoll: Stornieren statt Löschen', async ({ page }) => {
await page.goto('/zahlungsverkehr?status=freigabe')
await page.locator('table.liste tr', { hasText: EMPFAENGER }).getByRole('link', { name: EMPFAENGER }).click()
await expect(page.locator('#auftrag-stornieren')).toBeVisible()
await expect(page.locator('#auftrag-loeschen')).toHaveCount(0)
})
})