diff --git a/apps/server/test/e2e/e3-background-continues.test.ts b/apps/server/test/e2e/e3-background-continues.test.ts index ab951a0a..28646d98 100644 --- a/apps/server/test/e2e/e3-background-continues.test.ts +++ b/apps/server/test/e2e/e3-background-continues.test.ts @@ -62,8 +62,16 @@ describe.skipIf(!hasPg)("E3 关闭聊天不影响后台", () => { ); expect(run.finished_at).not.toBeNull(); expect(run.summary).toContain("已入库 1 个"); - const engineRun = await e.booted.ctx.engine.get(task.engine_run_id!); - expect(engineRun?.status).toBe("completed"); + // 业务表先落终态,引擎在最后一步返回后才把 run 标 completed:给这个窗口留时间(负载高时会有几百毫秒) + const engineRun = await waitFor( + async () => { + const r = await e.booted.ctx.engine.get(task.engine_run_id!); + return r?.status === "completed" ? r : null; + }, + 15_000, + "engine run completed", + ); + expect(engineRun.status).toBe("completed"); const t = await e.db.selectFrom("task").select("status").where("id", "=", task.id).executeTakeFirstOrThrow(); expect(t.status).toBe("succeeded"); const slot = await e.db