37 lines
1.5 KiB
TypeScript
37 lines
1.5 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
||
import { formatMoscowDate, formatMoscowDateTime, isIsoDate } from './dates';
|
||
|
||
describe('formatMoscowDate', () => {
|
||
it('момент времени из API (UTC) — дата по Москве', () => {
|
||
expect(formatMoscowDate('2026-10-07T23:11:42.981145Z')).toBe('08.10.2026');
|
||
expect(formatMoscowDate('2024-03-12T10:00:00Z')).toBe('12.03.2024');
|
||
});
|
||
it('пусто и мусор', () => {
|
||
expect(formatMoscowDate(null)).toBeNull();
|
||
expect(formatMoscowDate('не дата')).toBeNull();
|
||
});
|
||
});
|
||
|
||
describe('formatMoscowDateTime', () => {
|
||
it('момент из API (UTC) — дата и время по Москве', () => {
|
||
expect(formatMoscowDateTime('2026-10-07T23:11:42.981145Z')).toBe('08.10.2026 02:11');
|
||
expect(formatMoscowDateTime('2024-03-12T10:05:00Z')).toBe('12.03.2024 13:05');
|
||
});
|
||
it('пусто и мусор', () => {
|
||
expect(formatMoscowDateTime(null)).toBeNull();
|
||
expect(formatMoscowDateTime('не дата')).toBeNull();
|
||
});
|
||
});
|
||
|
||
describe('isIsoDate', () => {
|
||
it('строго ГГГГ-ММ-ДД и существующая дата', () => {
|
||
expect(isIsoDate('2024-12-31')).toBe(true);
|
||
expect(isIsoDate('2024-02-29')).toBe(true);
|
||
});
|
||
it('иной формат и несуществующая дата — нет', () => {
|
||
for (const text of ['2024-2-1', '2024-02-30', '2023-02-29', '31.12.2024', '', ' 2024-12-31', '2024-13-01']) {
|
||
expect(isIsoDate(text), text).toBe(false);
|
||
}
|
||
});
|
||
});
|