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:
1 parent
b2a0ff5d53
commit
38020bfdff
3 files changed
+64
-13
No files matched your search
@@ -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)
|
||||
})
|
||||
Reference in new issue
Block a user