import { test } from 'node:test'; import assert from 'node:assert/strict'; import { easterSunday, germanHolidays } from '../server/holidays.js'; test('Ostersonntag bekannter Jahre', () => { assert.equal(easterSunday(2024), '2024-03-31'); assert.equal(easterSunday(2025), '2025-04-20'); assert.equal(easterSunday(2026), '2026-04-05'); assert.equal(easterSunday(2027), '2027-03-28'); }); test('bundesweite Feiertage 2026', () => { const dates = Object.fromEntries(germanHolidays(2026).map((h) => [h.name, h.date])); assert.equal(dates['Karfreitag'], '2026-04-03'); assert.equal(dates['Ostermontag'], '2026-04-06'); assert.equal(dates['Christi Himmelfahrt'], '2026-05-14'); assert.equal(dates['Pfingstmontag'], '2026-05-25'); assert.equal(dates['Tag der Deutschen Einheit'], '2026-10-03'); assert.equal(Object.keys(dates).length, 9); assert.ok(!('Fronleichnam' in dates)); }); test('Landesfeiertage nur im passenden Bundesland', () => { const nw = germanHolidays(2026, 'NW').map((h) => h.name); assert.ok(nw.includes('Fronleichnam')); assert.ok(nw.includes('Allerheiligen')); assert.ok(!nw.includes('Reformationstag')); const sn = Object.fromEntries(germanHolidays(2026, 'SN').map((h) => [h.name, h.date])); assert.equal(sn['Buß- und Bettag'], '2026-11-18'); assert.ok('Reformationstag' in sn); });