From 5be6fc35022cfbbb0bcfbcfdee78802f953b02d3 Mon Sep 17 00:00:00 2001 From: Dotta Date: Mon, 2 Nov 2026 12:07:39 -0600 Subject: [PATCH] test(server): complete nested assignment work before quiet proof Co-Authored-By: Paperclip --- server/src/__tests__/issue-recovery-assignments.test.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server/src/__tests__/issue-recovery-assignments.test.ts b/server/src/__tests__/issue-recovery-assignments.test.ts index 46ee33936ac..e91b0b5adfe 100644 --- a/server/src/__tests__/issue-recovery-assignments.test.ts +++ b/server/src/__tests__/issue-recovery-assignments.test.ts @@ -14,7 +14,9 @@ describeIssueRecovery("issue recovery production producers and assignments", () await finish(issue.id); await quiet(); }, 90_000); it("fences nested assignment writes until outer commit and ignores rollback", async () => { - const f = await fixture(); await start(); await quiet(); + const f = await fixture(); + const providerFailures = await state.completingProvider(f); + await start(); await quiet(); let committedId = ""; await state.db.transaction(async outer => { await outer.transaction(async nested => { @@ -33,6 +35,8 @@ describeIssueRecovery("issue recovery production producers and assignments", () })).rejects.toThrow("rollback control"); await quiet(); expect(await state.db.select().from(issues).where(eq(issues.title, "Nested rollback"))).toHaveLength(0); + expect(providerFailures).toEqual([]); + expect(await state.db.select().from(heartbeatRuns)).toHaveLength(1); }, 90_000); it("retains the first committed assignment during drain and executes on resume", async () => { const f = await fixture(); await start(); await quiet(); state.draining = true;