@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
JavaScript
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);
});
});