Skip to content

Commit 94771de

Browse files
Fix tests
1 parent 8e92685 commit 94771de

File tree

1 file changed

+92
-14
lines changed

1 file changed

+92
-14
lines changed

src/core/prompts/tools/native-tools/__tests__/getAllowedJSONToolsForMode.spec.ts

Lines changed: 92 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@ vi.mock("../../../../config/ContextProxy")
1616
describe("getAllowedJSONToolsForMode", () => {
1717
let mockProvider: Partial<ClineProvider>
1818
let mockContext: any
19+
const modelWithImages = {
20+
id: "mock-model",
21+
info: { contextWindow: 2048, supportsPromptCache: false, supportsImages: true },
22+
}
23+
const modelWithoutImages = {
24+
id: "mock-model",
25+
info: { contextWindow: 2048, supportsPromptCache: false, supportsImages: false },
26+
}
1927

2028
beforeEach(() => {
2129
vi.clearAllMocks()
@@ -102,7 +110,12 @@ describe("getAllowedJSONToolsForMode", () => {
102110

103111
vi.mocked(mockProvider.getState!).mockResolvedValue(providerState as ClineProviderState)
104112

105-
const tools = await getAllowedJSONToolsForMode("code" as Mode, mockProvider as ClineProvider, false, false)
113+
const tools = await getAllowedJSONToolsForMode(
114+
"code" as Mode,
115+
mockProvider as ClineProvider,
116+
false,
117+
undefined,
118+
)
106119

107120
const applyDiffTool = tools.find((tool) => "function" in tool && tool.function.name === "apply_diff")
108121
expect(applyDiffTool).toBeUndefined()
@@ -117,7 +130,12 @@ describe("getAllowedJSONToolsForMode", () => {
117130

118131
vi.mocked(mockProvider.getState!).mockResolvedValue(providerState as ClineProviderState)
119132

120-
const tools = await getAllowedJSONToolsForMode("code" as Mode, mockProvider as ClineProvider, true, true)
133+
const tools = await getAllowedJSONToolsForMode(
134+
"code" as Mode,
135+
mockProvider as ClineProvider,
136+
true,
137+
modelWithImages,
138+
)
121139

122140
// Check for duplicate tool names
123141
const toolNames = tools.map((tool) => ("function" in tool ? tool.function.name : ""))
@@ -133,8 +151,18 @@ describe("getAllowedJSONToolsForMode", () => {
133151

134152
vi.mocked(mockProvider.getState!).mockResolvedValue(providerState as ClineProviderState)
135153

136-
const tools1 = await getAllowedJSONToolsForMode("code" as Mode, mockProvider as ClineProvider, true, true)
137-
const tools2 = await getAllowedJSONToolsForMode("code" as Mode, mockProvider as ClineProvider, true, true)
154+
const tools1 = await getAllowedJSONToolsForMode(
155+
"code" as Mode,
156+
mockProvider as ClineProvider,
157+
true,
158+
modelWithImages,
159+
)
160+
const tools2 = await getAllowedJSONToolsForMode(
161+
"code" as Mode,
162+
mockProvider as ClineProvider,
163+
true,
164+
modelWithImages,
165+
)
138166

139167
expect(tools1.length).toBe(tools2.length)
140168
})
@@ -149,7 +177,12 @@ describe("getAllowedJSONToolsForMode", () => {
149177
vi.mocked(mockProvider.getState!).mockResolvedValue(providerState as ClineProviderState)
150178
vi.mocked(CodeIndexManager.getInstance).mockReturnValue(undefined)
151179

152-
const tools = await getAllowedJSONToolsForMode("code" as Mode, mockProvider as ClineProvider, true, true)
180+
const tools = await getAllowedJSONToolsForMode(
181+
"code" as Mode,
182+
mockProvider as ClineProvider,
183+
true,
184+
modelWithImages,
185+
)
153186

154187
const codebaseSearchTool = tools.find(
155188
(tool) => "function" in tool && tool.function.name === "codebase_search",
@@ -165,7 +198,12 @@ describe("getAllowedJSONToolsForMode", () => {
165198

166199
vi.mocked(mockProvider.getState!).mockResolvedValue(providerState as ClineProviderState)
167200

168-
const tools = await getAllowedJSONToolsForMode("code" as Mode, mockProvider as ClineProvider, true, true)
201+
const tools = await getAllowedJSONToolsForMode(
202+
"code" as Mode,
203+
mockProvider as ClineProvider,
204+
true,
205+
modelWithImages,
206+
)
169207

170208
const browserActionTool = tools.find(
171209
(tool) => "function" in tool && tool.function.name === "browser_action",
@@ -181,7 +219,12 @@ describe("getAllowedJSONToolsForMode", () => {
181219

182220
vi.mocked(mockProvider.getState!).mockResolvedValue(providerState as ClineProviderState)
183221

184-
const tools = await getAllowedJSONToolsForMode("code" as Mode, mockProvider as ClineProvider, true, false)
222+
const tools = await getAllowedJSONToolsForMode(
223+
"code" as Mode,
224+
mockProvider as ClineProvider,
225+
true,
226+
modelWithoutImages,
227+
)
185228

186229
const browserActionTool = tools.find(
187230
(tool) => "function" in tool && tool.function.name === "browser_action",
@@ -199,7 +242,12 @@ describe("getAllowedJSONToolsForMode", () => {
199242

200243
vi.mocked(mockProvider.getState!).mockResolvedValue(providerState as ClineProviderState)
201244

202-
const tools = await getAllowedJSONToolsForMode("code" as Mode, mockProvider as ClineProvider, true, true)
245+
const tools = await getAllowedJSONToolsForMode(
246+
"code" as Mode,
247+
mockProvider as ClineProvider,
248+
true,
249+
modelWithImages,
250+
)
203251

204252
const todoListTool = tools.find((tool) => "function" in tool && tool.function.name === "update_todo_list")
205253
expect(todoListTool).toBeUndefined()
@@ -214,7 +262,12 @@ describe("getAllowedJSONToolsForMode", () => {
214262

215263
vi.mocked(mockProvider.getState!).mockResolvedValue(providerState as ClineProviderState)
216264

217-
const tools = await getAllowedJSONToolsForMode("code" as Mode, mockProvider as ClineProvider, true, true)
265+
const tools = await getAllowedJSONToolsForMode(
266+
"code" as Mode,
267+
mockProvider as ClineProvider,
268+
true,
269+
modelWithImages,
270+
)
218271

219272
const generateImageTool = tools.find(
220273
(tool) => "function" in tool && tool.function.name === "generate_image",
@@ -231,7 +284,12 @@ describe("getAllowedJSONToolsForMode", () => {
231284

232285
vi.mocked(mockProvider.getState!).mockResolvedValue(providerState as ClineProviderState)
233286

234-
const tools = await getAllowedJSONToolsForMode("code" as Mode, mockProvider as ClineProvider, true, true)
287+
const tools = await getAllowedJSONToolsForMode(
288+
"code" as Mode,
289+
mockProvider as ClineProvider,
290+
true,
291+
modelWithImages,
292+
)
235293

236294
const runSlashCommandTool = tools.find(
237295
(tool) => "function" in tool && tool.function.name === "run_slash_command",
@@ -248,7 +306,12 @@ describe("getAllowedJSONToolsForMode", () => {
248306

249307
vi.mocked(mockProvider.getState!).mockResolvedValue(providerState as ClineProviderState)
250308

251-
const tools = await getAllowedJSONToolsForMode("code" as Mode, mockProvider as ClineProvider, true, true)
309+
const tools = await getAllowedJSONToolsForMode(
310+
"code" as Mode,
311+
mockProvider as ClineProvider,
312+
true,
313+
modelWithImages,
314+
)
252315

253316
const askTool = tools.find((tool) => "function" in tool && tool.function.name === "ask_followup_question")
254317
expect(askTool).toBeDefined()
@@ -261,7 +324,12 @@ describe("getAllowedJSONToolsForMode", () => {
261324

262325
vi.mocked(mockProvider.getState!).mockResolvedValue(providerState as ClineProviderState)
263326

264-
const tools = await getAllowedJSONToolsForMode("code" as Mode, mockProvider as ClineProvider, true, true)
327+
const tools = await getAllowedJSONToolsForMode(
328+
"code" as Mode,
329+
mockProvider as ClineProvider,
330+
true,
331+
modelWithoutImages,
332+
)
265333

266334
const completionTool = tools.find(
267335
(tool) => "function" in tool && tool.function.name === "attempt_completion",
@@ -276,7 +344,12 @@ describe("getAllowedJSONToolsForMode", () => {
276344

277345
vi.mocked(mockProvider.getState!).mockResolvedValue(providerState as ClineProviderState)
278346

279-
const tools = await getAllowedJSONToolsForMode("code" as Mode, mockProvider as ClineProvider, true, true)
347+
const tools = await getAllowedJSONToolsForMode(
348+
"code" as Mode,
349+
mockProvider as ClineProvider,
350+
true,
351+
modelWithImages,
352+
)
280353

281354
const switchModeTool = tools.find((tool) => "function" in tool && tool.function.name === "switch_mode")
282355
expect(switchModeTool).toBeDefined()
@@ -289,7 +362,12 @@ describe("getAllowedJSONToolsForMode", () => {
289362

290363
vi.mocked(mockProvider.getState!).mockResolvedValue(providerState as ClineProviderState)
291364

292-
const tools = await getAllowedJSONToolsForMode("code" as Mode, mockProvider as ClineProvider, true, true)
365+
const tools = await getAllowedJSONToolsForMode(
366+
"code" as Mode,
367+
mockProvider as ClineProvider,
368+
true,
369+
modelWithImages,
370+
)
293371

294372
const newTaskTool = tools.find((tool) => "function" in tool && tool.function.name === "new_task")
295373
expect(newTaskTool).toBeDefined()

0 commit comments

Comments
 (0)