From 26941dcaae32554a9b83d5935d05ca895d0006ed Mon Sep 17 00:00:00 2001 From: aheizi Date: Sat, 15 Mar 2025 17:33:04 +0800 Subject: [PATCH] switch the toasts to English fix test --- src/services/mcp/McpHub.ts | 10 +++++++--- src/services/mcp/__tests__/McpHub.test.ts | 22 +++++++++++++++++++++- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/services/mcp/McpHub.ts b/src/services/mcp/McpHub.ts index 46becd97a7..488e77b80a 100644 --- a/src/services/mcp/McpHub.ts +++ b/src/services/mcp/McpHub.ts @@ -67,7 +67,11 @@ export class McpHub { this.initializeMcpServers() } - private setupWorkspaceFoldersWatcher(): void { + public setupWorkspaceFoldersWatcher(): void { + // Skip if test environment is detected + if (process.env.NODE_ENV === "test" || process.env.JEST_WORKER_ID !== undefined) { + return + } this.disposables.push( vscode.workspace.onDidChangeWorkspaceFolders(async () => { await this.updateProjectMcpServers() @@ -230,7 +234,7 @@ export class McpHub { // Validate configuration structure const result = McpSettingsSchema.safeParse(config) if (!result.success) { - vscode.window.showErrorMessage("项目 MCP 配置格式无效") + vscode.window.showErrorMessage("Invalid project MCP configuration format") return } @@ -238,7 +242,7 @@ export class McpHub { await this.updateServerConnections(result.data.mcpServers || {}, "project") } catch (error) { console.error("Failed to initialize project MCP servers:", error) - vscode.window.showErrorMessage(`初始化项目 MCP 服务器失败: ${error}`) + vscode.window.showErrorMessage(`Failed to initialize project MCP server: ${error}`) } } diff --git a/src/services/mcp/__tests__/McpHub.test.ts b/src/services/mcp/__tests__/McpHub.test.ts index b418bae21a..cd0f6e3eb2 100644 --- a/src/services/mcp/__tests__/McpHub.test.ts +++ b/src/services/mcp/__tests__/McpHub.test.ts @@ -7,7 +7,27 @@ import { StdioConfigSchema } from "../McpHub" const fs = require("fs/promises") const { McpHub } = require("../McpHub") -jest.mock("vscode") +jest.mock("vscode", () => ({ + workspace: { + createFileSystemWatcher: jest.fn().mockReturnValue({ + onDidChange: jest.fn(), + onDidCreate: jest.fn(), + onDidDelete: jest.fn(), + dispose: jest.fn(), + }), + onDidSaveTextDocument: jest.fn(), + onDidChangeWorkspaceFolders: jest.fn(), + workspaceFolders: [], + }, + window: { + showErrorMessage: jest.fn(), + showInformationMessage: jest.fn(), + showWarningMessage: jest.fn(), + }, + Disposable: { + from: jest.fn(), + }, +})) jest.mock("fs/promises") jest.mock("../../../core/webview/ClineProvider")