import { beforeEach, describe, expect, mock, test } from "bun:test"; import { fakeD1 } from "../metering/fake-d1.test-helper"; let d1 = fakeD1(); const fakeEnv: Record = { get DB() { return d1.binding; }, CACHE_BYTES_PER_REPO: "1000", }; mock.module("cloudflare:workers", () => ({ DurableObject: class {}, env: fakeEnv, waitUntil: () => undefined })); const { assertCacheFits } = await import("./cache-api"); beforeEach(() => { d1 = fakeD1(); }); describe("cache quota", () => { test("in-flight reservations count, so concurrent saves can't overshoot", async () => { d1.db.exec("INSERT INTO action_caches VALUES ('r1', 600, 'a'), ('r1', -300, 'b')"); await assertCacheFits("r1"); d1.db.exec("INSERT INTO action_caches VALUES ('r1', -200, 'c')"); await expect(assertCacheFits("r1")).rejects.toMatchObject({ status: 413 }); }); });