UNPKG

@sanderkooger/mcp-server-ragdocs

Version:

An MCP server for semantic documentation search and retrieval using vector databases to augment LLM capabilities.

60 lines (59 loc) 1.6 kB
import { expect, assert } from 'chai'; import { BaseTool } from './base-tool.js'; class MockTool extends BaseTool { get definition() { return { name: 'mock', description: 'mock tool', inputSchema: { type: 'object', properties: {}, required: [] } }; } async execute() { return this.formatResponse({ success: true }); } // Expose protected methods for testing testFormat(data) { return this.formatResponse(data); } testError(error) { return this.handleError(error); } } describe('BaseTool', () => { let tool; beforeEach(() => { tool = new MockTool(); }); it('formats responses correctly', () => { const result = tool.testFormat({ test: 'data' }); expect(result).to.deep.equal({ content: [ { type: 'text', text: JSON.stringify({ test: 'data' }, null, 2) } ] }); }); it('handles errors properly', () => { const error = new Error('Test error'); const result = tool.testError(error); expect(result).to.deep.equal({ content: [ { type: 'text', text: `Error: ${error}` } ], isError: true }); }); it('requires concrete implementations', () => { assert.exists(tool.definition); assert.exists(tool.execute); }); });