feat(mileage): compact mobile results and add date presets
This commit is contained in:
@@ -58,6 +58,33 @@ test('renders only the desktop matrix with dates as columns and a period total',
|
||||
expect(mocks.dailyMileage.mock.calls[0][0].get('protocols')).toBe('GB32960,JT808,YUTONG_MQTT');
|
||||
});
|
||||
|
||||
test('defaults to seven days and supports today and yesterday shortcuts', async () => {
|
||||
prepareData();
|
||||
renderPage();
|
||||
const localDate = (value: Date) => new Date(value.getTime() - value.getTimezoneOffset() * 60_000).toISOString().slice(0, 10);
|
||||
const today = localDate(new Date());
|
||||
const yesterday = localDate(new Date(Date.now() - 86_400_000));
|
||||
const sevenDaysAgo = localDate(new Date(Date.now() - 6 * 86_400_000));
|
||||
|
||||
await waitFor(() => expect(mocks.mileageStatistics).toHaveBeenCalled());
|
||||
expect(mocks.mileageStatistics.mock.calls[0][0].get('dateFrom')).toBe(sevenDaysAgo);
|
||||
expect(mocks.mileageStatistics.mock.calls[0][0].get('dateTo')).toBe(today);
|
||||
|
||||
fireEvent.click(screen.getByRole('button', { name: '昨天' }));
|
||||
await waitFor(() => {
|
||||
const params = mocks.mileageStatistics.mock.calls[mocks.mileageStatistics.mock.calls.length - 1]?.[0];
|
||||
expect(params.get('dateFrom')).toBe(yesterday);
|
||||
expect(params.get('dateTo')).toBe(yesterday);
|
||||
});
|
||||
|
||||
fireEvent.click(screen.getByRole('button', { name: '今天' }));
|
||||
await waitFor(() => {
|
||||
const params = mocks.mileageStatistics.mock.calls[mocks.mileageStatistics.mock.calls.length - 1]?.[0];
|
||||
expect(params.get('dateFrom')).toBe(today);
|
||||
expect(params.get('dateTo')).toBe(today);
|
||||
});
|
||||
});
|
||||
|
||||
test('rejects overlong mileage ranges before querying or rendering a huge matrix', async () => {
|
||||
prepareData();
|
||||
const view = renderPage('/statistics?vins=LTEST000000000001&dateFrom=2025-01-01&dateTo=2026-07-14');
|
||||
|
||||
Reference in New Issue
Block a user