Skip to content

Commit 7234561

Browse files
committed
Fix tests
1 parent ee483b8 commit 7234561

File tree

2 files changed

+57
-20
lines changed

2 files changed

+57
-20
lines changed

src/core/webview/__tests__/ClineProvider.spec.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2701,6 +2701,7 @@ describe("ClineProvider - Router Models", () => {
27012701
apiKey: "litellm-key",
27022702
baseUrl: "http://localhost:4000",
27032703
})
2704+
expect(getModels).toHaveBeenCalledWith({ provider: "chutes" })
27042705

27052706
// Verify response was sent
27062707
expect(mockPostMessage).toHaveBeenCalledWith({
@@ -2712,13 +2713,15 @@ describe("ClineProvider - Router Models", () => {
27122713
glama: mockModels,
27132714
unbound: mockModels,
27142715
roo: mockModels,
2716+
chutes: mockModels,
27152717
litellm: mockModels,
27162718
ollama: {},
27172719
lmstudio: {},
27182720
"vercel-ai-gateway": mockModels,
27192721
huggingface: {},
27202722
"io-intelligence": {},
27212723
},
2724+
values: undefined,
27222725
})
27232726
})
27242727

@@ -2751,6 +2754,7 @@ describe("ClineProvider - Router Models", () => {
27512754
.mockResolvedValueOnce(mockModels) // vercel-ai-gateway success
27522755
.mockResolvedValueOnce(mockModels) // deepinfra success
27532756
.mockResolvedValueOnce(mockModels) // roo success
2757+
.mockRejectedValueOnce(new Error("Chutes API error")) // chutes fail
27542758
.mockRejectedValueOnce(new Error("LiteLLM connection failed")) // litellm fail
27552759

27562760
await messageHandler({ type: "requestRouterModels" })
@@ -2765,13 +2769,15 @@ describe("ClineProvider - Router Models", () => {
27652769
glama: mockModels,
27662770
unbound: {},
27672771
roo: mockModels,
2772+
chutes: {},
27682773
ollama: {},
27692774
lmstudio: {},
27702775
litellm: {},
27712776
"vercel-ai-gateway": mockModels,
27722777
huggingface: {},
27732778
"io-intelligence": {},
27742779
},
2780+
values: undefined,
27752781
})
27762782

27772783
// Verify error messages were sent for failed providers
@@ -2796,6 +2802,13 @@ describe("ClineProvider - Router Models", () => {
27962802
values: { provider: "unbound" },
27972803
})
27982804

2805+
expect(mockPostMessage).toHaveBeenCalledWith({
2806+
type: "singleRouterModelFetchResponse",
2807+
success: false,
2808+
error: "Chutes API error",
2809+
values: { provider: "chutes" },
2810+
})
2811+
27992812
expect(mockPostMessage).toHaveBeenCalledWith({
28002813
type: "singleRouterModelFetchResponse",
28012814
success: false,
@@ -2880,13 +2893,15 @@ describe("ClineProvider - Router Models", () => {
28802893
glama: mockModels,
28812894
unbound: mockModels,
28822895
roo: mockModels,
2896+
chutes: mockModels,
28832897
litellm: {},
28842898
ollama: {},
28852899
lmstudio: {},
28862900
"vercel-ai-gateway": mockModels,
28872901
huggingface: {},
28882902
"io-intelligence": {},
28892903
},
2904+
values: undefined,
28902905
})
28912906
})
28922907

src/core/webview/__tests__/webviewMessageHandler.spec.ts

Lines changed: 42 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -249,12 +249,14 @@ describe("webviewMessageHandler - requestRouterModels", () => {
249249
unbound: mockModels,
250250
litellm: mockModels,
251251
roo: mockModels,
252+
chutes: mockModels,
252253
ollama: {},
253254
lmstudio: {},
254255
"vercel-ai-gateway": mockModels,
255256
huggingface: {},
256257
"io-intelligence": {},
257258
},
259+
values: undefined,
258260
})
259261
})
260262

@@ -340,13 +342,15 @@ describe("webviewMessageHandler - requestRouterModels", () => {
340342
glama: mockModels,
341343
unbound: mockModels,
342344
roo: mockModels,
345+
chutes: mockModels,
343346
litellm: {},
344347
ollama: {},
345348
lmstudio: {},
346349
"vercel-ai-gateway": mockModels,
347350
huggingface: {},
348351
"io-intelligence": {},
349352
},
353+
values: undefined,
350354
})
351355
})
352356

