diff --git a/server/src/__tests__/heartbeat-dependency-scheduling.test.ts b/server/src/__tests__/heartbeat-dependency-scheduling.test.ts index 454fa19244..bb875a3f21 100644 --- a/server/src/__tests__/heartbeat-dependency-scheduling.test.ts +++ b/server/src/__tests__/heartbeat-dependency-scheduling.test.ts @@ -100,17 +100,6 @@ describeEmbeddedPostgres("heartbeat dependency-aware queued run selection", () = }, 20_000); afterEach(async () => { - mockAdapterExecute.mockReset(); - mockAdapterExecute.mockImplementation(async () => ({ - exitCode: 0, - signal: null, - timedOut: false, - errorMessage: null, - summary: "Dependency-aware heartbeat test run.", - provider: "test", - model: "test-model", - })); - runningProcesses.clear(); let idlePolls = 0; for (let attempt = 0; attempt < 100; attempt += 1) { const runs = await db @@ -125,7 +114,22 @@ describeEmbeddedPostgres("heartbeat dependency-aware queued run selection", () = } await new Promise((resolve) => setTimeout(resolve, 50)); } - await new Promise((resolve) => setTimeout(resolve, 50)); + const runIds = await db + .select({ id: heartbeatRuns.id }) + .from(heartbeatRuns) + .then((runs) => runs.map((run) => run.id)); + await Promise.all(runIds.map((runId) => heartbeat.waitForRunExecutionDrain(runId))); + mockAdapterExecute.mockReset(); + mockAdapterExecute.mockImplementation(async () => ({ + exitCode: 0, + signal: null, + timedOut: false, + errorMessage: null, + summary: "Dependency-aware heartbeat test run.", + provider: "test", + model: "test-model", + })); + runningProcesses.clear(); await db.delete(environmentLeases); await db.delete(activityLog); await db.delete(companySkills);