UNPKG

since-time-ago-typescript

Version:

typescript package to convert time stamp into a readable format

60 lines (47 loc) 1.92 kB
// import since from "./index"; import since from './index' const second = 1000 const minute = 60 * 1000; const hour = 60 * minute; const day = 24 * hour; const month = 30 * day; const year = 12 * month; const nowTimestamp = new Date().getTime(); const fiveMinutesAgoTimestamp = nowTimestamp - 5 * minute; const fiveSecondsAgoTimestamp = nowTimestamp - 5 * second; const fiveHoursAgoTimestamp = nowTimestamp - 5 * hour; const fiveDaysAgoTimestamp = nowTimestamp - 5 * day; const fiveMonthsAgoTimestamp = nowTimestamp - 5 * month; const fiveYearsAgoTimestamp = nowTimestamp - 5 * year; it("returns undefined if no input argument provided", () => { expect(since()).toBeUndefined(); }); it("returns error if input is invalid timestamp", () => { expect.assertions(1); try { since("randomString"); } catch (e) { expect(e.message).toBe("Invalid timestamp passed to 'since()'"); } }); it("returns just now if time stamp is less than 2 seconds ago", () => { expect(since(nowTimestamp)).toBe("just now"); }); it("returns num seconds ago if time stamp is of a few seconds ago", () => { expect(since(fiveSecondsAgoTimestamp)).toBe("5 seconds ago"); }); it("returns num minutes ago if time stamp is of a few minutes ago", () => { expect(since(fiveMinutesAgoTimestamp)).toBe("5 minutes ago"); }); it("returns num hours ago if time stamp is of a few hours ago", () => { expect(since(fiveHoursAgoTimestamp)).toBe("5 hours ago"); }); it("returns num days ago if time stamp is of a few days ago", () => { expect(since(fiveDaysAgoTimestamp)).toBe("5 days ago"); }); it("returns num months ago if time stamp is of a few months ago", () => { expect(since(fiveMonthsAgoTimestamp)).toBe("5 months ago"); }); it("returns num years ago if time stamp is of a few years ago", () => { expect(since(fiveYearsAgoTimestamp)).toBe("5 years ago"); });