@@ -369,32 +373,14 @@ describe("webviewMessageHandler - requestRouterModels", () => {
369373
.mockResolvedValueOnce(mockModels) // vercel-ai-gateway
370374
.mockResolvedValueOnce(mockModels) // deepinfra
371375
.mockResolvedValueOnce(mockModels) // roo
376+
.mockRejectedValueOnce(new Error("Chutes API error")) // chutes
372377
.mockRejectedValueOnce(new Error("LiteLLM connection failed")) // litellm
373378

374379
await webviewMessageHandler(mockClineProvider, {
375380
type: "requestRouterModels",
376381
})
377382

378-
// Verify successful providers are included
379-
expect(mockClineProvider.postMessageToWebview).toHaveBeenCalledWith({
380-
type: "routerModels",
381-
routerModels: {
382-
deepinfra: mockModels,
383-
openrouter: mockModels,
384-
requesty: {},
385-
glama: mockModels,
386-
unbound: {},
387-
roo: mockModels,
388-
litellm: {},
389-
ollama: {},
390-
lmstudio: {},
391-
"vercel-ai-gateway": mockModels,
392-
huggingface: {},
393-
"io-intelligence": {},
394-
},
395-
})
396-
397-
// Verify error messages were sent for failed providers
383+
// Verify error messages were sent for failed providers (these come first)
398384
expect(mockClineProvider.postMessageToWebview).toHaveBeenCalledWith({
399385
type: "singleRouterModelFetchResponse",
400386
success: false,
@@ -409,12 +395,40 @@ describe("webviewMessageHandler - requestRouterModels", () => {
409395
values: { provider: "unbound" },
410396
})
411397

398+
expect(mockClineProvider.postMessageToWebview).toHaveBeenCalledWith({
399+
type: "singleRouterModelFetchResponse",
400+
success: false,
401+
error: "Chutes API error",
402+
values: { provider: "chutes" },
403+
})
404+
412405
expect(mockClineProvider.postMessageToWebview).toHaveBeenCalledWith({
413406
type: "singleRouterModelFetchResponse",
414407
success: false,
415408
error: "LiteLLM connection failed",
416409
values: { provider: "litellm" },
417410
})
411+
412+
// Verify final routerModels response includes successful providers and empty objects for failed ones
413+
expect(mockClineProvider.postMessageToWebview).toHaveBeenCalledWith({
414+
type: "routerModels",
415+
routerModels: {
416+
deepinfra: mockModels,
417+
openrouter: mockModels,
418+
requesty: {},
419+
glama: mockModels,
420+
unbound: {},
421+
roo: mockModels,
422+
chutes: {},
423+
litellm: {},
424+
ollama: {},
425+
lmstudio: {},
426+
"vercel-ai-gateway": mockModels,
427+
huggingface: {},
428+
"io-intelligence": {},
429+
},
430+
values: undefined,
431+
})
418432
})
419433

420434
it("handles Error objects and string errors correctly", async () => {
@@ -427,6 +441,7 @@ describe("webviewMessageHandler - requestRouterModels", () => {
427441
.mockRejectedValueOnce(new Error("Vercel AI Gateway error")) // vercel-ai-gateway
428442
.mockRejectedValueOnce(new Error("DeepInfra API error")) // deepinfra
429443
.mockRejectedValueOnce(new Error("Roo API error")) // roo
444+
.mockRejectedValueOnce(new Error("Chutes API error")) // chutes
430445
.mockRejectedValueOnce(new Error("LiteLLM connection failed")) // litellm
431446

432447
await webviewMessageHandler(mockClineProvider, {
@@ -483,6 +498,13 @@ describe("webviewMessageHandler - requestRouterModels", () => {
483498
values: { provider: "roo" },
484499
})
485500

501+
expect(mockClineProvider.postMessageToWebview).toHaveBeenCalledWith({
502+
type: "singleRouterModelFetchResponse",
503+
success: false,
504+
error: "Chutes API error",
505+
values: { provider: "chutes" },
506+
})
507+
486508
expect(mockClineProvider.postMessageToWebview).toHaveBeenCalledWith({
487509
type: "singleRouterModelFetchResponse",
488510
success: false,

0 commit comments

Comments
 (0)