
























@@ -108,6 +108,12 @@ function flushAsync() {
108108return tick().then(tick).then(tick);
109109}
110110111+function waitForEventLoopTurn(): Promise<void> {
112+return new Promise<void>((resolve) => {
113+setImmediate(resolve);
114+});
115+}
116+111117function getPromptErrorCode(result: AgentHarnessAttemptResult): string | undefined {
112118return (result.promptError as { code?: string } | undefined)?.code;
113119}
@@ -343,7 +349,7 @@ describe("runCopilotAttempt", () => {
343349 createToolBridge,
344350pool: makeFakePool(sdk),
345351});
346-await new Promise<void>((resolve) => setImmediate(resolve));
352+await waitForEventLoopTurn();
347353348354expect(beforePromptBuild).toHaveBeenCalledWith(
349355expect.objectContaining({ prompt: "hello" }),
@@ -499,7 +505,7 @@ describe("runCopilotAttempt", () => {
499505expect(sdk.sessions[0]?.rpc.history.cancelBackgroundCompaction).toHaveBeenCalledTimes(1);
500506expect(sdk.sessions[0]?.disconnect).toHaveBeenCalledTimes(1);
501507expect(sdk.client.deleteSession).toHaveBeenCalledWith("sess-1");
502-expect(pool.release).toHaveBeenCalledTimes(1);
508+expect(pool.release.mock.calls).toHaveLength(1);
503509});
504510505511it("cancels retained compaction when the caller aborts after a turn result", async () => {
@@ -602,7 +608,7 @@ describe("runCopilotAttempt", () => {
602608await runCopilotAttempt(makeParams({ hooksConfig: { onUserPromptSubmitted } } as never), {
603609pool: makeFakePool(sdk),
604610});
605-await new Promise<void>((resolve) => setImmediate(resolve));
611+await waitForEventLoopTurn();
606612607613expect(onUserPromptSubmitted).toHaveBeenCalledWith(
608614expect.objectContaining({ prompt: "hello" }),
@@ -668,7 +674,7 @@ describe("runCopilotAttempt", () => {
668674pool: makeFakePool(sdk),
669675},
670676);
671-await new Promise<void>((resolve) => setImmediate(resolve));
677+await waitForEventLoopTurn();
672678673679expect(result.aborted).toBe(true);
674680expect(sdk.sessions[0]?.sendAndWait).not.toHaveBeenCalled();
@@ -695,7 +701,7 @@ describe("runCopilotAttempt", () => {
695701settled = true;
696702return result;
697703});
698-await new Promise<void>((resolve) => setImmediate(resolve));
704+await waitForEventLoopTurn();
699705700706expect(agentEnd).toHaveBeenCalledTimes(1);
701707expect(settled).toBe(false);
@@ -1935,7 +1941,7 @@ describe("runCopilotAttempt", () => {
19351941expect(sdk.sessions[0]?.rpc.history.cancelBackgroundCompaction).toHaveBeenCalledTimes(1);
19361942expect(sdk.sessions[0]?.disconnect).toHaveBeenCalledTimes(1);
19371943expect(sdk.client.deleteSession).toHaveBeenCalledWith("sess-1");
1938-expect(pool.release).toHaveBeenCalledTimes(1);
1944+expect(pool.release.mock.calls).toHaveLength(1);
19391945});
1940194619411947it("cancels deferred cleanup when the timed-out caller aborts", async () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。