chore(release): 0.2.7
[risinglegends.git] / src / shared / time.test.ts
1 import { TimeManager } from "./time";
2
3 describe('TimeManager', () => {
4
5   const evenHours = [
6     '2023-01-01 00:00:00',
7     '2023-01-01 02:00:00',
8     '2023-01-01 04:00:00',
9     '2023-01-01 06:00:00',
10     '2023-01-01 08:00:00',
11     '2023-01-01 10:00:00',
12     '2023-01-01 12:00:00',
13     '2023-01-01 14:00:00',
14     '2023-01-01 16:00:00',
15     '2023-01-01 18:00:00',
16     '2023-01-01 20:00:00',
17     '2023-01-01 22:00:00',
18   ];
19
20   const oddHours = [
21     '2023-01-01 01:00:00',
22     '2023-01-01 03:00:00',
23     '2023-01-01 05:00:00',
24     '2023-01-01 07:00:00',
25     '2023-01-01 09:00:00',
26     '2023-01-01 11:00:00',
27     '2023-01-01 13:00:00',
28     '2023-01-01 15:00:00',
29     '2023-01-01 17:00:00',
30     '2023-01-01 19:00:00',
31     '2023-01-01 21:00:00',
32     '2023-01-01 23:00:00',
33   ];
34
35   evenHours.forEach(hour => {
36     it(`returns midnight for ${hour}`, () => {
37       jest.setSystemTime(new Date(hour));
38       const time = new TimeManager(120);
39
40       expect(time.get24Hour()).toBe(0);
41     });
42   });
43
44   oddHours.forEach(hour => {
45     it(`returns afternoon for ${hour}`, () => {
46       jest.setSystemTime(new Date(hour));
47       const time = new TimeManager(120);
48
49       expect(time.get24Hour()).toBe(12);
50     });
51   });
52   it('returns 0am for 2023-01-01 00:00:00', () => {
53       jest.setSystemTime(new Date('2023-01-01 00:00:00'));
54       const time = new TimeManager(120);
55
56       expect(time.getHour()).toBe(0);
57   });
58
59   it('returns 12pm for 2023-01-01 11:00:00', () => {
60       jest.setSystemTime(new Date('2023-01-01 11:00:00'));
61       const time = new TimeManager(120);
62
63       expect(time.getHour()).toBe(12);
64   });
65
66   it('returns 6h for 2023-01-01 00:30:00', () => {
67       jest.setSystemTime(new Date('2023-01-01 00:30:00'));
68       const time = new TimeManager(120);
69
70       expect(time.get24Hour()).toBe(6);
71   });
72
73   it('returns 21h for 2023-01-01 13:45:00', () => {
74       jest.setSystemTime(new Date('2023-01-01 13:45:00'));
75       const time = new TimeManager(120);
76
77       expect(time.get24Hour()).toBe(21);
78   });
79
80   it('returns the right gradient name for 2023-01-01 9:02', () => {
81       jest.setSystemTime(new Date('2023-01-01 9:02:00'));
82     const time = new TimeManager(120);
83
84     expect(time.gradientName()).toBe('sky-gradient-15');
85   });
86
87 });