






















@@ -82,6 +82,12 @@ function createChatEvent(params: {
8282} as unknown as EventFrame;
8383}
848485+async function waitForChatSend(requestMock: { mock: { calls: Array<readonly unknown[]> } }) {
86+await vi.waitFor(() =>
87+expect(requestMock.mock.calls.some((call) => call[0] === "chat.send")).toBe(true),
88+);
89+}
90+8591describe("ACP translator event ledger replay", () => {
8692it("loads complete ledger-backed sessions without the lossy Gateway transcript fallback", async () => {
8793const eventLedger = createInMemoryAcpEventLedger();
@@ -107,14 +113,7 @@ describe("ACP translator event ledger replay", () => {
107113firstConnection.__sessionUpdateMock.mockClear();
108114109115const promptPromise = firstAgent.prompt(createPromptRequest(created.sessionId, "Question"));
110-for (let attempt = 0; attempt < 10; attempt += 1) {
111-if (firstRequestMock.mock.calls.some((call) => call[0] === "chat.send")) {
112-break;
113-}
114-await new Promise<void>((resolve) => {
115-setImmediate(resolve);
116-});
117-}
116+await waitForChatSend(firstRequestMock);
118117const runId = firstSessionStore.getSession(created.sessionId)?.activeRunId;
119118if (!runId) {
120119throw new Error("Expected active ACP run");
@@ -243,14 +242,7 @@ describe("ACP translator event ledger replay", () => {
243242const listedPrompt = listedAgent.prompt(
244243createPromptRequest(firstSession.sessionKey, "Follow-up"),
245244);
246-for (let attempt = 0; attempt < 10; attempt += 1) {
247-if (listedRequestMock.mock.calls.some((call) => call[0] === "chat.send")) {
248-break;
249-}
250-await new Promise<void>((resolve) => {
251-setImmediate(resolve);
252-});
253-}
245+await waitForChatSend(listedRequestMock);
254246const listedRunId = listedSessionStore.getSession(firstSession.sessionKey)?.activeRunId;
255247if (!listedRunId) {
256248throw new Error("Expected listed ACP session to have an active run");
@@ -375,14 +367,7 @@ describe("ACP translator event ledger replay", () => {
375367}
376368377369const prompt = agent.prompt(createPromptRequest(created.sessionId, "Question"));
378-for (let attempt = 0; attempt < 10; attempt += 1) {
379-if (requestMock.mock.calls.some((call) => call[0] === "chat.send")) {
380-break;
381-}
382-await new Promise<void>((resolve) => {
383-setImmediate(resolve);
384-});
385-}
370+await waitForChatSend(requestMock);
386371await markIncompletePromise;
387372const runId = sessionStore.getSession(created.sessionId)?.activeRunId;
388373if (!runId) {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。