mirror of
https://github.com/formbricks/formbricks.git
synced 2026-04-21 03:03:25 -05:00
c4cf468c7e
Co-authored-by: Dhruwang <dhruwangjariwala18@gmail.com>
71 lines
2.1 KiB
TypeScript
71 lines
2.1 KiB
TypeScript
import { describe, expect, test } from "vitest";
|
|
import {
|
|
diffInDays,
|
|
formatDateForDisplay,
|
|
formatDateTimeForDisplay,
|
|
formatDateWithOrdinal,
|
|
getFormattedDateTimeString,
|
|
isValidDateString,
|
|
} from "./datetime";
|
|
|
|
describe("datetime utils", () => {
|
|
test("diffInDays calculates the difference in days between two dates", () => {
|
|
const date1 = new Date("2025-05-01");
|
|
const date2 = new Date("2025-05-06");
|
|
expect(diffInDays(date1, date2)).toBe(5);
|
|
});
|
|
|
|
test("formatDateWithOrdinal formats a date using the provided locale", () => {
|
|
// Create a date that's fixed to May 6, 2025 at noon UTC
|
|
// Using noon ensures the date won't change in most timezones
|
|
const date = new Date(Date.UTC(2025, 4, 6, 12, 0, 0));
|
|
|
|
expect(formatDateWithOrdinal(date)).toBe(
|
|
new Intl.DateTimeFormat("en-US", {
|
|
weekday: "long",
|
|
year: "numeric",
|
|
month: "long",
|
|
day: "numeric",
|
|
}).format(date)
|
|
);
|
|
});
|
|
|
|
test("formatDateForDisplay uses the provided locale", () => {
|
|
const date = new Date(Date.UTC(2025, 4, 6, 12, 0, 0));
|
|
|
|
expect(formatDateForDisplay(date, "de-DE")).toBe(
|
|
new Intl.DateTimeFormat("de-DE", {
|
|
year: "numeric",
|
|
month: "short",
|
|
day: "numeric",
|
|
}).format(date)
|
|
);
|
|
});
|
|
|
|
test("formatDateTimeForDisplay uses the provided locale", () => {
|
|
const date = new Date(Date.UTC(2025, 4, 6, 12, 30, 0));
|
|
|
|
expect(formatDateTimeForDisplay(date, "fr-FR")).toBe(
|
|
new Intl.DateTimeFormat("fr-FR", {
|
|
year: "numeric",
|
|
month: "long",
|
|
day: "numeric",
|
|
hour: "numeric",
|
|
minute: "2-digit",
|
|
}).format(date)
|
|
);
|
|
});
|
|
|
|
test("isValidDateString validates correct date strings", () => {
|
|
expect(isValidDateString("2025-05-06")).toBeTruthy();
|
|
expect(isValidDateString("06-05-2025")).toBeTruthy();
|
|
expect(isValidDateString("2025/05/06")).toBeFalsy();
|
|
expect(isValidDateString("invalid-date")).toBeFalsy();
|
|
});
|
|
|
|
test("getFormattedDateTimeString formats a date-time string correctly", () => {
|
|
const date = new Date("2025-05-06T14:30:00");
|
|
expect(getFormattedDateTimeString(date)).toBe("2025-05-06 14:30:00");
|
|
});
|
|
});
|