import assert from 'node:assert/strict'; import { addHistoryEntries, removeHistoryEntry } from '../js/data.js'; function makeState(history = []) { return { employees: [], calendar: { holidays: [], companyClosures: [] }, history: [...history] }; } // addHistoryEntries: two entries with same date but different employees both kept { const state = makeState(); addHistoryEntries(state, [ { date: '2026-04-01', employeeId: 'alice', manual: false }, { date: '2026-04-01', employeeId: 'bob', manual: false } ]); assert.equal(state.history.length, 2, 'two distinct entries kept on same date'); const ids = state.history.map(h => h.employeeId).sort(); assert.deepEqual(ids, ['alice', 'bob'], 'both employees present'); } // addHistoryEntries: same (date, employeeId) replaced, others on same date untouched { const state = makeState([ { date: '2026-04-01', employeeId: 'alice', manual: false }, { date: '2026-04-01', employeeId: 'bob', manual: false } ]); addHistoryEntries(state, [ { date: '2026-04-01', employeeId: 'alice', manual: true } ]); assert.equal(state.history.length, 2, 'still two entries'); const alice = state.history.find(h => h.employeeId === 'alice'); assert.equal(alice.manual, true, 'alice replaced with manual=true'); const bob = state.history.find(h => h.employeeId === 'bob'); assert.equal(bob.manual, false, 'bob untouched'); } // addHistoryEntries: empty input → no change { const state = makeState([{ date: '2026-04-01', employeeId: 'alice', manual: false }]); addHistoryEntries(state, []); assert.equal(state.history.length, 1, 'empty entries → no change'); } console.log('All data tests passed.');