From 3bcc66500f73eb9e0da299a0289cf24d6a5ed92c Mon Sep 17 00:00:00 2001 From: Dotta Date: Sat, 9 May 2026 16:20:28 -0500 Subject: [PATCH] Stabilize source-scoped recovery wake assertion Co-Authored-By: Paperclip --- .../heartbeat-process-recovery.test.ts | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/server/src/__tests__/heartbeat-process-recovery.test.ts b/server/src/__tests__/heartbeat-process-recovery.test.ts index 1a7cc7f992f..006fe19a732 100644 --- a/server/src/__tests__/heartbeat-process-recovery.test.ts +++ b/server/src/__tests__/heartbeat-process-recovery.test.ts @@ -748,16 +748,18 @@ describeEmbeddedPostgres("heartbeat orphaned process recovery", () => { )); expect(recoveryIssues).toHaveLength(0); - const wakeups = await db - .select() - .from(agentWakeupRequests) - .where(eq(agentWakeupRequests.agentId, input.agentId)); - const recoveryWakeup = wakeups.find((wakeup) => { - const payload = wakeup.payload as Record | null; - return payload?.issueId === input.issueId && - payload?.sourceIssueId === input.issueId && - payload?.recoveryActionId === action.id && - payload?.strandedRunId === input.runId; + const recoveryWakeup = await waitForValue(async () => { + const wakeups = await db + .select() + .from(agentWakeupRequests) + .where(eq(agentWakeupRequests.agentId, input.agentId)); + return wakeups.find((wakeup) => { + const payload = wakeup.payload as Record | null; + return payload?.issueId === input.issueId && + payload?.sourceIssueId === input.issueId && + payload?.recoveryActionId === action.id && + payload?.strandedRunId === input.runId; + }) ?? null; }); expect(recoveryWakeup).toMatchObject({ companyId: input.companyId,