Skip to main content
Glama
pshempel

MCP Time Server Node

by pshempel
serverConfig.test.ts2.6 kB
import { EventEmitter } from 'events'; import { configureServer, getMaxListenersConfig } from '../../src/utils/serverConfig'; describe('serverConfig', () => { let originalDefaultMaxListeners: number; let originalProcessMaxListeners: number; beforeEach(() => { // Save original values originalDefaultMaxListeners = EventEmitter.defaultMaxListeners; originalProcessMaxListeners = process.getMaxListeners(); }); afterEach(() => { // Restore original values EventEmitter.defaultMaxListeners = originalDefaultMaxListeners; process.setMaxListeners(originalProcessMaxListeners); }); describe('configureServer', () => { it('should increase EventEmitter defaultMaxListeners to 20', () => { // Reset to default first EventEmitter.defaultMaxListeners = 10; configureServer(); expect(EventEmitter.defaultMaxListeners).toBe(20); }); it('should increase process maxListeners to 20', () => { // Reset to default first process.setMaxListeners(10); configureServer(); expect(process.getMaxListeners()).toBe(20); }); }); describe('getMaxListenersConfig', () => { it('should return current configuration', () => { EventEmitter.defaultMaxListeners = 15; process.setMaxListeners(25); const config = getMaxListenersConfig(); expect(config).toEqual({ defaultMaxListeners: 15, processMaxListeners: 25, }); }); }); describe('AbortSignal warning prevention', () => { it('should not emit warning with configured limits', () => { configureServer(); const warnings: Error[] = []; const originalWarning = process.listeners('warning'); process.removeAllListeners('warning'); process.on('warning', (warning) => { warnings.push(warning); }); try { // Create scenario that would trigger warning with default limits const abortController = new AbortController(); const signal = abortController.signal; // Add 15 listeners (more than default 10, but less than our configured 20) for (let i = 0; i < 15; i++) { signal.addEventListener('abort', () => {}); } // No warnings should be emitted const maxListenerWarnings = warnings.filter( (w) => w.name === 'MaxListenersExceededWarning', ); expect(maxListenerWarnings).toHaveLength(0); } finally { process.removeAllListeners('warning'); originalWarning.forEach((listener) => process.on('warning', listener)); } }); }); });

Latest Blog Posts

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/pshempel/mcp-time-server-node'

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