import { describe, expect, mock, test } from "bun:test"; mock.module("cloudflare:workers", () => ({ DurableObject: class {}, env: {} })); const { JobDoorbell } = await import("./job-doorbell-do"); function doorbell() { return Reflect.construct(JobDoorbell, [{}, {}]) as InstanceType; } describe("JobDoorbell", () => { test("a fresh doorbell rings so a cold start never strands queued jobs", async () => { expect((await doorbell().check()).ringing).toBe(true); }); test("silencing stops polling until the next ring", async () => { const bell = doorbell(); const first = await bell.check(); await bell.silence(first.version); expect((await bell.check()).ringing).toBe(false); await bell.ring(); expect((await bell.check()).ringing).toBe(true); }); test("a ring between check and silence is not lost", async () => { const bell = doorbell(); const seen = await bell.check(); await bell.ring(); await bell.silence(seen.version); expect((await bell.check()).ringing).toBe(true); }); });