import test from 'node:test';import assert from 'node:assert/strict'; import {headquartersDropAllowed as allowed} from '../src/dispositionDropTime.mjs'; const base={day:'2026-10-19',units:6,serverNow:'2026-10-19T10:00:00',slot:60}; test('HQ drops preserve exact time boundary and advance while the board remains open',()=>{ assert.equal(allowed(base),true);assert.equal(allowed({...base,slot:59}),false);assert.equal(allowed({...base,elapsedMs:1}),false);assert.equal(allowed({...base,slot:61,elapsedMs:600000}),true);assert.equal(allowed({...base,slot:61,elapsedMs:600001}),false); }); test('database date crosses midnight independently of browser time zone',()=>{ assert.equal(allowed({...base,day:'2026-10-20',slot:0}),true);assert.equal(allowed({...base,day:'2026-10-18',slot:143}),false); assert.equal(allowed({...base,serverNow:'2026-10-19T23:59:59',day:'2026-10-20',slot:0,elapsedMs:1000}),true); assert.equal(allowed({...base,serverNow:'2026-10-19T23:59:59',day:'2026-10-20',slot:0,elapsedMs:1001}),false); }); test('configured override permits elapsed time; missing server time does not invent a current clock',()=>{ assert.equal(allowed({...base,slot:0,allowPastDrops:true}),true);assert.equal(allowed({...base,serverNow:undefined}),false);assert.equal(allowed({...base,serverNow:'invalid'}),false);assert.equal(allowed({...base,units:0}),false); });