55 lines
1.6 KiB
TypeScript
55 lines
1.6 KiB
TypeScript
import tk from "timekeeper"
|
|
import * as date from "../../src/helpers/date"
|
|
|
|
const frozenDate = new Date("2025-03-06T11:38:41.000Z")
|
|
tk.freeze(frozenDate)
|
|
|
|
describe("date helper", () => {
|
|
describe("difference", () => {
|
|
it("should return the difference between two dates", () => {
|
|
const result = date.difference(
|
|
"2021-01-02T12:34:56.789Z",
|
|
"2021-01-01T01:00:00.000Z"
|
|
)
|
|
const expected =
|
|
1 * 24 * 60 * 60 * 1000 + // 1 day
|
|
11 * 60 * 60 * 1000 + // 11 hours
|
|
34 * 60 * 1000 + // 34 minutes
|
|
56 * 1000 + // seconds
|
|
789 // milliseconds
|
|
expect(result).toEqual(expected)
|
|
})
|
|
|
|
it("should be able to set the time unit", () => {
|
|
const result = date.difference(
|
|
"2021-01-02T12:34:56",
|
|
"2021-01-01T01:00:00",
|
|
"days"
|
|
)
|
|
expect(result).toEqual(1)
|
|
})
|
|
})
|
|
|
|
describe("durationFromNow", () => {
|
|
it("should return the difference between two close dates", () => {
|
|
const result = date.durationFromNow("2025-03-06T11:38:43.000Z")
|
|
expect(result).toEqual("a few seconds")
|
|
})
|
|
|
|
it("should return the difference between two days hours apart", () => {
|
|
const result = date.durationFromNow("2025-03-06T01:00:00.000Z")
|
|
expect(result).toEqual("11 hours")
|
|
})
|
|
|
|
it("accepts days in the past", () => {
|
|
const result = date.durationFromNow("2025-03-01")
|
|
expect(result).toEqual("5 days")
|
|
})
|
|
|
|
it("accepts days in the future", () => {
|
|
const result = date.durationFromNow("2025-03-08")
|
|
expect(result).toEqual("2 days")
|
|
})
|
|
})
|
|
})
|