import { describe, expect, test } from "bun:test"; import { rememberStart, takeStart } from "../src/dispatch/late_failure"; describe("late start failures", () => { test("a remembered start is returned once, then forgotten", () => { rememberStart("c1", "job-1"); expect(takeStart("c1")).toBe("job-1"); expect(takeStart("c1")).toBeUndefined(); }); test("a command nobody started is unknown", () => { expect(takeStart("never-sent")).toBeUndefined(); }); test("an hour-old start is dropped rather than failing a job long since resolved", () => { const longAgo = Date.now() - 2 * 60 * 60 * 1000; rememberStart("old", "job-old", longAgo); rememberStart("new", "job-new"); expect(takeStart("old")).toBeUndefined(); expect(takeStart("new")).toBe("job-new"); }); test("the table is bounded", () => { for (let i = 0; i < 1500; i++) rememberStart(`bulk-${i}`, `job-${i}`); expect(takeStart("bulk-0")).toBeUndefined(); expect(takeStart("bulk-1499")).toBe("job-1499"); }); });