Kundenansicht neu E-Fix F1 (Nachkorrektur): Wechsel nennt "mit 1 Paket" / "mit 2 Paketen" Zusatzspeicher (Dativ)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0ee5c86809
commit
c5f1d9545c
2 files changed
+16
-3
No files matched your search
@@ -77,7 +77,8 @@ export async function zeigeWechsel(wurzel, { route, me, nav, daten } = {}) {
|
||||
const lauf = { busy: false, preview: null, error: '', loading: true, token: 0, early: false, fehler: '', fehlerKlasse: null, zeichne: null }
|
||||
aktiv = lauf
|
||||
|
||||
const paketText = `${units} Paket${units === 1 ? '' : 'e'}`
|
||||
const paketText = `${units} Paket${units === 1 ? '' : 'e'}` // Nominativ: „2 Pakete bleiben gebucht“
|
||||
const paketMit = `${units} Paket${units === 1 ? '' : 'en'}` // Dativ nach „mit“: „mit 1 Paket“, „mit 2 Paketen“
|
||||
const speicherGb = units * (Number(mail.gbPerUnit) || 0)
|
||||
|
||||
/**
|
||||
@@ -91,7 +92,7 @@ export async function zeigeWechsel(wurzel, { route, me, nav, daten } = {}) {
|
||||
return [
|
||||
{ label: 'Leistung', text: 'Wartungs-Abo statt Hosting-Abo', link: { text: 'Leistungen ansehen', href: leistungLink(T.wechsel.linkzeile, 'wartung') } },
|
||||
{ label: 'Preis', text: units > 0
|
||||
? `${fmtEuro((monthly + units * unitCents) / 100)} pro Monat mit ${paketText} Zusatzspeicher (+${speicherGb} GB) (Gesamtpreis, ${UST})`
|
||||
? `${fmtEuro((monthly + units * unitCents) / 100)} pro Monat mit ${paketMit} Zusatzspeicher (+${speicherGb} GB) (Gesamtpreis, ${UST})`
|
||||
: `${fmtEuro(monthly / 100)} pro Monat (Gesamtpreis, ${UST})` },
|
||||
{ label: 'Fällig', text: `heute ${fmtEuro(p.amountDueCents / 100)}${gutschrift}; danach ab ${fmtDatum(p.nextChargeAt)}${tag ? ` jeweils am ${tag.t}.` : ''}` },
|
||||
{ label: 'Laufzeit', text: `Mindestlaufzeit bis ${fmtDatum(p.minTermEnd)} (12 Monate), danach monatlich kündbar` },
|
||||
|
||||
@@ -34,7 +34,7 @@ test('Betrieb: Block, Linkzeile, Knopf, kein Häkchen, Knopf nach der Vorschau f
|
||||
assert.deepEqual(zeilen.map(([l]) => l), ['Leistung', 'Preis', 'Fällig', 'Laufzeit', 'Beginn'])
|
||||
assert.deepEqual(zeilen[0], ['Leistung', 'Wartungs-Abo statt Hosting-Abo · Leistungen ansehen'])
|
||||
assert.equal(fx.finde(fx.finde(w, '#switch-block'), 'a').getAttribute('href'), `${TERMS_URL}#wartung`)
|
||||
assert.ok(zeilen[1][1].includes('2 Pakete Zusatzspeicher (+10 GB)') && zeilen[1][1].includes('gemäß § 19 UStG ohne Umsatzsteuer'), zeilen[1][1])
|
||||
assert.ok(zeilen[1][1].includes('mit 2 Paketen Zusatzspeicher (+10 GB)') && zeilen[1][1].includes('gemäß § 19 UStG ohne Umsatzsteuer'), zeilen[1][1])
|
||||
assert.ok(zeilen[2][1].startsWith('heute 30,00') && zeilen[2][1].includes('Gutschrift von 15,00') && zeilen[2][1].includes('ab 16.11.2026'), zeilen[2][1])
|
||||
assert.equal(zeilen[3][1], 'Mindestlaufzeit bis 16.10.2027 (12 Monate), danach monatlich kündbar')
|
||||
assert.ok(zeilen[4][1].startsWith('sofort mit der Zahlung'))
|
||||
@@ -54,6 +54,18 @@ test('Betrieb: Block, Linkzeile, Knopf, kein Häkchen, Knopf nach der Vorschau f
|
||||
assert.match(fx.text(w), /Dein Wechsel wartet auf die Zahlung\. Wir leiten dich zur Zahlung weiter\./)
|
||||
}))
|
||||
|
||||
// E-Fix F1 (Nachkorrektur): nach „mit“ steht der Dativ Plural; „Paket“ im Singular bleibt, „Pakete“ in „… bleiben gebucht“ ist ein Nominativ
|
||||
test('Preiszeile: „mit 1 Paket“ und „mit 2 Paketen“ Zusatzspeicher (Dativ), die Einzelheiten nennen „1 Paket“ bzw. „2 Pakete“', mit(SRV, async (fx) => {
|
||||
for (const [einheiten, mitText, einzelText] of [[1, 'mit 1 Paket Zusatzspeicher (+5 GB)', '1 Paket (+5 GB) bleiben gebucht'], [2, 'mit 2 Paketen Zusatzspeicher (+10 GB)', '2 Pakete (+10 GB) bleiben gebucht']]) {
|
||||
const daten = HOSTING({ subscription: abo({ produkt: 'hosting', canSwitch: true, storage: { units: einheiten, pendingSetup: false, pendingReduction: null } }) })
|
||||
const w = await zeige(fx, daten, meMit('unternehmen'))
|
||||
const preis = fx.text(fx.alle(fx.finde(w, '#switch-block'), '.kn-block-zeile')[1])
|
||||
assert.ok(preis.includes(mitText), preis)
|
||||
assert.ok(!/mit \d+ Pakete /.test(preis), preis) // nie „mit 2 Pakete Zusatzspeicher“
|
||||
assert.ok(fx.text(fx.finde(w, '#switch-einzelheiten')).includes(einzelText), einzelText)
|
||||
}
|
||||
}))
|
||||
|
||||
test('Privat und leer: Knopf gesperrt mit Sperrzeile, nach dem Häkchen frei, Body mit earlyStart true', mit(SRV, async (fx) => {
|
||||
for (const m of [meMit('privat'), meMit('')]) {
|
||||
const w = await zeige(fx, HOSTING(), m)
|
||||
|
||||
Reference in new issue
Block a user