File size: 2,190 Bytes
3144483 | 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 55 56 57 58 59 60 61 62 63 64 | import { describe, expect, it } from "vitest";
import {
resolveAdmittedCronCompletionStatus,
resolveCronCompletionStatus,
} from "./completion-status.js";
describe("resolveAdmittedCronCompletionStatus", () => {
it("fails a stale-suppressed default announce delivery so the one-shot is retained (#131491)", () => {
// The stale-run guard records a plain not-delivered outcome with no
// suppression reason; requested delivery is required unless explicitly
// best-effort, so discarding the run's only deliverable can never resolve
// to a successful completion that would retire the one-shot.
expect(
resolveAdmittedCronCompletionStatus(
{ delivery: { mode: "announce" } },
"ok",
"not-delivered",
),
).toBe("failed");
});
it("keeps intentional silence successful without claiming delivery", () => {
expect(
resolveAdmittedCronCompletionStatus(
{ delivery: { mode: "announce" } },
"ok",
"not-delivered",
"silent",
),
).toBe("succeeded");
});
it("keeps delivered and error outcomes unchanged", () => {
expect(
resolveAdmittedCronCompletionStatus({ delivery: { mode: "announce" } }, "ok", "delivered"),
).toBe("succeeded");
expect(
resolveAdmittedCronCompletionStatus(
{ delivery: { mode: "announce" } },
"error",
"not-delivered",
),
).toBe("failed");
expect(
resolveAdmittedCronCompletionStatus({ delivery: { mode: "announce" } }, "ok", "unknown"),
).toBe("unknown");
expect(
resolveAdmittedCronCompletionStatus({ delivery: { mode: "none" } }, "ok", "not-requested"),
).toBe("succeeded");
});
});
describe("resolveCronCompletionStatus", () => {
it("resolves legacy stored facts without a required-delivery contract", () => {
expect(resolveCronCompletionStatus({ status: "ok", deliveryStatus: "not-requested" })).toBe(
"succeeded",
);
expect(resolveCronCompletionStatus({ status: "ok", delivered: true })).toBe("succeeded");
expect(resolveCronCompletionStatus({ status: "ok", deliveryStatus: "not-delivered" })).toBe(
"unknown",
);
});
});
|