aboutsummaryrefslogtreecommitdiff
path: root/src/lib/utils/readable_time.test.ts
blob: 5d8ba271e9daa03e2e1db6339b05350d4116b38e (plain)
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
import { readableTime } from './readable_time';

describe('readableTime', () => {

  test('it shows negative time as 0', () => {

    const response = readableTime(-1000);

    expect(response.count).toBe(0);
    expect(response.label).toContain('seconds');
  });

  test('uses seconds as the smallest unit', () => {

    const response = readableTime(10);

    expect(response.count).toBe(0);
    expect(response.label).toContain('seconds');
  });

  test('correctly divides miliseconds into seconds', () => {

    const response = readableTime(4000);

    expect(response.count).toBe(4);
  });

  test('uses seconds if the time is < 1 minute', () => {

    const response = readableTime(59 * 1000);

    expect(response.label).toContain('seconds');
  });

  test('correctly divides miliseconds into minutes', () => {

    const response = readableTime(2 * 60 * 1000);

    expect(response.count).toBe(2);
  });

  test('uses minutes if the time is < 1 hour', () => {

    const response = readableTime(59 * 60 * 1000);

    expect(response.label).toContain('minutes');
  });

  test('correctly divides miliseconds into hours', () => {

    const response = readableTime(2 * 60 * 60 * 1000);

    expect(response.count).toBe(2);
  });

  test('uses hours if the time is < 1 days', () => {

    const response = readableTime(23 * 60 * 60 * 1000);

    expect(response.label).toContain('hours');
  });

  test('correctly divides miliseconds into days', () => {

    const response = readableTime(2 * 24 * 60 * 60 * 1000);

    expect(response.count).toBe(2);
  });

  test('uses days if the time is >= 1 day', () => {

    const response = readableTime(364 * 24 * 60 * 60 * 1000);

    expect(response.label).toContain('days');
  });

  test('uses days as the maximum unit', () => {

    const response = readableTime(Number.MAX_VALUE);

    expect(response.label).toContain('days');
  });
});