import assert from 'node:assert/strict' import test from 'node:test' import { diffDays, resolveFinanceDateRange, shiftDate } from './finance-date-range.js' test('resolveFinanceDateRange uses the requested date range', () => { const range = resolveFinanceDateRange({ dateFrom: '2026-10-01', dateTo: '2026-10-14' }) assert.deepEqual(range, { fromDate: '2026-10-01', toDate: '2026-10-14' }) }) test('resolveFinanceDateRange rejects reversed and oversized ranges', () => { assert.throws(() => resolveFinanceDateRange({ dateFrom: '2026-10-14', dateTo: '2026-10-01' })) assert.throws(() => resolveFinanceDateRange({ dateFrom: '2025-01-01', dateTo: '2026-10-01' }, { maxDays: 400 }), ) }) test('resolveFinanceDateRange defaults to the recent N calendar days', () => { const range = resolveFinanceDateRange({ dateTo: '2026-10-22' }, { defaultDays: 7 }) assert.deepEqual(range, { fromDate: '2026-10-16', toDate: '2026-10-22' }) assert.equal(diffDays(range.fromDate, range.toDate) + 1, 7) }) test('shiftDate crosses months without timezone drift', () => { assert.equal(shiftDate('2026-03-01', -1), '2026-02-28') assert.equal(shiftDate('2026-12-31', 1), '2027-01-01') })