import assert from 'node:assert/strict'; import test from 'node:test'; import { dateRangeModeLabel, getQuickDateRange, inferDateRangeMode, normalizeDateRange, } from './date-range.js'; const FRIDAY = new Date(2026, 7, 7, 16, 30, 0); test('builds shared quick date ranges from local calendar days', () => { assert.deepEqual(getQuickDateRange('thisWeek', FRIDAY), { start: '2026-08-03', end: '2026-08-07' }); assert.deepEqual(getQuickDateRange('thisMonth', FRIDAY), { start: '2026-08-01', end: '2026-08-07' }); assert.deepEqual(getQuickDateRange('last15', FRIDAY), { start: '2026-07-24', end: '2026-08-07' }); }); test('normalizes date order and publishes consistent labels', () => { assert.deepEqual(normalizeDateRange('2026-08-07', '2026-08-01'), { start: '2026-08-01', end: '2026-08-07' }); assert.equal(dateRangeModeLabel('thisMonth'), '本月'); assert.equal(dateRangeModeLabel('custom'), '自定义区间'); }); test('restores a quick mode only while URL dates still match that calendar range', () => { assert.equal(inferDateRangeMode('2026-08-03', '2026-08-07', FRIDAY), 'thisWeek'); assert.equal(inferDateRangeMode('2026-08-01', '2026-08-07', FRIDAY), 'thisMonth'); assert.equal(inferDateRangeMode('2026-08-07', '2026-07-24', FRIDAY), 'last15'); assert.equal(inferDateRangeMode('2026-08-01', '2026-08-06', FRIDAY), 'custom'); assert.equal( inferDateRangeMode('2026-08-01', '2026-08-07', new Date(2026, 7, 8, 9, 0, 0)), 'custom', ); });