Terminplaner: Kunden-Schnittstelle
/api/termine: Einstellungen (Vorlage, PATCH mit Version, Feed-Link), Buchungen (Liste, Zeiten, von Hand, Sperre, Aktionen), CSV-Export, Protokoll der Kundenansicht. Pflichtangaben fuer Gaeste (Telefon immer, Anschrift bei Widerrufsbelehrung) in normalisiereEinstellung, Entwurf aus Vorlagen, kontextPerSiteKey ohne Pflichtangaben nicht buchbar; speichereEinstellung nimmt eine Funktion unter der Sperre. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
9e8fd33713
commit
e3e198fb1a
10 files changed
+1766
-40
No files matched your search
@@ -305,13 +305,23 @@ test('config: ohne Widerrufsrecht (nur Unternehmer) kein widerruf und keine Bele
|
||||
assert.deepEqual(Object.keys(body.texte).sort(), ['erinnerung', 'gesundheit', 'storno', 'vorzeitig'])
|
||||
})
|
||||
|
||||
test('config: eine nicht zu erzeugende Belehrung (Anschrift fehlt) ist 503 statt einer Buchung ohne Belehrung', async () => {
|
||||
const e = einstellung()
|
||||
e.betrieb.adresse = ''
|
||||
await speichere(e)
|
||||
const res = await api('GET', `/${SITE_KEY}/config`)
|
||||
assert.equal(res.status, 503)
|
||||
assert.deepEqual(res.body, NICHT_ERREICHBAR)
|
||||
test('config: ohne Anschrift (Belehrung nicht zu erzeugen) oder Telefon ist die Funktion fuer Gaeste nicht aktiv (R41), nie eine Buchung ohne Belehrung', async () => {
|
||||
for (const felder of [{ adresse: '' }, { telefon: '' }]) {
|
||||
const e = einstellung()
|
||||
Object.assign(e.betrieb, felder) // wie ein Entwurf aus einer Vorlage, gespeichert ohne strenge Pruefung
|
||||
await speichere(e)
|
||||
for (const [methode, pfad, body] of [
|
||||
['GET', 'config'],
|
||||
['GET', `tage?leistung=${S_SOFORT}&ressource=egal&monat=2026-10`],
|
||||
['GET', `zeiten?leistung=${S_SOFORT}&ressource=egal&tag=${TAG_FERN}`],
|
||||
['POST', 'buchungen', buchungBody()],
|
||||
]) {
|
||||
const res = await api(methode, `/${SITE_KEY}/${pfad}`, body ? { body } : {})
|
||||
assert.equal(res.status, 200, `${JSON.stringify(felder)} ${pfad}`)
|
||||
assert.deepEqual(res.body, AKTIV_FALSE, `${JSON.stringify(felder)} ${pfad}`)
|
||||
}
|
||||
assert.equal(aw.docs('termineBookings').size, 0, 'nichts gebucht')
|
||||
}
|
||||
})
|
||||
|
||||
// ---------------------------------------------------------------- Unbekannt, aus, abgeschaltet
|
||||
|
||||
Reference in new issue
Block a user