// Generated, do not edit. sha256:e2e0937b7b3c760761ff1e6af43b751d527084ca1706a0de98999069ed45ca25 import { describe, it } from 'node:test'; import assert from 'node:assert/strict'; import { toUtcIso, toLocalIso, localDate, localDateNl, dayNl, localDateTimeNl, localTime, localDateTime, nowUtcIso, nowLocalIso, setDateLocale } from '../../shared/time.js'; describe('tijd: opslaan (naïef lokaal naar UTC)', () => { it('rekent zomertijd en wintertijd verschillend om', () => { assert.equal(toUtcIso('2026-06-20T14:30:00'), '2026-06-20T12:30:00Z'); assert.equal(toUtcIso('2026-01-15T14:30:00'), '2026-01-15T13:30:00Z'); }); it('accepteert een datetime-local-waarde zonder seconden', () => { assert.equal(toUtcIso('2026-06-20T14:30'), '2026-06-20T12:30:00Z'); }); it('laat een waarde die al UTC is ongemoeid, dus omzetten is idempotent', () => { const al = '2026-06-20T12:30:00.000Z'; assert.equal(toUtcIso(al), al); assert.equal(toUtcIso(toUtcIso(al)), al); }); it('raakt een kalenderdatum en lege waarden niet aan', () => { assert.equal(toUtcIso('2026-06-20'), '2026-06-20'); assert.equal(toUtcIso(null), null); assert.equal(toUtcIso(''), ''); }); }); describe('tijd: heen-en-terug', () => { it('komt exact terug, ook op de twee zomertijdgrenzen', () => { for (const t of ['2026-06-20T14:30:00', '2026-01-15T00:00:00', '2026-03-29T04:00:00', '2026-10-25T04:00:00', '2025-12-31T23:59:59', '2024-02-29T12:00:00']) { assert.equal(toLocalIso(toUtcIso(t)), t, `heen-en-terug faalt op ${t}`); } }); it('houdt het moment gelijk, ook als de kalenderdag verschuift', () => { const utc = toUtcIso('2026-06-20T00:00:00'); assert.equal(utc, '2026-06-19T22:00:00Z'); assert.equal(toLocalIso(utc), '2026-06-20T00:00:00'); }); }); describe('tijd: tonen', () => { it('toont de lokale dag en niet de UTC-dag', () => { assert.equal(localDate('2026-06-19T22:00:00Z'), '2026-06-20'); assert.equal(localTime('2026-06-19T22:00:00Z'), '00:00'); assert.equal(localDateTime('2026-06-19T22:00:00Z'), '2026-06-20 00:00'); }); it('toont een zomers tijdstempel twee uur later dan de UTC-tekst', () => { assert.equal(localTime('2025-11-01T14:52:43.000Z'), '15:52'); assert.equal(localTime('2026-06-20T12:30:00.000Z'), '14:30'); }); it('geeft lege tekst voor een lege waarde in plaats van te gooien', () => { for (const leeg of [null, undefined, '']) { assert.equal(localDate(leeg), ''); assert.equal(localTime(leeg), ''); assert.equal(localDateTime(leeg), ''); } }); }); describe('tijd: nu', () => { it('geeft nowUtcIso in UTC en nowLocalIso zonder zone', () => { assert.match(nowUtcIso(), /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/); assert.match(nowLocalIso(), /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/); }); it('geeft voor hetzelfde moment dezelfde tijd in beide vormen', () => { const utc = nowUtcIso(); assert.equal(toLocalIso(utc).slice(0, 16), nowLocalIso().slice(0, 16)); }); }); describe('localDateNl', () => { it('zet de dag vooraan, met streepjes', () => { assert.equal(localDateNl('2026-06-20T12:30:00Z'), '20-06-2026'); }); it('vult de dag en de maand aan tot twee cijfers', () => { assert.equal(localDateNl('2026-01-01T12:00:00Z'), '01-01-2026'); }); it('volgt de LOKALE dag en niet de UTC-dag', () => { assert.equal(localDateNl('2026-06-20T22:30:00Z'), '21-06-2026'); assert.equal(localDate('2026-06-20T22:30:00Z'), '2026-06-21', 'dezelfde dag als localDate'); }); it('geeft lege tekst op een LEGE waarde, en gooit op onleesbare invoer', () => { for (const leeg of [null, undefined, '']) assert.equal(localDateNl(leeg), ''); assert.throws(() => localDateNl('geen datum'), /Onleesbaar tijdstempel/); }); }); describe('dayNl en localDateTimeNl', () => { it('draait een kalenderdatum om zonder tijdzone', () => { assert.equal(dayNl('2026-01-01'), '01-01-2026'); assert.equal(dayNl('2026-12-31'), '31-12-2026'); }); it('geeft leeg op leeg en laat iets wat geen datum is staan', () => { for (const leeg of [null, undefined, '']) assert.equal(dayNl(leeg), ''); assert.equal(dayNl('onbekend'), 'onbekend'); }); it('zet datum en klok samen neer, in lokale tijd', () => { assert.equal(localDateTimeNl('2026-06-19T22:00:00Z'), '20-06-2026 00:00'); assert.equal(localDateTimeNl(null), ''); }); it('volgt de taal van de app, en terug', () => { setDateLocale('en-US'); try { assert.equal(dayNl('2026-06-08'), '06/08/2026'); assert.equal(localDateTimeNl('2026-06-19T22:00:00Z'), '06/20/2026 00:00'); } finally { setDateLocale('nl-NL'); } assert.equal(dayNl('2026-06-08'), '08-06-2026', 'terug naar Nederlands, ook met de opmaak in de cache'); }); });