- render.test.mjs drives the real UI under jsdom: employees tab renders and
add works, planning tab renders the calendar grid (makeDayCell), generate
fills slots, a manual slot change updates history, and a beforeunload flush
persists state to localStorage; data tab renders the history view.
- persistence.test.mjs seeds malformed persisted state (employee without
constraints, out-of-range moderatorsPerDay) and asserts the startup load
normalizes it without crashing.
- jsdom added as the single devDependency; node_modules gitignored; both
suites wired into npm test.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>