Buchungskalender: Abschluss – Zustimmung in Textform auch für den Buchungskalender

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
knsoandClaude Opus 5.5 committed 2026-10-07 15:22:56 +00:00
1 parent b2a0ff5d53
commit 38020bfdff
3 files changed
+64 -13

No files matched your search

+33 -1
View File
@@ -21,6 +21,8 @@ const {
termineTextformLabel,
termineChatTemplate,
shopTextformLabel,
unterkunftTextformLabel,
unterkunftChatTemplate,
shopChatTemplate,
TEXTFORM_FUNKTIONEN,
textformAnsicht,
@@ -483,7 +485,7 @@ const shopFeld = (extra = {}) => ({
})
test('textformNoetig: auch das Aktivieren (ohne Zahlung) des Webshops, mit dem Feld shop; die Funktion kommt aus dem Schlüssel', () => {
assert.deepEqual(TEXTFORM_FUNKTIONEN, ['termine', 'shop'])
assert.deepEqual(TEXTFORM_FUNKTIONEN, ['termine', 'shop', 'unterkunft'])
assert.equal(textformNoetig('shop', 'activate', shopFeld()), true)
assert.equal(textformNoetig('shop', 'activate', shopFeld({ textformNoetig: false })), false)
assert.equal(textformNoetig('shop', 'activate', undefined), false, 'altes Portal ohne Feld shop: wie bisher')
@@ -803,3 +805,33 @@ test('anfrageText (unterkunft): Kurzfassung', () => {
test('entscheidungBody und begruendungOk gelten unverändert für den Buchungskalender', () => {
assert.deepEqual(entscheidungBody({ projectId: 'p', entscheidung: 'ablehnen', begruendung: ' x ' }), { projectId: 'p', entscheidung: 'ablehnen', begruendung: 'x' })
})
// Buchungskalender (key unterkunft): Zustimmung in Textform wie beim Webshop
const ukFeld = (extra = {}) => ({
textformNoetig: true,
avvVersion: '2026-10-07',
links: {
lb: 'https://project.webklar.com/rechtliches/leistungsbeschreibung-unterkunft-2026-10-07.html',
avv: 'https://project.webklar.com/rechtliches/avv-unterkunft-2026-10-07.html',
},
...extra,
})
test('Buchungskalender: textformNoetig, Label, Vorlage und Links aus dem Feld unterkunft', () => {
assert.equal(textformNoetig('unterkunft', 'activate', ukFeld()), true)
assert.equal(textformNoetig('unterkunft', 'activate', ukFeld({ textformNoetig: false })), false)
assert.equal(textformNoetig('unterkunft', 'activate', undefined), false)
for (const action of ['disable', 'abnahme', 'ticket']) assert.equal(textformNoetig('unterkunft', action, ukFeld()), false, action)
const a = textformAnsicht(ukFeld(), 'unterkunft')
assert.deepEqual(a.label, unterkunftTextformLabel('2026-10-07'))
assert.equal(a.label.lb, 'Leistungsbeschreibung Buchungskalender')
assert.equal(a.label.avv, 'Auftragsverarbeitungsvertrag Buchungskalender')
assert.match(a.label.after, /Fassung 2026-10-07/)
assert.equal(a.vorlage, unterkunftChatTemplate('2026-10-07', a.links))
assert.ok(a.vorlage.startsWith('Damit wir den Buchungskalender für Dich einschalten können'))
assert.ok(a.vorlage.includes(a.links.lb) && a.vorlage.includes(a.links.avv))
const schlecht = textformAnsicht(ukFeld({ links: { lb: 'javascript:alert(1)', avv: 'http://x.example/a.html' } }), 'unterkunft')
assert.deepEqual(schlecht.links, { lb: '', avv: '' })
assert.equal(schlecht.vorlage, '')
assert.equal(textformBereit({ confirmed: true, date: '2026-10-07', channel: 'email', today: '2026-10-07' }, ukFeld()), true)
})