diff --git a/packages/workflow-utils/src/__tests__/create-llm-adapter.test.ts b/packages/workflow-utils/src/__tests__/create-llm-adapter.test.ts index 5504b1a..f0d3a90 100644 --- a/packages/workflow-utils/src/__tests__/create-llm-adapter.test.ts +++ b/packages/workflow-utils/src/__tests__/create-llm-adapter.test.ts @@ -51,4 +51,28 @@ describe("createLlmAdapter", () => { { role: "user", content: "trigger text" }, ]); }); + + it("throws on non-ok fetch response", async () => { + const fetchMock = vi.fn().mockResolvedValue({ + ok: false, + status: 500, + text: async () => "Internal Server Error", + }); + vi.stubGlobal("fetch", fetchMock); + + const provider = { baseUrl: "https://api.example/v1", apiKey: "k", model: "m" }; + const adapter = createLlmAdapter(provider); + + await expect(adapter(makeCtx("t1", "hi"), "sys")).rejects.toThrow("llm:"); + }); + + it("throws on fetch network failure", async () => { + const fetchMock = vi.fn().mockRejectedValue(new Error("ECONNREFUSED")); + vi.stubGlobal("fetch", fetchMock); + + const provider = { baseUrl: "https://api.example/v1", apiKey: "k", model: "m" }; + const adapter = createLlmAdapter(provider); + + await expect(adapter(makeCtx("t1", "hi"), "sys")).rejects.toThrow(); + }); });