mirror of
https://github.com/umami-software/umami.git
synced 2026-02-08 06:37:18 +01:00
Custom date range select.
This commit is contained in:
parent
e79f4717e7
commit
52e1440089
11 changed files with 247 additions and 314 deletions
|
|
@ -1,5 +1,4 @@
|
|||
import { renderNumberLabels, renderDateLabels } from '../charts';
|
||||
import { formatDate } from '../date';
|
||||
import { renderNumberLabels } from '../charts';
|
||||
|
||||
// test for renderNumberLabels
|
||||
|
||||
|
|
@ -40,42 +39,3 @@ describe('renderNumberLabels', () => {
|
|||
expect(renderNumberLabels(input)).toBe(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describe('renderDateLabels', () => {
|
||||
const mockValues = [{ value: '2024-03-23T10:00:00Z' }, { value: '2024-03-24T15:30:00Z' }];
|
||||
|
||||
beforeEach(() => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
||||
jest.spyOn(require('@/lib/date'), 'formatDate');
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.restoreAllMocks(); // Reset spy to prevent interference
|
||||
});
|
||||
|
||||
test.each([
|
||||
['minute', 'h:mm', 'en-US'],
|
||||
['hour', 'p', 'en-US'],
|
||||
['day', 'MMM d', 'en-US'],
|
||||
['month', 'MMM', 'en-US'],
|
||||
['year', 'yyyy', 'en-US'],
|
||||
])('formats date correctly for unit: %s', (unit, expectedFormat, locale) => {
|
||||
const formatLabel = renderDateLabels(unit, locale);
|
||||
const formatted = formatLabel('label', 0, mockValues);
|
||||
|
||||
expect(formatDate).toHaveBeenCalledWith(new Date(mockValues[0].value), expectedFormat, locale);
|
||||
expect(formatted).toBe(formatDate(new Date(mockValues[0].value), expectedFormat, locale));
|
||||
});
|
||||
|
||||
test('returns label for unknown unit', () => {
|
||||
const formatLabel = renderDateLabels('unknown', 'en-US');
|
||||
expect(formatLabel('original-label', 0, mockValues)).toBe('original-label');
|
||||
});
|
||||
|
||||
test('throws error for invalid date input', () => {
|
||||
const invalidValues = [{ value: 'invalid-date' }];
|
||||
const formatLabel = renderDateLabels('day', 'en-US');
|
||||
|
||||
expect(() => formatLabel('label', 0, invalidValues)).toThrow();
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue