48 lines
1.5 KiB
TypeScript
48 lines
1.5 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
import {
|
|
buildElectricDrillUrl,
|
|
parseElectricDrillContext,
|
|
} from './electric-drill-context.js';
|
|
|
|
test('parses electric scope, range, and selected day', () => {
|
|
assert.deepEqual(
|
|
parseElectricDrillContext('?electricScope=external&electricStart=2026-07-01&electricEnd=2026-07-31&electricDate=2026-07-24'),
|
|
{
|
|
vehicleScope: 'external',
|
|
startDate: '2026-07-01',
|
|
endDate: '2026-07-31',
|
|
selectedDate: '2026-07-24',
|
|
},
|
|
);
|
|
});
|
|
|
|
test('drops invalid electric dates and defaults scope', () => {
|
|
assert.deepEqual(
|
|
parseElectricDrillContext('?electricScope=unknown&electricDate=2026-02-31'),
|
|
{ vehicleScope: 'lingniu' },
|
|
);
|
|
});
|
|
|
|
test('preserves the all-vehicle scope for overview drilldown', () => {
|
|
assert.deepEqual(
|
|
parseElectricDrillContext('?electricScope=all&electricDate=2026-07-28'),
|
|
{ vehicleScope: 'all', selectedDate: '2026-07-28' },
|
|
);
|
|
});
|
|
|
|
test('builds namespaced electric drill URL and preserves unrelated filters', () => {
|
|
assert.equal(
|
|
buildElectricDrillUrl(
|
|
{ pathname: '/energy', search: '?company=5&electricDate=2026-01-01', hash: '#electric' },
|
|
{
|
|
vehicleScope: 'lingniu',
|
|
startDate: '2026-07-24',
|
|
endDate: '2026-08-07',
|
|
selectedDate: '2026-07-24',
|
|
},
|
|
),
|
|
'/energy?company=5&electricScope=lingniu&electricStart=2026-07-24&electricEnd=2026-08-07&electricDate=2026-07-24#electric',
|
|
);
|
|
});
|