mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2025-11-13 13:55:14 +00:00
75 lines
2.0 KiB
TypeScript
75 lines
2.0 KiB
TypeScript
import { formatDateTime } from "src/locale";
|
|
import { afterAll, beforeAll, describe, expect, it } from "vitest";
|
|
|
|
describe("DateFormatter", () => {
|
|
// Keep a reference to the real Intl to restore later
|
|
const RealIntl = global.Intl;
|
|
const desiredTimeZone = "Europe/London";
|
|
const desiredLocale = "en-GB";
|
|
|
|
beforeAll(() => {
|
|
// Ensure Node-based libs using TZ behave deterministically
|
|
try {
|
|
process.env.TZ = desiredTimeZone;
|
|
} catch {
|
|
// ignore if not available
|
|
}
|
|
|
|
// Mock Intl.DateTimeFormat so formatting is stable regardless of host
|
|
const MockedDateTimeFormat = class extends RealIntl.DateTimeFormat {
|
|
constructor(_locales?: string | string[], options?: Intl.DateTimeFormatOptions) {
|
|
super(desiredLocale, {
|
|
...options,
|
|
timeZone: desiredTimeZone,
|
|
});
|
|
}
|
|
} as unknown as typeof Intl.DateTimeFormat;
|
|
|
|
global.Intl = {
|
|
...RealIntl,
|
|
DateTimeFormat: MockedDateTimeFormat,
|
|
};
|
|
});
|
|
|
|
afterAll(() => {
|
|
// Restore original Intl after tests
|
|
global.Intl = RealIntl;
|
|
});
|
|
|
|
it("format date from iso date", () => {
|
|
const value = "2024-01-01T00:00:00.000Z";
|
|
const text = formatDateTime(value);
|
|
expect(text).toBe("Monday, 01/01/2024, 12:00:00 am");
|
|
});
|
|
|
|
it("format date from unix timestamp number", () => {
|
|
const value = 1762476112;
|
|
const text = formatDateTime(value);
|
|
expect(text).toBe("Friday, 07/11/2025, 12:41:52 am");
|
|
});
|
|
|
|
it("format date from unix timestamp string", () => {
|
|
const value = "1762476112";
|
|
const text = formatDateTime(value);
|
|
expect(text).toBe("Friday, 07/11/2025, 12:41:52 am");
|
|
});
|
|
|
|
it("catch bad format from string", () => {
|
|
const value = "this is not a good date";
|
|
const text = formatDateTime(value);
|
|
expect(text).toBe("this is not a good date");
|
|
});
|
|
|
|
it("catch bad format from number", () => {
|
|
const value = -100;
|
|
const text = formatDateTime(value);
|
|
expect(text).toBe("-100");
|
|
});
|
|
|
|
it("catch bad format from number as string", () => {
|
|
const value = "-100";
|
|
const text = formatDateTime(value);
|
|
expect(text).toBe("-100");
|
|
});
|
|
});
|