@poai/mcpm-aider
Version:
Your MCP CLI Manager for aider(forked from @mcpm/cli). Helps you install/remove/search your MCP projects. You can also manage your MCP in Claude App with natural language.
49 lines (48 loc) • 1.79 kB
JavaScript
/* eslint-disable @typescript-eslint/unbound-method */
import { ClaudeHostService } from '@mcpm/sdk';
jest.mock('@mcpm/sdk', () => ({
ClaudeHostService: jest.fn().mockImplementation(() => ({
addMCPServer: jest.fn(),
getMCPServersInConfig: jest.fn(),
removeMCPServer: jest.fn(),
})),
}));
describe('ClaudeHostService Tests', () => {
let claudeService;
beforeEach(() => {
jest.clearAllMocks();
claudeService = new ClaudeHostService();
});
describe('addMCPServer', () => {
it('should add server successfully', async () => {
const name = 'test-server';
const server = {
command: 'test-command',
args: ['--test'],
};
await claudeService.addMCPServer(name, server);
expect(claudeService.addMCPServer).toHaveBeenCalledWith(name, server);
});
});
describe('getMCPServers', () => {
it('should return list of servers', async () => {
const mockServers = {
'test-server': {
command: 'test-command',
args: ['--test'],
},
};
claudeService.getMCPServersInConfig.mockResolvedValue(mockServers);
const result = await claudeService.getMCPServersInConfig();
expect(result).toEqual(mockServers);
expect(claudeService.getMCPServersInConfig).toHaveBeenCalled();
});
});
describe('removeMCPServer', () => {
it('should remove server successfully', async () => {
const name = 'test-server';
await claudeService.removeMCPServer(name);
expect(claudeService.removeMCPServer).toHaveBeenCalledWith(name);
});
});
});