Skip to content
This repository was archived by the owner on May 15, 2026. It is now read-only.

Commit 3c09ec5

Browse files
fix: update tests for new ollama model discovery interface
1 parent 4e5230d commit 3c09ec5

2 files changed

Lines changed: 31 additions & 17 deletions

File tree

src/api/providers/fetchers/__tests__/ollama.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ describe("Ollama Fetcher", () => {
2323
contextWindow: 40960,
2424
supportsImages: false,
2525
supportsPromptCache: true,
26+
supportsNativeTools: true,
2627
inputPrice: 0,
2728
outputPrice: 0,
2829
cacheWritesPrice: 0,
@@ -50,6 +51,7 @@ describe("Ollama Fetcher", () => {
5051
contextWindow: 40960,
5152
supportsImages: false,
5253
supportsPromptCache: true,
54+
supportsNativeTools: true,
5355
inputPrice: 0,
5456
outputPrice: 0,
5557
cacheWritesPrice: 0,

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

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import type { Mock } from "vitest"
44

55
// Mock dependencies - must come before imports
66
vi.mock("../../../api/providers/fetchers/modelCache")
7+
vi.mock("../../../api/providers/fetchers/ollama")
78

89
vi.mock("../../../integrations/openai-codex/oauth", () => ({
910
openAiCodexOAuthManager: {
@@ -25,11 +26,14 @@ import type { ModelRecord } from "@roo-code/types"
2526

2627
import { webviewMessageHandler } from "../webviewMessageHandler"
2728
import type { ClineProvider } from "../ClineProvider"
28-
import { getModels } from "../../../api/providers/fetchers/modelCache"
29+
import { getModels, flushModels } from "../../../api/providers/fetchers/modelCache"
30+
import { discoverOllamaModelsWithSorting } from "../../../api/providers/fetchers/ollama"
2931
const { openAiCodexOAuthManager } = await import("../../../integrations/openai-codex/oauth")
3032
const { fetchOpenAiCodexRateLimitInfo } = await import("../../../integrations/openai-codex/rate-limits")
3133

3234
const mockGetModels = getModels as Mock<typeof getModels>
35+
const mockFlushModels = flushModels as Mock<typeof flushModels>
36+
const mockDiscoverOllamaModels = discoverOllamaModelsWithSorting as Mock<typeof discoverOllamaModelsWithSorting>
3337
const mockGetAccessToken = vi.mocked(openAiCodexOAuthManager.getAccessToken)
3438
const mockGetAccountId = vi.mocked(openAiCodexOAuthManager.getAccountId)
3539
const mockFetchOpenAiCodexRateLimitInfo = vi.mocked(fetchOpenAiCodexRateLimitInfo)
@@ -228,32 +232,40 @@ describe("webviewMessageHandler - requestOllamaModels", () => {
228232
})
229233

230234
it("successfully fetches models from Ollama", async () => {
231-
const mockModels: ModelRecord = {
232-
"model-1": {
233-
maxTokens: 4096,
234-
contextWindow: 8192,
235-
supportsPromptCache: false,
236-
description: "Test model 1",
237-
},
238-
"model-2": {
239-
maxTokens: 8192,
240-
contextWindow: 16384,
241-
supportsPromptCache: false,
242-
description: "Test model 2",
243-
},
235+
const mockModelInfo = {
236+
maxTokens: 4096,
237+
contextWindow: 8192,
238+
supportsPromptCache: false,
239+
description: "Test model 1",
244240
}
245241

246-
mockGetModels.mockResolvedValue(mockModels)
242+
mockFlushModels.mockResolvedValue(undefined)
243+
mockDiscoverOllamaModels.mockResolvedValue({
244+
modelsWithTools: [
245+
{ name: "model-1", modelInfo: mockModelInfo, contextWindow: 8192, supportsImages: false },
246+
],
247+
modelsWithoutTools: [],
248+
totalCount: 1,
249+
})
247250

248251
await webviewMessageHandler(mockClineProvider, {
249252
type: "requestOllamaModels",
250253
})
251254

252-
expect(mockGetModels).toHaveBeenCalledWith({ provider: "ollama", baseUrl: "http://localhost:1234" })
255+
expect(mockFlushModels).toHaveBeenCalledWith({ provider: "ollama", baseUrl: "http://localhost:1234" }, true)
256+
expect(mockDiscoverOllamaModels).toHaveBeenCalledWith(
257+
"http://localhost:1234",
258+
undefined,
259+
expect.objectContaining({}),
260+
)
253261

254262
expect(mockClineProvider.postMessageToWebview).toHaveBeenCalledWith({
255263
type: "ollamaModels",
256-
ollamaModels: mockModels,
264+
ollamaModels: { "model-1": mockModelInfo },
265+
ollamaModelsWithTools: [
266+
{ name: "model-1", modelInfo: mockModelInfo, contextWindow: 8192, supportsImages: false },
267+
],
268+
modelsWithoutTools: [],
257269
})
258270
})
259271
})

0 commit comments

Comments
 (0)