// Cron cause display tests cover cron error-cause formatting for users. import { describe, expect, it } from "vitest"; import { defaultRuntime } from "../../runtime.js"; import { printCronJson } from "./shared.js"; describe("printCronJson cause display", () => { it("adds an additive cause without changing raw cron run errors", () => { let written: unknown; const original = defaultRuntime.writeJson; defaultRuntime.writeJson = (value: unknown) => { written = value; }; try { printCronJson({ entries: [ { ts: 1, jobId: "job-1", action: "finished", status: "error", errorReason: "timeout", error: "cron: job execution timed out", }, ], }); } finally { defaultRuntime.writeJson = original; } const result = written as { entries: Array> }; expect(result.entries[0]?.cause).toBe("timeout"); expect(result.entries[0]?.error).toBe("cron: job execution timed out"); expect(result.entries[0]?.errorReason).toBe("timeout"); }); it("does not add cause fields to non-run-log entries", () => { let written: unknown; const original = defaultRuntime.writeJson; defaultRuntime.writeJson = (value: unknown) => { written = value; }; try { printCronJson({ entries: [{ errorReason: "timeout", status: "error" }], }); } finally { defaultRuntime.writeJson = original; } const result = written as { entries: Array> }; expect(result.entries[0]?.cause).toBeUndefined(); }); });