cosmos-explorer/src/Explorer/Tables/QueryBuilder/DateTimeUtilities.test.ts
2020-05-25 21:30:55 -05:00

111 lines
4.6 KiB
TypeScript

import * as DateTimeUtilities from "./DateTimeUtilities";
describe("DateTimeUtilities", () => {
const testDateTime1 = new Date("Fri Jul 26 2019 17:03:02 GMT-0700 (Pacific Daylight Time)");
const testDateTime2 = new Date("Mon Dec 31 2018 16:00:00 GMT-0800 (Pacific Standard Time)");
const testUnixTime1 = 1564185782;
const testUnixTime2 = 1546300800;
const testTicks1 = "00636997825820000000";
const testTicks2 = "00636818976000000000";
describe("getLocalDateTime", () => {
it("should return right local time for date time 1", () => {
const time = DateTimeUtilities.getLocalDateTime(testDateTime1.toISOString());
expect(new Date(time).toLocaleString()).toBe(testDateTime1.toLocaleString());
});
it("should return right local time for date time 2", () => {
const time = DateTimeUtilities.getLocalDateTime(testDateTime2.toISOString());
expect(new Date(time).toLocaleString()).toBe(testDateTime2.toLocaleString());
});
});
describe("getUTCDateTime", () => {
it("should return right utc time for date time 1", () => {
const time = DateTimeUtilities.getUTCDateTime(testDateTime1.toISOString());
expect(time).toBe("2019-07-27T00:03:02.000Z");
});
it("should return right utc time for date time 2", () => {
const time = DateTimeUtilities.getUTCDateTime(testDateTime2.toISOString());
expect(time).toBe("2019-01-01T00:00:00.000Z");
});
});
describe("ensureDoubleDigits", () => {
it("should return correct double digits with input of single digit", () => {
const digits = DateTimeUtilities.ensureDoubleDigits(2);
expect(digits).toBe("02");
});
it("should return correct double digits with input of double digit", () => {
const digits = DateTimeUtilities.ensureDoubleDigits(53);
expect(digits).toBe("53");
});
it("should return correct double digits with input of multi digit", () => {
const digits = DateTimeUtilities.ensureDoubleDigits(321654);
expect(digits).toBe("32");
});
});
describe("ensureTripleDigits", () => {
it("should return correct triple digits with input of single digit", () => {
const digits = DateTimeUtilities.ensureTripleDigits(2);
expect(digits).toBe("002");
});
it("should return correct triple digits with double digit", () => {
const digits = DateTimeUtilities.ensureTripleDigits(53);
expect(digits).toBe("053");
});
it("should return correct triple digits with triple digit", () => {
const digits = DateTimeUtilities.ensureTripleDigits(344);
expect(digits).toBe("344");
});
it("should return correct triple digits with multi digit", () => {
const digits = DateTimeUtilities.ensureTripleDigits(321654);
expect(digits).toBe("321");
});
});
describe("convertUnixToJSDate", () => {
it("should convert unix number to JS Date for date time 1", () => {
const time = DateTimeUtilities.convertUnixToJSDate(testUnixTime1);
expect(time.toISOString()).toBe("2019-07-27T00:03:02.000Z");
});
it("should convert unix number to JS Date for date time 2", () => {
const time = DateTimeUtilities.convertUnixToJSDate(testUnixTime2);
expect(time.toISOString()).toBe(testDateTime2.toISOString());
});
});
describe("convertJSDateToUnix", () => {
it("should convert JS Date to unix number for date time 1", () => {
const time = DateTimeUtilities.convertJSDateToUnix(testDateTime1.toISOString());
expect(time).toBe(testUnixTime1);
});
it("should convert JS Date to unix number for date time 2", () => {
const time = DateTimeUtilities.convertJSDateToUnix(testDateTime2.toISOString());
expect(time).toBe(testUnixTime2);
});
});
describe("convertTicksToJSDate", () => {
it("should convert ticks to JS Date for date time 1", () => {
const time = DateTimeUtilities.convertTicksToJSDate(testTicks1);
expect(time.toISOString()).toBe(testDateTime1.toISOString());
});
it("should convert ticks to JS Date for date time 2", () => {
const time = DateTimeUtilities.convertTicksToJSDate(testTicks2);
expect(time.toISOString()).toBe(testDateTime2.toISOString());
});
});
describe("convertJSDateToTicksWithPadding", () => {
it("should convert JS Date to ticks for date time 1", () => {
const time = DateTimeUtilities.convertJSDateToTicksWithPadding(testDateTime1.toISOString());
expect(time).toBe(testTicks1);
});
it("should convert JS Date to ticks for date time 2", () => {
const time = DateTimeUtilities.convertJSDateToTicksWithPadding(testDateTime2.toISOString());
expect(time).toBe(testTicks2);
});
});
});