Öffnungszeiten: Mails K24–K27 heißen jetzt K27–K30, Feld k24At heißt einschaltMailAt
K24–K26 sind seit dem Webshop-Livegang (main) vergeben; der Mail-Lader sucht die Vorlage über den Dateianfang, doppelte Nummern hätten die falsche Mail geschickt. Das Feld ist noch nicht in der Produktion angelegt (zeiten-setup.mjs lief noch nicht), daher jetzt ein sprechender Name. Spec und Plan behalten die alten Nummern (Hinweis oben im Dokument). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ea4457e6a4
commit
c7cd436ec2
34 files changed
+359
-354
No files matched your search
@@ -16,7 +16,7 @@ const { createDocument, updateDocument, getDocument } = await import('../server/
|
||||
after(() => Promise.all([aw.close(), st.close()]))
|
||||
|
||||
const NAMES = ['oeffnungszeiten', 'zeitenErinnerungen']
|
||||
const FEATURE_KEYS = ['unlockedBy', 'aboEndeAt', 'einbau', 'behaltenSessionId', 'k24At']
|
||||
const FEATURE_KEYS = ['unlockedBy', 'aboEndeAt', 'einbau', 'behaltenSessionId', 'einschaltMailAt']
|
||||
const keysOf = (name) => ZEITEN_COLLECTIONS[name].attributes.map((a) => a.key)
|
||||
|
||||
/**
|
||||
@@ -120,13 +120,13 @@ test('zeitenErinnerungen: featureId, datum, createdAt', () => {
|
||||
])
|
||||
})
|
||||
|
||||
test('portalFeatures bekommt unlockedBy(8), aboEndeAt, einbau(12), behaltenSessionId(128), k24At', () => {
|
||||
test('portalFeatures bekommt unlockedBy(8), aboEndeAt, einbau(12), behaltenSessionId(128), einschaltMailAt', () => {
|
||||
assert.deepEqual(ZEITEN_FEATURE_ATTRIBUTES, [
|
||||
{ key: 'unlockedBy', type: 'string', size: 8, required: false },
|
||||
{ key: 'aboEndeAt', type: 'datetime', required: false },
|
||||
{ key: 'einbau', type: 'string', size: 12, required: false },
|
||||
{ key: 'behaltenSessionId', type: 'string', size: 128, required: false },
|
||||
{ key: 'k24At', type: 'datetime', required: false },
|
||||
{ key: 'einschaltMailAt', type: 'datetime', required: false },
|
||||
])
|
||||
})
|
||||
|
||||
@@ -206,7 +206,7 @@ test('main legt auf leerer Datenbank 2 Collections, alle Attribute und Indizes a
|
||||
assert.deepEqual(client.calls.attrs.filter((k) => k.startsWith(`${featuresId}.`)), FEATURE_KEYS.map((key) => `${featuresId}.${key}`))
|
||||
const features = client.state.get(featuresId).attrs
|
||||
assert.deepEqual(features.get('unlockedBy'), { key: 'unlockedBy', type: 'string', size: 8, required: false })
|
||||
assert.deepEqual(features.get('k24At'), { key: 'k24At', type: 'datetime', required: false })
|
||||
assert.deepEqual(features.get('einschaltMailAt'), { key: 'einschaltMailAt', type: 'datetime', required: false })
|
||||
})
|
||||
|
||||
test('main: zweiter Lauf legt nichts mehr an', async () => {
|
||||
@@ -232,7 +232,7 @@ test('main legt nur fehlende Attribute und Indizes einer vorhandenen Collection
|
||||
)
|
||||
assert.deepEqual(
|
||||
client.calls.attrs.filter((k) => k.startsWith(`${featuresId}.`)),
|
||||
[`${featuresId}.aboEndeAt`, `${featuresId}.behaltenSessionId`, `${featuresId}.k24At`],
|
||||
[`${featuresId}.aboEndeAt`, `${featuresId}.behaltenSessionId`, `${featuresId}.einschaltMailAt`],
|
||||
)
|
||||
assert.equal(client.calls.collections.length, 1)
|
||||
})
|
||||
@@ -256,9 +256,9 @@ test('--check meldet bei vollständigem Stand nichts und ein einzelnes fehlendes
|
||||
const client = fakeClient()
|
||||
await main({ client, log: quiet })
|
||||
assert.deepEqual(await main({ check: true, client, log: quiet }), { missing: [], missingCollections: [], missingIndexes: [] })
|
||||
client.state.get(featuresId).attrs.delete('k24At')
|
||||
client.state.get(featuresId).attrs.delete('einschaltMailAt')
|
||||
const result = await main({ check: true, client, log: quiet })
|
||||
assert.deepEqual(result.missing.map((a) => `${a.collection}.${a.key}`), [`${featuresId}.k24At`])
|
||||
assert.deepEqual(result.missing.map((a) => `${a.collection}.${a.key}`), [`${featuresId}.einschaltMailAt`])
|
||||
assert.deepEqual(result.missingCollections, [])
|
||||
})
|
||||
|
||||
|
||||
Reference in new issue
Block a user