import assert from 'node:assert/strict' import { test } from 'node:test' import { buildTrendData, getTrendRangeQuery, TREND_RANGE_OPTIONS } from '../src/utils/dashboardTrend.js' const referenceDate = new Date(2026, 8, 26, 12) test('趋势下拉提供 7 天、14 天和 1 个月三个选项', () => { assert.deepEqual(TREND_RANGE_OPTIONS, [ { value: 7, label: '近 7 天' }, { value: 14, label: '近 14 天' }, { value: 30, label: '近 1 个月' } ]) }) test('趋势范围为近 14 天时,查询从 13 天前开始并包含今天', () => { assert.deepEqual(getTrendRangeQuery(14, referenceDate), { beginTime: '2026-09-13', endTime: '2026-09-26' }) }) test('趋势范围为近 1 个月时最多查询 30 天', () => { assert.deepEqual(getTrendRangeQuery(30, referenceDate), { beginTime: '2026-08-28', endTime: '2026-09-26' }) }) test('趋势数据按选择的天数生成日期轴并聚合入库单与出库包数', () => { const result = buildTrendData( [ { createTime: '2026-09-20T08:00:00+08:00' }, { createTime: '2026-09-24T09:00:00+08:00' }, { createTime: '2026-09-24T10:00:00+08:00' } ], [ { confirmedAt: '2026-09-20T11:00:00+08:00', packageQty: 4 }, { confirmedAt: '2026-09-24T13:00:00+08:00', packageQty: 7 } ], 7, referenceDate ) assert.deepEqual(result.labels, ['9/20', '9/21', '9/22', '9/23', '9/24', '9/25', '9/26']) assert.deepEqual(result.inbound, [1, 0, 0, 0, 2, 0, 0]) assert.deepEqual(result.outbound, [4, 0, 0, 0, 7, 0, 0]) })