From 10fe9a2ae025f87f73f2c26d22e870ac0b1be70b Mon Sep 17 00:00:00 2001 From: Kenso Grimm Date: Wed, 7 Oct 2026 14:16:24 +0000 Subject: [PATCH] Buchungskalender: Portal-Tests mit fester Uhr Co-Authored-By: Claude Opus 5.5 --- public/buchungen-tab-anfragen.js | 1 - public/buchungen-uk-hilfe.js | 5 ++++- test/buchungenUi.test.js | 7 ++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/public/buchungen-tab-anfragen.js b/public/buchungen-tab-anfragen.js index d94e08e..8d9ad5d 100644 --- a/public/buchungen-tab-anfragen.js +++ b/public/buchungen-tab-anfragen.js @@ -178,7 +178,6 @@ export async function render(panel, ctx) { if (typeof link === 'string' && link) { const meldung = h('p', { class: 'sh-hinweis', role: 'status' }) box.append( - h('p', null, 'Falls die Mail nicht ankommt, kannst du den Link selbst schicken:'), h('input', { type: 'text', readonly: true, value: link, 'aria-label': 'Buchungslink', 'data-link': true }), h('button', { type: 'button', class: 'kb-btn-outline', 'data-aktion': 'link-kopieren', diff --git a/public/buchungen-uk-hilfe.js b/public/buchungen-uk-hilfe.js index 0eb9b86..cfa1b95 100644 --- a/public/buchungen-uk-hilfe.js +++ b/public/buchungen-uk-hilfe.js @@ -9,7 +9,10 @@ export const tagMs = (tag) => { const [j, m, t] = String(tag).split('-').map(Num export const msTag = (ms) => new Date(ms).toISOString().slice(0, 10) export const plusTage = (tag, n) => msTag(tagMs(tag) + n * 86400000) /** Heute als Berlin-Datum. */ -export const heuteBerlin = () => new Date().toLocaleDateString('sv-SE', { timeZone: 'Europe/Berlin' }) +let jetzt = () => new Date() +/** Uhr der Portal-Reiter austauschen (nur fuer Tests); ohne Argument zurueck auf die echte Uhr. */ +export const setzeUhrFuerTests = (fn) => { jetzt = fn || (() => new Date()) } +export const heuteBerlin = () => jetzt().toLocaleDateString('sv-SE', { timeZone: 'Europe/Berlin' }) /** '2026-11-12' ⇒ '12.11.2026'. */ export const tagText = (tag) => { const m = /^(\d{4})-(\d{2})-(\d{2})$/.exec(tag || ''); return m ? `${m[3]}.${m[2]}.${m[1]}` : '' } diff --git a/test/buchungenUi.test.js b/test/buchungenUi.test.js index 549182e..596c91c 100644 --- a/test/buchungenUi.test.js +++ b/test/buchungenUi.test.js @@ -192,8 +192,13 @@ const zeigeTab = async (fx, modul) => { } const kal = await import('../public/buchungen-tab-kalender.js') const ukTab = await import('../public/buchungen-tab-unterkuenfte.js') +import { setzeUhrFuerTests } from '../public/buchungen-uk-hilfe.js' +setzeUhrFuerTests(() => new Date('2026-10-07T10:00:00Z')) // feste Uhr: Kalender und Sperren-Tests nutzen Daten im Herbst 2026 const tag = (fx, panel, t) => fx.finde(panel, `[data-tag="${t}"]`) -const gehZuNovember = async (fx, panel) => { while (!/November 2026/.test(fx.text(fx.finde(panel, '[data-monat]')))) { await fx.klick(aktion(fx, panel, 'weiter')); await fx.ruhe() } } +const gehZuNovember = async (fx, panel) => { + for (let i = 0; i < 24 && !/November 2026/.test(fx.text(fx.finde(panel, '[data-monat]'))); i += 1) { await fx.klick(aktion(fx, panel, 'weiter')); await fx.ruhe() } + assert.match(fx.text(fx.finde(panel, '[data-monat]')), /November 2026/, 'November 2026 nicht erreicht') +} test('rasterTage: November 2026 beginnt am Montag 26.10. und endet am Sonntag 29.11.... ', () => { const t = kal.rasterTage(2026, 10)