feat: frontend unit tests

This commit is contained in:
Yiannis Stergiou
2026-01-07 19:47:54 +02:00
committed by GitHub
parent ed5cfa1a84
commit 1c15880ae3
74 changed files with 6000 additions and 877 deletions

View File

@@ -0,0 +1,33 @@
import publishedOnDate from '../../../src/static/js/utils/helpers/publishedOnDate';
// Helper to create Date in UTC to avoid timezone issues in CI environments
const makeDate = (y: number, mZeroBased: number, d: number) => new Date(Date.UTC(y, mZeroBased, d));
describe('js/utils/helpers', () => {
describe('publishedOnDate', () => {
test('Returns null when input is not a Date instance', () => {
expect(publishedOnDate(null as unknown as Date)).toBeNull();
expect(publishedOnDate(undefined as unknown as Date)).toBeNull();
expect(publishedOnDate('2020-01-02' as any as Date)).toBeNull();
expect(publishedOnDate(1577923200000 as unknown as Date)).toBeNull();
});
test('Type 1 (default): "Mon DD, YYYY" with 3-letter month prefix before day', () => {
expect(publishedOnDate(makeDate(2020, 0, 2))).toBe('Jan 2, 2020');
expect(publishedOnDate(makeDate(1999, 11, 31))).toBe('Dec 31, 1999');
expect(publishedOnDate(makeDate(2024, 1, 29))).toBe('Feb 29, 2024');
});
test('Type 2: "DD Mon YYYY" with 3-letter month suffix', () => {
expect(publishedOnDate(makeDate(2020, 0, 2), 2)).toBe('2 Jan 2020');
expect(publishedOnDate(makeDate(1999, 11, 31), 2)).toBe('31 Dec 1999');
expect(publishedOnDate(makeDate(2024, 1, 29), 2)).toBe('29 Feb 2024');
});
test('Type 3: "DD Month YYYY" with full month name', () => {
expect(publishedOnDate(makeDate(2020, 0, 2), 3)).toBe('2 January 2020');
expect(publishedOnDate(makeDate(1999, 11, 31), 3)).toBe('31 December 1999');
expect(publishedOnDate(makeDate(2024, 1, 29), 3)).toBe('29 February 2024');
});
});
});