Skip to main content
Glama
platform-stdio.test.ts2.71 kB
const originalStdoutHandle = (process.stdout as any)._handle; const originalStderrHandle = (process.stderr as any)._handle; afterEach(() => { jest.resetModules(); jest.dontMock('os'); jest.dontMock('@modelcontextprotocol/sdk/server/stdio.js'); (process.stdout as any)._handle = originalStdoutHandle; (process.stderr as any)._handle = originalStderrHandle; }); describe('EnhancedStdioServerTransport', () => { it('applique une configuration spécifique à Windows', async () => { const stdoutHandle = (process.stdout as any)._handle; const stderrHandle = (process.stderr as any)._handle; const setBlockingStdout = stdoutHandle ? jest.spyOn(stdoutHandle, 'setBlocking') : jest.fn(); const setBlockingStderr = stderrHandle ? jest.spyOn(stderrHandle, 'setBlocking') : jest.fn(); const setEncoding = jest.spyOn(process.stdin, 'setEncoding').mockImplementation(() => process.stdin); const setDefaultEncoding = jest .spyOn(process.stdout, 'setDefaultEncoding') .mockImplementation(() => process.stdout); jest.resetModules(); jest.doMock('os', () => ({ platform: jest.fn(() => 'win32') })); const transportSpy = jest.fn(); jest.doMock('@modelcontextprotocol/sdk/server/stdio.js', () => ({ StdioServerTransport: class { constructor() { transportSpy(); } } })); const { EnhancedStdioServerTransport } = require('../utils/platform-stdio'); new EnhancedStdioServerTransport(); expect(transportSpy).toHaveBeenCalled(); expect(setEncoding).toHaveBeenCalledWith('utf8'); expect(setDefaultEncoding).toHaveBeenCalledWith('utf8'); expect(setBlockingStdout).toHaveBeenCalled(); expect(setBlockingStderr).toHaveBeenCalled(); setEncoding.mockRestore(); setDefaultEncoding.mockRestore(); if ('mockRestore' in setBlockingStdout) { (setBlockingStdout as jest.SpyInstance).mockRestore(); } if ('mockRestore' in setBlockingStderr) { (setBlockingStderr as jest.SpyInstance).mockRestore(); } }); it('ne force pas la configuration Windows sur Linux', async () => { const stdoutHandle = (process.stdout as any)._handle; const setBlockingStdout = stdoutHandle ? jest.spyOn(stdoutHandle, 'setBlocking') : jest.fn(); jest.resetModules(); jest.doMock('os', () => ({ platform: jest.fn(() => 'linux') })); const { EnhancedStdioServerTransport } = require('../utils/platform-stdio'); new EnhancedStdioServerTransport(); expect(setBlockingStdout).not.toHaveBeenCalled(); if ('mockRestore' in setBlockingStdout) { (setBlockingStdout as jest.SpyInstance).mockRestore(); } }); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Leghis/Smart-Thinking'

If you have feedback or need assistance with the MCP directory API, please join our Discord server