File size: 1,660 Bytes
f778c12 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | // 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<Record<string, unknown>> };
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<Record<string, unknown>> };
expect(result.entries[0]?.cause).toBeUndefined();
});
});
|