You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.9 KiB
59 lines
1.9 KiB
import { describe, expect, it } from 'vitest';
|
|
|
|
import { formatDateTime } from './datetime';
|
|
|
|
describe('formatDateTime', () => {
|
|
it('formats the date to a string', () => {
|
|
expect(formatDateTime('2022-01-01').asString).toBe('January 1, 2022');
|
|
});
|
|
|
|
it('formats the date to relative time', () => {
|
|
const yesterday = new Date();
|
|
yesterday.setDate(yesterday.getDate() - 1);
|
|
expect(formatDateTime(yesterday.toISOString()).asRelativeTimeString).toBe(
|
|
'yesterday',
|
|
);
|
|
|
|
const threeWeeksAgo = new Date();
|
|
threeWeeksAgo.setDate(threeWeeksAgo.getDate() - 21);
|
|
expect(
|
|
formatDateTime(threeWeeksAgo.toISOString()).asRelativeTimeString,
|
|
).toBe('3 weeks ago');
|
|
});
|
|
|
|
it('format the date to an ISO string', () => {
|
|
let dateTime = formatDateTime('2022-01-01');
|
|
expect(dateTime.asISOString).toBe('2022-01-01T00:00:00.000Z');
|
|
|
|
expect(formatDateTime('2022-12-31').asISOString).toBe(
|
|
'2022-12-31T00:00:00.000Z',
|
|
);
|
|
});
|
|
|
|
it('should return whether date is fresh', () => {
|
|
const yesterday = new Date();
|
|
yesterday.setDate(yesterday.getDate() - 1);
|
|
expect(formatDateTime(yesterday.toISOString()).isFresh).toBe(true);
|
|
|
|
const fourDaysAgo = new Date();
|
|
fourDaysAgo.setDate(fourDaysAgo.getDate() - 4);
|
|
expect(formatDateTime(fourDaysAgo.toISOString()).isFresh).toBe(false);
|
|
|
|
const threeWeeksAgo = new Date();
|
|
threeWeeksAgo.setDate(threeWeeksAgo.getDate() - 21);
|
|
expect(formatDateTime(threeWeeksAgo.toISOString()).isFresh).toBe(false);
|
|
});
|
|
|
|
it('should handle invalid date strings', () => {
|
|
const invalidDateResult = {
|
|
asString: 'Invalid Date',
|
|
asISOString: 'Invalid Date',
|
|
asRelativeTimeString: 'Invalid Date',
|
|
isFresh: false,
|
|
};
|
|
|
|
expect(formatDateTime('2022-13-01')).toEqual(invalidDateResult);
|
|
expect(formatDateTime('foo')).toEqual(invalidDateResult);
|
|
expect(formatDateTime('')).toEqual(invalidDateResult);
|
|
});
|
|
});
|
|
|