Buchungskalender: Abgleich – Stornomuster wortgleich zur Doku
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
2eb38032d3
commit
b992dd2388
2 files changed
+39
-3
No files matched your search
@@ -1,5 +1,6 @@
|
||||
import { test } from 'node:test'
|
||||
import assert from 'node:assert/strict'
|
||||
import { readFileSync } from 'node:fs'
|
||||
import { installFakeDom } from './support/fakeDom.js'
|
||||
import { h, request } from '../public/shop-dom.js'
|
||||
import { REITER } from '../public/buchungen.js'
|
||||
@@ -455,6 +456,16 @@ test('Preis-Editor: gespeicherte USt 19 bleibt bei Kleinunternehmer unverändert
|
||||
assert.equal(put.body.ustReinigung, 0)
|
||||
}))
|
||||
|
||||
test('fehlerFuerFormular: deutsche Texte fuer die Fachcodes des Buchungskalenders', async () => {
|
||||
const { fehlerFuerFormular } = await import('../public/buchungen-fehler.js')
|
||||
const text = (fehler) => fehlerFuerFormular({ fehler, message: 'Fehler 409' }).message
|
||||
assert.equal(text('zustimmung_fehlt'), 'Bitte erteile zuerst in den Einstellungen die Zustimmung zur Rechnungsstellung in deinem Namen.')
|
||||
assert.equal(text('stripe_nicht_aktiv'), 'Online-Zahlung geht erst, wenn dein Stripe-Konto freigeschaltet ist.')
|
||||
assert.match(text('erstattung_fehlgeschlagen'), /Erstattung ist fehlgeschlagen/)
|
||||
assert.match(text('frist_abgelaufen'), /Frist .* abgelaufen/)
|
||||
assert.equal(text('zeitraum_belegt'), 'Der Zeitraum ist bereits belegt.')
|
||||
})
|
||||
|
||||
test('fehlerFuerFormular: unbekannter Code → deutscher Standardtext', async () => {
|
||||
const { fehlerFuerFormular } = await import('../public/buchungen-fehler.js')
|
||||
assert.equal(fehlerFuerFormular({ fehler: 'komischer_code', message: 'Fehler 400' }).fehler._, 'Das hat nicht geklappt. Bitte versuch es noch einmal.')
|
||||
@@ -579,8 +590,12 @@ test('Preis-Editor: Mustertext übernehmen füllt nur das Feld (kein Speichern),
|
||||
const vorher = posts(fx).length
|
||||
await fx.klick(fx.finde(panel, '[data-aktion="storno-muster"]'))
|
||||
assert.equal(t.value, STORNO_MUSTER)
|
||||
assert.match(STORNO_MUSTER, /^Stornierung bis 14 Tage vor Anreise: kostenlos\./)
|
||||
assert.match(STORNO_MUSTER, /Maßgeblich ist der Eingang bei uns\.$/)
|
||||
assert.match(STORNO_MUSTER, /^1\. Stornierung durch den Gast\./)
|
||||
assert.match(STORNO_MUSTER, /Reiserücktrittsversicherung\.$/)
|
||||
assert.ok(STORNO_MUSTER.length <= 5000, 'passt in das Feld (max. 5000 Zeichen)')
|
||||
// wortgleich zur Doku (maßgeblich), ohne Markdown-Fettdruck
|
||||
const doku = readFileSync(new URL('../docs/funktionen/unterkunft-storno-muster.md', import.meta.url), 'utf8').split('## Stornobedingungen (Muster)')[1].trim().replaceAll('**', '')
|
||||
assert.equal(STORNO_MUSTER, doku)
|
||||
assert.equal(posts(fx).length, vorher)
|
||||
}))
|
||||
|
||||
|
||||
Reference in new issue
Block a user