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/tool-registry.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/tool-registry.test.ts')
| -rw-r--r-- | packages/core/src/tools/tool-registry.test.ts | 50 |
1 files changed, 12 insertions, 38 deletions
diff --git a/packages/core/src/tools/tool-registry.test.ts b/packages/core/src/tools/tool-registry.test.ts index 13dff08c..cccf011f 100644 --- a/packages/core/src/tools/tool-registry.test.ts +++ b/packages/core/src/tools/tool-registry.test.ts @@ -23,15 +23,17 @@ import { spawn } from 'node:child_process'; import fs from 'node:fs'; import { MockTool } from '../test-utils/tools.js'; -vi.mock('node:fs'); +import { McpClientManager } from './mcp-client-manager.js'; -// Use vi.hoisted to define the mock function so it can be used in the vi.mock factory -const mockDiscoverMcpTools = vi.hoisted(() => vi.fn()); +vi.mock('node:fs'); // Mock ./mcp-client.js to control its behavior within tool-registry tests -vi.mock('./mcp-client.js', () => ({ - discoverMcpTools: mockDiscoverMcpTools, -})); +vi.mock('./mcp-client.js', async () => { + const originalModule = await vi.importActual('./mcp-client.js'); + return { + ...originalModule, + }; +}); // Mock node:child_process vi.mock('node:child_process', async () => { @@ -143,7 +145,6 @@ describe('ToolRegistry', () => { clear: vi.fn(), removePromptsByServer: vi.fn(), } as any); - mockDiscoverMcpTools.mockReset().mockResolvedValue(undefined); }); afterEach(() => { @@ -311,30 +312,10 @@ describe('ToolRegistry', () => { }); it('should discover tools using MCP servers defined in getMcpServers', async () => { - mockConfigGetToolDiscoveryCommand.mockReturnValue(undefined); - vi.spyOn(config, 'getMcpServerCommand').mockReturnValue(undefined); - const mcpServerConfigVal = { - 'my-mcp-server': { - command: 'mcp-server-cmd', - args: ['--port', '1234'], - trust: true, - }, - }; - vi.spyOn(config, 'getMcpServers').mockReturnValue(mcpServerConfigVal); - - await toolRegistry.discoverAllTools(); - - expect(mockDiscoverMcpTools).toHaveBeenCalledWith( - mcpServerConfigVal, - undefined, - toolRegistry, - config.getPromptRegistry(), - false, - expect.any(Object), + const discoverSpy = vi.spyOn( + McpClientManager.prototype, + 'discoverAllMcpTools', ); - }); - - it('should discover tools using MCP servers defined in getMcpServers', async () => { mockConfigGetToolDiscoveryCommand.mockReturnValue(undefined); vi.spyOn(config, 'getMcpServerCommand').mockReturnValue(undefined); const mcpServerConfigVal = { @@ -348,14 +329,7 @@ describe('ToolRegistry', () => { await toolRegistry.discoverAllTools(); - expect(mockDiscoverMcpTools).toHaveBeenCalledWith( - mcpServerConfigVal, - undefined, - toolRegistry, - config.getPromptRegistry(), - false, - expect.any(Object), - ); + expect(discoverSpy).toHaveBeenCalled(); }); }); }); |
