2026-03-26 20:03:25 +00:00
|
|
|
import {
|
|
|
|
|
dateAgo,
|
|
|
|
|
monthDayYearFormat,
|
|
|
|
|
addedFromNow,
|
|
|
|
|
uploadedFromNow,
|
|
|
|
|
monthDayTimeFormat,
|
|
|
|
|
} from ".";
|
2024-03-26 14:46:33 +00:00
|
|
|
|
2024-08-29 22:51:46 +00:00
|
|
|
describe("date_format utilities", () => {
|
2024-03-26 14:46:33 +00:00
|
|
|
describe("uploadedFromNow util", () => {
|
2025-02-24 21:01:55 +00:00
|
|
|
it("returns an user friendly uploaded message", () => {
|
2024-03-26 14:46:33 +00:00
|
|
|
const currentDate = new Date();
|
|
|
|
|
currentDate.setDate(currentDate.getDate() - 2);
|
|
|
|
|
const twoDaysAgo = currentDate.toISOString();
|
|
|
|
|
|
|
|
|
|
expect(uploadedFromNow(twoDaysAgo)).toEqual("Uploaded 2 days ago");
|
|
|
|
|
});
|
|
|
|
|
});
|
2024-08-29 22:51:46 +00:00
|
|
|
|
2025-02-24 21:01:55 +00:00
|
|
|
describe("addedFromNow util", () => {
|
|
|
|
|
it("returns an user friendly added message", () => {
|
|
|
|
|
const currentDate = new Date();
|
|
|
|
|
currentDate.setDate(currentDate.getDate() - 2);
|
|
|
|
|
const twoDaysAgo = currentDate.toISOString();
|
|
|
|
|
|
|
|
|
|
expect(addedFromNow(twoDaysAgo)).toEqual("Added 2 days ago");
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
2024-08-29 22:51:46 +00:00
|
|
|
describe("monthDayYearFormat util", () => {
|
|
|
|
|
it("returns a date in the format of 'MonthName Date, Year' (e.g. January 01, 2024)", () => {
|
|
|
|
|
const date = "2024-11-29T00:00:00Z";
|
|
|
|
|
expect(monthDayYearFormat(date)).toEqual("November 29, 2024");
|
|
|
|
|
});
|
|
|
|
|
});
|
2025-01-20 10:39:46 +00:00
|
|
|
|
|
|
|
|
describe("dateAgo util", () => {
|
|
|
|
|
it("returns a user friendly date ago message from a date string", () => {
|
|
|
|
|
const currentDate = new Date();
|
|
|
|
|
currentDate.setDate(currentDate.getDate() - 2);
|
|
|
|
|
const twoDaysAgo = currentDate.toISOString();
|
|
|
|
|
|
|
|
|
|
expect(dateAgo(twoDaysAgo)).toEqual("2 days ago");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("returns a user friendly date ago message from a Date object", () => {
|
|
|
|
|
const date = new Date();
|
|
|
|
|
date.setDate(date.getDate() - 2);
|
|
|
|
|
|
|
|
|
|
expect(dateAgo(date)).toEqual("2 days ago");
|
|
|
|
|
});
|
|
|
|
|
});
|
2026-03-26 20:03:25 +00:00
|
|
|
|
|
|
|
|
describe("monthDayTimeFormat util", () => {
|
|
|
|
|
it("returns a formatted date string matching pattern 'Mon D, H:MM AM/PM'", () => {
|
|
|
|
|
const date = "2024-03-20T13:35:00Z";
|
|
|
|
|
const result = monthDayTimeFormat(date);
|
|
|
|
|
// Match pattern like "Mar 20, 1:35 PM" (exact time varies by timezone)
|
|
|
|
|
expect(result).toMatch(/^[A-Z][a-z]{2} \d{1,2}, \d{1,2}:\d{2} (AM|PM)$/);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("returns an empty string for invalid dates", () => {
|
|
|
|
|
expect(monthDayTimeFormat("invalid-date")).toEqual("");
|
|
|
|
|
});
|
|
|
|
|
});
|
2024-03-26 14:46:33 +00:00
|
|
|
});
|