1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
import {
getDateWithUTC,
newDateAsLocaleTime,
nSecondsAfter,
nSecondsBefore,
isToday,
} from '~/lib/utils/datetime/date_calculation_utility';
import { useFakeDate } from 'helpers/fake_date';
describe('newDateAsLocaleTime', () => {
it.each`
string | expected
${'2022-03-22'} | ${new Date('2022-03-22T00:00:00.000Z')}
${'2022-03-22T00:00:00.000Z'} | ${new Date('2022-03-22T00:00:00.000Z')}
${2022} | ${null}
${[]} | ${null}
${{}} | ${null}
${true} | ${null}
${null} | ${null}
${undefined} | ${null}
`('returns $expected given $string', ({ string, expected }) => {
expect(newDateAsLocaleTime(string)).toEqual(expected);
});
});
describe('getDateWithUTC', () => {
it.each`
date | expected
${new Date('2022-03-22T01:23:45.678Z')} | ${new Date('2022-03-22T00:00:00.000Z')}
${new Date('1999-12-31T23:59:59.999Z')} | ${new Date('1999-12-31T00:00:00.000Z')}
${2022} | ${null}
${[]} | ${null}
${{}} | ${null}
${true} | ${null}
${null} | ${null}
${undefined} | ${null}
`('returns $expected given $string', ({ date, expected }) => {
expect(getDateWithUTC(date)).toEqual(expected);
});
});
describe('nSecondsAfter', () => {
const start = new Date('2022-03-22T01:23:45.678Z');
it.each`
date | seconds | expected
${start} | ${0} | ${start}
${start} | ${1} | ${new Date('2022-03-22T01:23:46.678Z')}
${start} | ${5} | ${new Date('2022-03-22T01:23:50.678Z')}
${start} | ${60} | ${new Date('2022-03-22T01:24:45.678Z')}
${start} | ${3600} | ${new Date('2022-03-22T02:23:45.678Z')}
${start} | ${86400} | ${new Date('2022-03-23T01:23:45.678Z')}
`('returns $expected given $string', ({ date, seconds, expected }) => {
expect(nSecondsAfter(date, seconds)).toEqual(expected);
});
});
describe('nSecondsBefore', () => {
const start = new Date('2022-03-22T01:23:45.678Z');
it.each`
date | seconds | expected
${start} | ${0} | ${start}
${start} | ${1} | ${new Date('2022-03-22T01:23:44.678Z')}
${start} | ${5} | ${new Date('2022-03-22T01:23:40.678Z')}
${start} | ${60} | ${new Date('2022-03-22T01:22:45.678Z')}
${start} | ${3600} | ${new Date('2022-03-22T00:23:45.678Z')}
${start} | ${86400} | ${new Date('2022-03-21T01:23:45.678Z')}
`('returns $expected given $string', ({ date, seconds, expected }) => {
expect(nSecondsBefore(date, seconds)).toEqual(expected);
});
});
describe('isToday', () => {
useFakeDate(2022, 11, 5);
describe('when date is today', () => {
it('returns `true`', () => {
expect(isToday(new Date(2022, 11, 5))).toBe(true);
});
});
describe('when date is not today', () => {
it('returns `false`', () => {
expect(isToday(new Date(2022, 11, 6))).toBe(false);
});
});
});
|