Terminplaner TP2: Fragebogen im Kontext und Speicher
kontext.js: ctx.fragebogen (normalisiert; fehlt er oder ist er kaputt, der leere, kaputt mit einer Logzeile und ohne Wurf), ladeEinstellung liefert zusaetzlich fragebogen, neuer kontextFuerPortal(feature) fuer das Portal in jedem Zustand. speichereFragebogen schreibt unter termine-cfg:<id> nur fragebogen, updatedAt und updatedBy (ohne version; fehlt das Dokument: 409 keine_einstellung). Neue Option fragebogen bei speichereEinstellung schreibt Einstellung und Fragebogen in derselben Sperre. kontextPerSiteKey bleibt unveraendert (Entwurf nie oeffentlich), Tests dazu fuer off, ordered, setup, disabled und nach activate. Der Test ladeEntwurf in funktionenCheckout.test.js schaltet die neue Logzeile stumm. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
008ad4fb1e
commit
31aa80affd
3 files changed
+481
-31
No files matched your search
@@ -1155,28 +1155,29 @@ test('ladeEntwurf: Einstellung und Fragebogen aus termineConfig, fehlend oder ka
|
||||
const doc = (extra) => aw.seed('termineConfig', { $id: 'f_p1_termine', customerId: 'c1', projectId: 'p1', einstellung: JSON.stringify(einstellung), version: 3, updatedAt: new Date().toISOString(), updatedBy: 'x', ...extra })
|
||||
|
||||
assert.deepEqual(await order.ladeEntwurf('f_p1_termine'), { einstellung: null, fragebogen: null }, 'kein Dokument')
|
||||
doc({ fragebogen: JSON.stringify(fragebogen) })
|
||||
assert.deepEqual(await order.ladeEntwurf('f_p1_termine'), { einstellung, fragebogen })
|
||||
doc({})
|
||||
assert.deepEqual(await order.ladeEntwurf('f_p1_termine'), { einstellung, fragebogen: null }, 'Attribut fehlt')
|
||||
for (const kaputt of ['{kaputt', '', '[1,2]', '42', '"text"', 'null']) {
|
||||
doc({ fragebogen: kaputt })
|
||||
assert.deepEqual(await order.ladeEntwurf('f_p1_termine'), { einstellung, fragebogen: null }, `fragebogen ${JSON.stringify(kaputt)}`)
|
||||
}
|
||||
// Einstellung unlesbar: null (der Fehler wird im Kontext-Modul geloggt), der Fragebogen bleibt
|
||||
const log = stumm()
|
||||
// ladeEinstellung (Kontext-Modul) meldet einen Fragebogen, den die Normalisierung ablehnt, mit einer Logzeile: hier stumm
|
||||
const leise = stumm()
|
||||
try {
|
||||
doc({ fragebogen: JSON.stringify(fragebogen) })
|
||||
assert.deepEqual(await order.ladeEntwurf('f_p1_termine'), { einstellung, fragebogen })
|
||||
doc({})
|
||||
assert.deepEqual(await order.ladeEntwurf('f_p1_termine'), { einstellung, fragebogen: null }, 'Attribut fehlt')
|
||||
for (const kaputt of ['{kaputt', '', '[1,2]', '42', '"text"', 'null']) {
|
||||
doc({ fragebogen: kaputt })
|
||||
assert.deepEqual(await order.ladeEntwurf('f_p1_termine'), { einstellung, fragebogen: null }, `fragebogen ${JSON.stringify(kaputt)}`)
|
||||
}
|
||||
// Einstellung unlesbar: null (der Fehler wird im Kontext-Modul geloggt), der Fragebogen bleibt
|
||||
doc({ einstellung: '{kaputt', fragebogen: JSON.stringify(fragebogen) })
|
||||
assert.deepEqual(await order.ladeEntwurf('f_p1_termine'), { einstellung: null, fragebogen })
|
||||
// Lesefehler werden nicht verschluckt
|
||||
doc({ fragebogen: JSON.stringify(fragebogen) })
|
||||
aw.failNext({ collection: 'termineConfig', status: 500 })
|
||||
await assert.rejects(order.ladeEntwurf('f_p1_termine'))
|
||||
aw.failNext({ collection: 'termineConfig', method: 'GET', status: 500, after: 1 })
|
||||
await assert.rejects(order.ladeEntwurf('f_p1_termine'))
|
||||
await assert.doesNotReject(order.ladeEntwurf('f_p1_termine'))
|
||||
await assert.rejects(order.ladeEntwurf(''), TypeError)
|
||||
} finally {
|
||||
log.mock.restore()
|
||||
leise.mock.restore()
|
||||
}
|
||||
// Lesefehler werden nicht verschluckt
|
||||
doc({ fragebogen: JSON.stringify(fragebogen) })
|
||||
aw.failNext({ collection: 'termineConfig', status: 500 })
|
||||
await assert.rejects(order.ladeEntwurf('f_p1_termine'))
|
||||
aw.failNext({ collection: 'termineConfig', method: 'GET', status: 500, after: 1 })
|
||||
await assert.rejects(order.ladeEntwurf('f_p1_termine'))
|
||||
await assert.doesNotReject(order.ladeEntwurf('f_p1_termine'))
|
||||
await assert.rejects(order.ladeEntwurf(''), TypeError)
|
||||
})
|
||||
Reference in new issue
Block a user