From 9e74deb969eee1d381e29aae935f3095385165b0 Mon Sep 17 00:00:00 2001 From: Patodo Date: Thu, 17 Sep 2026 21:22:50 +0800 Subject: [PATCH] test: give the cross-instance ticket test a load-proof budget `allows only one winner across independent store instances` drives 8 independent store instances through the real filesystem across 12 rounds, so it measures cross-instance atomicity rather than latency. It needs ~3.9s locally, which the default 5s budget turns into a flake on a loaded CI runner. That flake failed PR #3's verify job once and then failed the v0.2.6 release source-gate, which runs the whole localapp suite before it will build anything. Raise only this test's timeout; the assertions stay as they are. --- packages/localapp/tests/click-ticket-store.test.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/localapp/tests/click-ticket-store.test.ts b/packages/localapp/tests/click-ticket-store.test.ts index 2433aa4..ffd4310 100644 --- a/packages/localapp/tests/click-ticket-store.test.ts +++ b/packages/localapp/tests/click-ticket-store.test.ts @@ -44,7 +44,10 @@ describe("ClickTicketStore", () => { expect(await tickets.consume("invalid-ticket-value")).toBeNull(); }); - it("allows only one winner across independent store instances", async () => { + // 8 independent instances contend through the real filesystem across 12 + // rounds, so this asserts cross-instance atomicity rather than latency: the + // default 5s budget is a load-dependent flake on CI runners. + it("allows only one winner across independent store instances", { timeout: 30_000 }, async () => { const { delivery, now } = await stores(); await delivery.baseline("local", 0); const instances = [delivery, ...Array.from({ length: 7 }, () => new DeliveryStore({ statePath: delivery.statePath, now }))];