UNPKG

@heroku/mcp-server

Version:
32 lines (31 loc) 1.06 kB
import sinon from 'sinon'; import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { HerokuREPL } from '../repl/heroku-cli-repl.js'; /** * Helper function to set up common MCP tool mocks for testing * @returns Object containing the server, herokuRepl, and toolCallback for use in tests */ export function setupMcpToolMocks() { const server = sinon.createStubInstance(McpServer); const herokuRepl = sinon.createStubInstance(HerokuREPL); let toolCallback; // Create a proper mock for RegisteredTool const mockRegisteredTool = { callback: sinon.stub(), enabled: true, enable: sinon.stub(), disable: sinon.stub(), update: sinon.stub(), remove: sinon.stub() }; // Mock the server.tool method - callback is always the last parameter server.tool.callsFake((...args) => { toolCallback = args[args.length - 1]; return mockRegisteredTool; }); return { server, herokuRepl, getToolCallback: () => toolCallback }; }