Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/openstatus. ๐ซ Status page with uptime monitoring & API monitoring as code ๐ซ openstatus.dev
bun drizzle-orm monitoring monitoring-as-code nextjs observability on-call open-source shadcn-ui status-page statuspage synthetic-monitoring tinybird turso uptime uptime-checker uptime-monitor
Something went wrong. Try again.
2.4 kB ยท 73 lines
TypeScript
at main
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374import { expect } from "@std/expect";import { describe, test } from "@std/testing/bdd";
import { formatDateTime, formatDateTimeRange, formatDay, formatElapsed, formatLongDay, formatShortDay, plural,} from "../emails/_components/format";
describe("email date formatting", () => { test("timestamps carry an explicit UTC suffix", () => { expect(formatDateTime("2026-09-18T12:37:00Z")).toBe("18 Sep, 12:37 UTC"); expect(formatDateTime(new Date("2026-10-13T00:05:00Z"))).toBe( "13 Oct, 00:05 UTC", ); });
test("timestamps are rendered in UTC regardless of the offset given", () => { expect(formatDateTime("2026-09-18T23:30:00-02:00")).toBe( "19 Sep, 01:30 UTC", ); });
test("day-only dates drop the suffix", () => { expect(formatDay("2026-09-25T00:00:00Z")).toBe("Fri 25 Sep 2026"); expect(formatDay("2026-09-25T00:00:00Z")).not.toContain("UTC"); expect(formatLongDay("2026-09-25T00:00:00Z")).toBe("Friday 25 September"); expect(formatShortDay("2026-09-25T00:00:00Z")).toBe("25 Sep"); });
test("unparseable input is returned as-is", () => { expect(formatDateTime("Mon - Tue")).toBe("Mon - Tue"); expect(formatDay("soon")).toBe("soon"); expect(formatDateTimeRange("soon", "later")).toBe("soon - later"); });
test("ranges repeat the day only when it changes", () => { expect( formatDateTimeRange("2026-10-12T22:00:00Z", "2026-10-13T01:00:00Z"), ).toBe("12 Oct, 22:00 - 13 Oct, 01:00 UTC"); expect( formatDateTimeRange("2026-10-12T22:00:00Z", "2026-10-12T23:30:00Z"), ).toBe("12 Oct, 22:00 - 23:30 UTC"); // same calendar day in another year must still show the end date expect( formatDateTimeRange("2026-12-31T22:00:00Z", "2027-12-31T01:00:00Z"), ).toBe("31 Dec, 22:00 - 31 Dec, 01:00 UTC"); });
test("elapsed time", () => { expect(formatElapsed("2026-09-18T10:23:00Z", "2026-09-18T12:37:00Z")).toBe( "2h 14m", ); expect(formatElapsed("2026-09-18T10:23:00Z", "2026-09-18T10:50:00Z")).toBe( "27m", ); expect(formatElapsed("2026-09-18T10:00:00Z", "2026-09-20T13:00:00Z")).toBe( "2d 3h", ); expect(formatElapsed("2026-09-18T12:00:00Z", "2026-09-18T10:00:00Z")).toBe( "0m", ); });
test("plural", () => { expect(plural(1, "monitor")).toBe("1 monitor"); expect(plural(3, "monitor")).toBe("3 monitors"); });});