From 487646cee829dc3bd95477babcd40e83044cbc7a Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Sun, 22 Mar 2026 10:50:35 +0100 Subject: [PATCH] Attempt to cover up the `run_in_terminal` tool not being registered quickly --- .../singlefolder-tests/chat.runInTerminal.test.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/chat.runInTerminal.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/chat.runInTerminal.test.ts index 8a37810fed0..39008b8be3b 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/chat.runInTerminal.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/chat.runInTerminal.test.ts @@ -134,8 +134,18 @@ function extractTextContent(result: vscode.LanguageModelToolResult): string { return extractTextContent(result); } - test('tool should be registered with expected schema', () => { - const tool = vscode.lm.tools.find(t => t.name === 'run_in_terminal'); + test('tool should be registered with expected schema', async function () { + this.timeout(15000); + // The run_in_terminal tool is registered asynchronously (it needs to + // resolve terminal profiles), so poll until it appears. + let tool: vscode.LanguageModelToolInformation | undefined; + for (let i = 0; i < 50; i++) { + tool = vscode.lm.tools.find(t => t.name === 'run_in_terminal'); + if (tool) { + break; + } + await new Promise(r => setTimeout(r, 200)); + } assert.ok(tool, 'run_in_terminal tool should be registered'); assert.ok(tool.inputSchema, 'Tool should have an input schema');