UNPKG

lamplighter-mcp

Version:

An intelligent context engine for AI-assisted software development

85 lines (74 loc) 2.6 kB
import express from 'express'; import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js'; import { HistoryLogger } from '../src/modules/historyLogger'; import { CodebaseAnalyzer } from '../src/modules/codebaseAnalyzer'; // Mock Express jest.mock('express', () => { const app = { use: jest.fn(), get: jest.fn(), post: jest.fn(), listen: jest.fn((port, callback) => { callback(); return { close: jest.fn() }; }), }; return jest.fn(() => app); }); // Mock MCP SDK jest.mock('@modelcontextprotocol/sdk/server/mcp.js', () => ({ McpServer: jest.fn().mockImplementation(() => ({ connect: jest.fn().mockResolvedValue(undefined), tool: jest.fn(), })), })); jest.mock('@modelcontextprotocol/sdk/server/sse.js', () => ({ SSEServerTransport: jest.fn().mockImplementation(() => ({ sessionId: 'test-session-id', close: jest.fn(), handlePostMessage: jest.fn().mockResolvedValue(undefined), })), })); // Mock the module imports in server.ts jest.mock('../src/modules/historyLogger.js', () => ({ HistoryLogger: jest.fn().mockImplementation(() => ({ log: jest.fn().mockResolvedValue(undefined), })), }), { virtual: true }); jest.mock('../src/modules/codebaseAnalyzer.js', () => ({ CodebaseAnalyzer: jest.fn().mockImplementation(() => ({ analyze: jest.fn().mockResolvedValue(undefined), })), }), { virtual: true }); // Mock dotenv jest.mock('dotenv', () => ({ config: jest.fn(), })); // Create spies for console.log/error const consoleLogSpy = jest.spyOn(console, 'log').mockImplementation(() => {}); const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(() => {}); describe('Server Components', () => { beforeEach(() => { // Reset mocks jest.clearAllMocks(); }); it('should have Express app configured correctly', () => { const app = express(); expect(app.use).toBeDefined(); expect(app.get).toBeDefined(); expect(app.post).toBeDefined(); expect(app.listen).toBeDefined(); }); it('should have MCP Server with correct methods', () => { const server = new McpServer({ name: 'Test', version: '1.0.0' }); expect(server.connect).toBeDefined(); expect(server.tool).toBeDefined(); }); it('should have SSE transport with correct methods', () => { const transport = new SSEServerTransport('/endpoint', {} as any); expect(transport.sessionId).toBeDefined(); expect(transport.close).toBeDefined(); expect(transport.handlePostMessage).toBeDefined(); }); });