import { beforeEach, describe, expect, mock, test } from "bun:test"; import { fakeD1 } from "../metering/fake-d1.test-helper"; let d1 = fakeD1(); mock.module("cloudflare:workers", () => ({ DurableObject: class {}, env: { get DB() { return d1.binding; }, PUBLIC_URL: "https://forge.test", }, waitUntil: () => undefined, })); const { settleDeployment } = await import("./deployments"); function deployment(): { status: string; url: string | null; updated_at: number } { return d1.db.query("SELECT status, url, updated_at FROM deployments WHERE job_id = 'j1'").get() as never; } beforeEach(() => { d1 = fakeD1(); d1.db.exec(` CREATE TABLE workflow_jobs (id TEXT PRIMARY KEY, outputs TEXT); CREATE TABLE deployments (job_id TEXT, status TEXT, url TEXT, updated_at INTEGER); INSERT INTO workflow_jobs VALUES ('j1', NULL); INSERT INTO deployments VALUES ('j1', 'in_progress', NULL, 0); `); }); describe("settleDeployment under duplicate completions", () => { test("a repeat or late call with another conclusion leaves the settled deployment alone", async () => { await settleDeployment("j1", "cancelled"); const settled = deployment(); expect(settled.status).toBe("cancelled"); d1.db.exec(`UPDATE workflow_jobs SET outputs = '{"__gitfor_environment_url":"https://late.example"}'`); await settleDeployment("j1", "success"); await settleDeployment("j1", "cancelled"); expect(deployment()).toEqual(settled); }); });