From f9207e5d39d69ef4d36316bd8a501e4943bb8010 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 25 Apr 2026 01:42:34 +0100 Subject: [PATCH] test(agents): cover defaults fallback timeout --- .../model-fallback.run-embedded.e2e.test.ts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/agents/model-fallback.run-embedded.e2e.test.ts b/src/agents/model-fallback.run-embedded.e2e.test.ts index b88fb516ec5..d389d049d50 100644 --- a/src/agents/model-fallback.run-embedded.e2e.test.ts +++ b/src/agents/model-fallback.run-embedded.e2e.test.ts @@ -448,6 +448,27 @@ describe("runWithModelFallback + runEmbeddedPiAgent failover behavior", () => { }); }); + it("falls back on timeout errors using defaults-only model fallbacks", async () => { + await withAgentWorkspace(async ({ agentDir, workspaceDir }) => { + await writeAuthStore(agentDir); + mockPrimaryErrorThenFallbackSuccess("LLM request timed out."); + + const result = await runEmbeddedFallback({ + agentDir, + workspaceDir, + sessionKey: "agent:test:timeout-defaults-fallback", + runId: "run:timeout-defaults-fallback", + }); + + expect(result.provider).toBe("groq"); + expect(result.model).toBe("mock-2"); + expect(result.attempts[0]?.reason).toBe("timeout"); + expect(result.result.payloads?.[0]?.text ?? "").toContain("fallback ok"); + + expectOpenAiThenGroqAttemptOrder(); + }); + }); + it("falls back across providers after overloaded primary failure and persists transient cooldown", async () => { await withAgentWorkspace(async ({ agentDir, workspaceDir }) => { await writeAuthStore(agentDir);