Öffnungszeiten: wechsel der öffentlichen Antwort trägt wieder den Berliner Tag
Das Website-Skript rechnet keine Zeitzonen und braucht tag (Berliner Kalendertag
bei ab) für „heute“ und die nächsten 14 Tage; wechsel-Einträge sind wieder
{ ab, tag, offen, text, kurz }.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
1c9f773e97
commit
d4c1be91c7
2 files changed
+21
-3
No files matched your search
@@ -71,7 +71,8 @@ function planAntwort(daten, plan, now, heuteTag) {
|
||||
haupt: plan.haupt === true,
|
||||
woche,
|
||||
tage: tageListe(daten, plan, heuteTag, TAGE_VORSCHAU),
|
||||
wechsel: wechselListe(daten, plan, now).map(({ ab, offen, text, kurz }) => ({ ab, offen, text, kurz })),
|
||||
// tag = Berliner Kalendertag bei ab: das Skript rechnet keine Zeitzonen und braucht ihn fuer „heute“ und die naechsten 14 Tage
|
||||
wechsel: wechselListe(daten, plan, now).map(({ ab, tag, offen, text, kurz }) => ({ ab, tag, offen, text, kurz })),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@ test('Form: aktiv, stand, plaene, hinweise, kontakt, jsonld, firma, team (nach S
|
||||
assert.equal(JSON.parse(JSON.stringify(a)).plaene.length, 2, 'ist JSON-tauglich')
|
||||
})
|
||||
|
||||
test('Plaene: kurz, name, haupt, woche (7 Tage), tage (60 Tage ab heute), wechsel (nur ab, offen, text, kurz)', async () => {
|
||||
test('Plaene: kurz, name, haupt, woche (7 Tage), tage (60 Tage ab heute), wechsel (ab, tag, offen, text, kurz)', async () => {
|
||||
const a = baue(await gespeicherteDaten())
|
||||
const [standard, kueche] = a.plaene
|
||||
assert.deepEqual(Object.keys(standard), ['kurz', 'name', 'haupt', 'woche', 'tage', 'wechsel'])
|
||||
@@ -148,7 +148,7 @@ test('Plaene: kurz, name, haupt, woche (7 Tage), tage (60 Tage ab heute), wechse
|
||||
assert.equal(standard.tage.find((t) => t.datum === '2026-11-01')?.art, 'feiertag', 'Allerheiligen (RP)')
|
||||
|
||||
assert.ok(standard.wechsel.length >= 8, 'mindestens je Tag ein Wechsel')
|
||||
assert.deepEqual(Object.keys(standard.wechsel[0]), ['ab', 'offen', 'text', 'kurz'])
|
||||
assert.deepEqual(Object.keys(standard.wechsel[0]), ['ab', 'tag', 'offen', 'text', 'kurz'])
|
||||
assert.equal(typeof standard.wechsel[0].ab, 'number')
|
||||
assert.equal(standard.wechsel[0].offen, true, 'Montag 12:00 ist offen')
|
||||
assert.match(standard.wechsel[0].text, /geöffnet/i)
|
||||
@@ -157,6 +157,23 @@ test('Plaene: kurz, name, haupt, woche (7 Tage), tage (60 Tage ab heute), wechse
|
||||
assert.notDeepEqual(kueche.wechsel, standard.wechsel, 'Wechsel je Plan')
|
||||
})
|
||||
|
||||
test('wechsel[].tag ist der Berliner Kalendertag bei ab (das Skript rechnet keine Zeitzonen)', async () => {
|
||||
const daten = await gespeicherteDaten()
|
||||
const berlinTag = (ms) => new Intl.DateTimeFormat('sv-SE', { timeZone: 'Europe/Berlin', year: 'numeric', month: '2-digit', day: '2-digit' }).format(new Date(ms))
|
||||
// 22:30 UTC am 4.10. = 00:30 Berliner Zeit am 5.10.: in UTC waere es noch der 4.
|
||||
const nachtUtc = new Date('2026-10-04T22:30:00.000Z')
|
||||
const a = baue(daten, { now: nachtUtc })
|
||||
for (const plan of a.plaene) {
|
||||
assert.equal(plan.wechsel[0].tag, '2026-10-05', `Berliner Tag zu Beginn (${plan.kurz})`)
|
||||
assert.equal(plan.tage[0].datum, plan.wechsel[0].tag, 'derselbe „heute“ wie tage[0]')
|
||||
for (const w of plan.wechsel) assert.equal(w.tag, berlinTag(w.ab), `tag passt zu ab=${w.ab}`)
|
||||
}
|
||||
const standard = a.plaene[0]
|
||||
assert.ok(standard.wechsel.length > 1)
|
||||
assert.equal(new Set(standard.wechsel.map((w) => w.tag)).size > 1, true, 'spaetere Wechsel tragen ihren eigenen Tag')
|
||||
assert.ok(!JSON.stringify(a).includes('x_urlaub01'), 'weiterhin keine internen IDs')
|
||||
})
|
||||
|
||||
test('Hinweise: gueltige und solche mit Beginn in 8 Tagen, ohne IDs; offene Enden bleiben Zahlen', async () => {
|
||||
const a = baue(await gespeicherteDaten())
|
||||
assert.deepEqual(a.hinweise.map((h) => h.text), ['Wir sind für Euch da.', 'Herbstaktion'], 'weder der ferne noch der vergangene')
|
||||
|
||||
Reference in new issue
Block a user