refactor(cron): dedupe interim retry fallback assertions

This commit is contained in:
Peter Steinberger 2026-03-07 17:00:46 +00:00
parent d103918891
commit 8fd043abac
1 changed files with 21 additions and 30 deletions

View File

@ -17,6 +17,21 @@ const runCronIsolatedAgentTurn = await loadRunCronIsolatedAgentTurn();
describe("runCronIsolatedAgentTurn — interim ack retry", () => {
setupRunCronIsolatedAgentTurnSuite();
const mockFallbackPassthrough = () => {
runWithModelFallbackMock.mockImplementation(async ({ provider, model, run }) => {
const result = await run(provider, model);
return { result, provider, model, attempts: [] };
});
};
const runTurnAndExpectOk = async (expectedFallbackCalls: number, expectedAgentCalls: number) => {
const result = await runCronIsolatedAgentTurn(makeIsolatedAgentTurnParams());
expect(result.status).toBe("ok");
expect(runWithModelFallbackMock).toHaveBeenCalledTimes(expectedFallbackCalls);
expect(runEmbeddedPiAgentMock).toHaveBeenCalledTimes(expectedAgentCalls);
return result;
};
const usePayloadTextExtraction = () => {
pickLastNonEmptyTextFromPayloadsMock.mockImplementation(
(payloads?: Array<{ text?: string }>) => {
@ -47,16 +62,8 @@ describe("runCronIsolatedAgentTurn — interim ack retry", () => {
meta: { agentMeta: { usage: { input: 10, output: 20 } } },
});
runWithModelFallbackMock.mockImplementation(async ({ provider, model, run }) => {
const result = await run(provider, model);
return { result, provider, model, attempts: [] };
});
const result = await runCronIsolatedAgentTurn(makeIsolatedAgentTurnParams());
expect(result.status).toBe("ok");
expect(runWithModelFallbackMock).toHaveBeenCalledTimes(2);
expect(runEmbeddedPiAgentMock).toHaveBeenCalledTimes(2);
mockFallbackPassthrough();
await runTurnAndExpectOk(2, 2);
expect(runEmbeddedPiAgentMock.mock.calls[1]?.[0]?.prompt).toContain(
"previous response was only an acknowledgement",
);
@ -69,16 +76,8 @@ describe("runCronIsolatedAgentTurn — interim ack retry", () => {
meta: { agentMeta: { usage: { input: 10, output: 20 } } },
});
runWithModelFallbackMock.mockImplementation(async ({ provider, model, run }) => {
const result = await run(provider, model);
return { result, provider, model, attempts: [] };
});
const result = await runCronIsolatedAgentTurn(makeIsolatedAgentTurnParams());
expect(result.status).toBe("ok");
expect(runWithModelFallbackMock).toHaveBeenCalledTimes(1);
expect(runEmbeddedPiAgentMock).toHaveBeenCalledTimes(1);
mockFallbackPassthrough();
await runTurnAndExpectOk(1, 1);
});
it("does not retry when descendants were spawned in this run even if they already settled", async () => {
@ -94,15 +93,7 @@ describe("runCronIsolatedAgentTurn — interim ack retry", () => {
]);
countActiveDescendantRunsMock.mockReturnValue(0);
runWithModelFallbackMock.mockImplementation(async ({ provider, model, run }) => {
const result = await run(provider, model);
return { result, provider, model, attempts: [] };
});
const result = await runCronIsolatedAgentTurn(makeIsolatedAgentTurnParams());
expect(result.status).toBe("ok");
expect(runWithModelFallbackMock).toHaveBeenCalledTimes(1);
expect(runEmbeddedPiAgentMock).toHaveBeenCalledTimes(1);
mockFallbackPassthrough();
await runTurnAndExpectOk(1, 1);
});
});