diff --git a/tests/e2e/specs/wertpapiergeschaeft.spec.js b/tests/e2e/specs/wertpapiergeschaeft.spec.js index 16de60d..2a63a78 100644 --- a/tests/e2e/specs/wertpapiergeschaeft.spec.js +++ b/tests/e2e/specs/wertpapiergeschaeft.spec.js @@ -16,9 +16,18 @@ const DEPOT = `E2E WP Depot ${MARKE}` const KAT_GEBUEHR = `E2E Bankprovision ${MARKE}` const KAT_STEUER = `E2E Kapitalertragsteuer ${MARKE}` +// ISIN und WKN tragen die Marke des Laufs: Ein Papier wird über seine Kennung +// wiedergefunden, nicht über den Namen. Feste Kennungen würden den Test beim +// zweiten Lauf an das Papier des ersten hängen. +const ISIN = `LU1834${MARKE}` +const WKN = MARKE + const ZWECK = - 'Depot 0502022353 Wertp.Abrechn. 03.08.2026 WKN LYX01W Gesch.Art KV ' + - 'MUL-AMUN ST600 BANK ETF A ISIN LU1834983477 Ihr Wertpapie' + `Depot 0502022353 Wertp.Abrechn. 03.08.2026 WKN ${WKN} Gesch.Art KV ` + + `MUL-AMUN ST600 BANK ETF A ISIN ${ISIN} Ihr Wertpapie` + +/** Ein Sparplan bringt keine Wertpapierkennung mit – das Papier trägt nur seinen Namen. */ +const ZWECK_SPARPLAN = 'Sparplan Rate 03.08.2026 Dauerauftrag Depot 0502022353' async function anmelden(page) { await page.goto('/login') @@ -54,13 +63,13 @@ async function kategorieAnlegen(page, name) { } /** Eine unzugeordnete Buchung auf dem Girokonto – wie sie der Abruf hinterlässt. */ -async function buchungAnlegen(page, giroId, betrag, empfaenger) { +async function buchungAnlegen(page, giroId, betrag, empfaenger, zweck = ZWECK) { await page.goto(`/konten/${giroId}/buchung`) await page.selectOption('#art', betrag < 0 ? 'ausgabe' : 'einnahme') await page.fill('#datum', '2026-08-03') await page.fill('#betrag', String(Math.abs(betrag)).replace('.', ',')) await page.fill('#empfaenger', empfaenger) - await page.fill('#buchungstext', ZWECK) + await page.fill('#buchungstext', zweck) await page.click('.buchungsmaske button[type="submit"]') await expect(page.locator('.meldung-erfolg')).toBeVisible() } @@ -109,8 +118,8 @@ test.describe('Wertpapiergeschäft aus dem Kontoblatt', () => { await expect(page.locator('#wp_vorgang')).toHaveValue('kauf') // ISIN und WKN stehen im Verwendungszweck und sind schon eingetragen. - await expect(page.locator('#wp_isin')).toHaveValue('LU1834983477') - await expect(page.locator('#wp_wkn')).toHaveValue('LYX01W') + await expect(page.locator('#wp_isin')).toHaveValue(ISIN) + await expect(page.locator('#wp_wkn')).toHaveValue(WKN) await page.fill('#wp_name', `LYXOR ETF ${MARKE}`) await page.selectOption('#wp_art', 'fonds') @@ -153,7 +162,7 @@ test.describe('Wertpapiergeschäft aus dem Kontoblatt', () => { test('Kauf ohne Kosten bleibt eine Umbuchung ins Depot', async ({ page }) => { const empfaenger = `Sparplan ${MARKE}` - await buchungAnlegen(page, giroId, -1000, empfaenger) + await buchungAnlegen(page, giroId, -1000, empfaenger, ZWECK_SPARPLAN) const zeile = page.locator('tr', { hasText: empfaenger }) await zeile.locator('a.zuordnungsfeld').click() @@ -169,5 +178,11 @@ test.describe('Wertpapiergeschäft aus dem Kontoblatt', () => { // Keine Splitbuchung mit einer einzigen Zeile, sondern eine Umbuchung. await expect(page.locator('tr', { hasText: empfaenger }).first()) .toContainText(`[${DEPOT}]`) + + // Ohne Kennung im Verwendungszweck entsteht das Papier unter dem + // Namen, der in der Maske steht. + await page.goto('/wertpapiere/buchungen') + await expect(page.locator('tr', { hasText: `Sparplan-Fonds ${MARKE}` })) + .toContainText('1.000,00') }) })