mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-04 01:40:45 +08:00
- Introduced a new test script for the CodexLens LSP tool to validate core functionalities including symbol search, find definition, find references, and get hover. - Created comprehensive documentation for the MCP endpoint design, detailing the architecture, features, and integration with the CCW MCP Manager. - Developed a detailed implementation plan for transitioning to a real LSP server, outlining phases, architecture, and acceptance criteria.
125 lines
3.3 KiB
JavaScript
125 lines
3.3 KiB
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* Test script for codex_lens_lsp MCP tool
|
|
* Tests the 4 LSP actions: symbol_search, find_definition, find_references, get_hover
|
|
*/
|
|
|
|
import { fileURLToPath } from 'url';
|
|
import { dirname, join } from 'path';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = dirname(__filename);
|
|
|
|
// Import the tool
|
|
const toolModule = await import('./dist/tools/codex-lens-lsp.js');
|
|
const { schema, handler } = toolModule;
|
|
|
|
console.log('='.repeat(80));
|
|
console.log('CodexLens LSP Tool Test');
|
|
console.log('='.repeat(80));
|
|
console.log();
|
|
|
|
// Test 1: Schema validation
|
|
console.log('✓ Test 1: Tool Schema');
|
|
console.log(` Name: ${schema.name}`);
|
|
console.log(` Description: ${schema.description.substring(0, 100)}...`);
|
|
console.log(` Input Schema: ${JSON.stringify(schema.inputSchema.required)}`);
|
|
console.log();
|
|
|
|
// Test 2: Symbol Search
|
|
console.log('✓ Test 2: Symbol Search');
|
|
try {
|
|
const result = await handler({
|
|
action: 'symbol_search',
|
|
symbol_name: 'Config',
|
|
limit: 5,
|
|
});
|
|
|
|
console.log(` Success: ${result.success}`);
|
|
if (!result.success) {
|
|
console.log(` Error: ${result.error}`);
|
|
} else {
|
|
console.log(` Results: ${JSON.stringify(result.result, null, 2).substring(0, 200)}...`);
|
|
}
|
|
} catch (err) {
|
|
console.log(` Exception: ${err.message}`);
|
|
}
|
|
console.log();
|
|
|
|
// Test 3: Find Definition
|
|
console.log('✓ Test 3: Find Definition');
|
|
try {
|
|
const result = await handler({
|
|
action: 'find_definition',
|
|
symbol_name: 'executeCodexLens',
|
|
symbol_kind: 'function',
|
|
});
|
|
|
|
console.log(` Success: ${result.success}`);
|
|
if (!result.success) {
|
|
console.log(` Error: ${result.error}`);
|
|
} else {
|
|
console.log(` Results: ${JSON.stringify(result.result, null, 2).substring(0, 200)}...`);
|
|
}
|
|
} catch (err) {
|
|
console.log(` Exception: ${err.message}`);
|
|
}
|
|
console.log();
|
|
|
|
// Test 4: Find References
|
|
console.log('✓ Test 4: Find References');
|
|
try {
|
|
const result = await handler({
|
|
action: 'find_references',
|
|
symbol_name: 'ToolSchema',
|
|
});
|
|
|
|
console.log(` Success: ${result.success}`);
|
|
if (!result.success) {
|
|
console.log(` Error: ${result.error}`);
|
|
} else {
|
|
console.log(` Results count: ${Array.isArray(result.result?.results) ? result.result.results.length : 0}`);
|
|
}
|
|
} catch (err) {
|
|
console.log(` Exception: ${err.message}`);
|
|
}
|
|
console.log();
|
|
|
|
// Test 5: Get Hover
|
|
console.log('✓ Test 5: Get Hover');
|
|
try {
|
|
const result = await handler({
|
|
action: 'get_hover',
|
|
symbol_name: 'handler',
|
|
});
|
|
|
|
console.log(` Success: ${result.success}`);
|
|
if (!result.success) {
|
|
console.log(` Error: ${result.error}`);
|
|
} else {
|
|
console.log(` Results: ${JSON.stringify(result.result, null, 2).substring(0, 200)}...`);
|
|
}
|
|
} catch (err) {
|
|
console.log(` Exception: ${err.message}`);
|
|
}
|
|
console.log();
|
|
|
|
// Test 6: Parameter Validation
|
|
console.log('✓ Test 6: Parameter Validation');
|
|
try {
|
|
const result = await handler({
|
|
action: 'symbol_search',
|
|
// Missing required symbol_name
|
|
});
|
|
|
|
console.log(` Success: ${result.success}`);
|
|
console.log(` Error (expected): ${result.error?.substring(0, 100)}...`);
|
|
} catch (err) {
|
|
console.log(` Exception (expected): ${err.message.substring(0, 100)}...`);
|
|
}
|
|
console.log();
|
|
|
|
console.log('='.repeat(80));
|
|
console.log('Tests completed!');
|
|
console.log('='.repeat(80));
|