diff options
| author | Ramón Medrano Llamas <[email protected]> | 2025-08-19 21:03:19 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-08-19 19:03:19 +0000 |
| commit | b24c5887c45edde8690b4d73d8961e63eee13a34 (patch) | |
| tree | 6136f1f6bcc61801edb9f6d6411966b3b6678984 /packages/core/src/tools/mcp-client-manager.test.ts | |
| parent | 4828e4daf198a675ce118cec08dcfbd0bfbb28a6 (diff) | |
feat: restart MCP servers on /mcp refresh (#5479)
Co-authored-by: Brian Ray <[email protected]>
Co-authored-by: N. Taylor Mullen <[email protected]>
Diffstat (limited to 'packages/core/src/tools/mcp-client-manager.test.ts')
| -rw-r--r-- | packages/core/src/tools/mcp-client-manager.test.ts | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/packages/core/src/tools/mcp-client-manager.test.ts b/packages/core/src/tools/mcp-client-manager.test.ts new file mode 100644 index 00000000..3dba197f --- /dev/null +++ b/packages/core/src/tools/mcp-client-manager.test.ts @@ -0,0 +1,54 @@ +/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +import { afterEach, describe, expect, it, vi } from 'vitest'; +import { McpClientManager } from './mcp-client-manager.js'; +import { McpClient } from './mcp-client.js'; +import { ToolRegistry } from './tool-registry.js'; +import { PromptRegistry } from '../prompts/prompt-registry.js'; +import { WorkspaceContext } from '../utils/workspaceContext.js'; + +vi.mock('./mcp-client.js', async () => { + const originalModule = await vi.importActual('./mcp-client.js'); + return { + ...originalModule, + McpClient: vi.fn(), + populateMcpServerCommand: vi.fn(() => ({ + 'test-server': {}, + })), + }; +}); + +describe('McpClientManager', () => { + afterEach(() => { + vi.restoreAllMocks(); + }); + + it('should discover tools from all servers', async () => { + const mockedMcpClient = { + connect: vi.fn(), + discover: vi.fn(), + disconnect: vi.fn(), + getStatus: vi.fn(), + }; + vi.mocked(McpClient).mockReturnValue( + mockedMcpClient as unknown as McpClient, + ); + const manager = new McpClientManager( + { + 'test-server': {}, + }, + '', + {} as ToolRegistry, + {} as PromptRegistry, + false, + {} as WorkspaceContext, + ); + await manager.discoverAllMcpTools(); + expect(mockedMcpClient.connect).toHaveBeenCalledOnce(); + expect(mockedMcpClient.discover).toHaveBeenCalledOnce(); + }); +}); |
