fix(ui): guard next run weekday formatting

This commit is contained in:
Peter Steinberger
2026-05-30 07:12:51 -04:00
parent 8f3d3a549d
commit c2f0d811e7
2 changed files with 18 additions and 1 deletions

View File

@@ -0,0 +1,13 @@
import { describe, expect, it } from "vitest";
import { formatNextRun } from "./presenter.ts";
describe("formatNextRun", () => {
it("returns n/a for Date-invalid finite timestamps", () => {
expect(formatNextRun(8_640_000_000_000_001)).toBe("n/a");
});
it("formats valid timestamps with weekday context", () => {
expect(formatNextRun(0)).toBe("n/a");
expect(formatNextRun(1_700_000_000_000)).toContain(",");
});
});

View File

@@ -1,6 +1,7 @@
import { t } from "../i18n/index.ts";
import { resolveCronJobLastRunStatus } from "./cron-status.ts";
import {
formatDateMs,
formatRelativeTimestamp,
formatDurationHuman,
formatMs,
@@ -25,7 +26,10 @@ export function formatNextRun(ms?: number | null) {
if (!ms) {
return t("common.na");
}
const weekday = new Date(ms).toLocaleDateString(undefined, { weekday: "short" });
const weekday = formatDateMs(ms, { weekday: "short" });
if (weekday === t("common.na")) {
return weekday;
}
return `${weekday}, ${formatMs(ms)} (${formatRelativeTimestamp(ms)})`;
}