summaryrefslogtreecommitdiff
path: root/src/util/date-time.test.js
blob: 9dce202ba65dcbc3d02a69c5fc310603c862e1d6 (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
import {convertSecondsToFormattedTime, parseDateTime} from "./date-time";

describe("date-time parsing", () => {
    it("reads components properly", () => {
        const dateString = "2017-09-27T20:55:01";
        const parsedDate = parseDateTime(dateString);

        expect(parsedDate.year).toEqual(2017);
        expect(parsedDate.month).toEqual(9);
        expect(parsedDate.day).toEqual(27);
        expect(parsedDate.hour).toEqual(20);
        expect(parsedDate.minute).toEqual(55);
        expect(parsedDate.second).toEqual(1);
    });
});

describe("tick formatting", () => {
    it("returns '0s' for numbers <= 0", () => {
        expect(convertSecondsToFormattedTime(-1)).toEqual("0s");
        expect(convertSecondsToFormattedTime(0)).toEqual("0s");
    });
    it("returns only seconds for values under a minute", () => {
        expect(convertSecondsToFormattedTime(1)).toEqual("1s");
        expect(convertSecondsToFormattedTime(59)).toEqual("59s");
    });
    it("returns seconds and minutes for values under an hour", () => {
        expect(convertSecondsToFormattedTime(60)).toEqual("1m00s");
        expect(convertSecondsToFormattedTime(61)).toEqual("1m01s");
        expect(convertSecondsToFormattedTime(3599)).toEqual("59m59s");
    });
    it("returns full time for values over an hour", () => {
        expect(convertSecondsToFormattedTime(3600)).toEqual("1h00m00s");
        expect(convertSecondsToFormattedTime(3601)).toEqual("1h00m01s");
    });
});