Skip to main content
Glama

Gemini Context MCP Server

by ogoldberg
logger.test.ts2.77 kB
import { Logger } from '../utils/logger.js'; import { jest, describe, beforeEach, afterEach, it, expect } from '@jest/globals'; import { config } from '../config.js'; import { Writable } from 'stream'; describe('Logger', () => { let mockStream: Writable; let originalDebugLogging: boolean; let writeSpy: jest.Mock; beforeEach(() => { originalDebugLogging = config.server.enableDebugLogging; config.server.enableDebugLogging = true; mockStream = new Writable({ write(chunk, encoding, callback) { callback(); } }); writeSpy = jest.spyOn(mockStream, 'write') as jest.Mock; Logger.setOutputStream(mockStream); }); afterEach(() => { config.server.enableDebugLogging = originalDebugLogging; Logger.setOutputStream(process.stdout); jest.restoreAllMocks(); }); it('should format messages with level', () => { const message = 'Test message'; Logger.info(message); expect(writeSpy).toHaveBeenCalledWith('[INFO] Test message \n'); }); it('should handle additional arguments', () => { const message = 'Test message'; const arg1 = { key: 'value' }; const arg2 = [1, 2, 3]; Logger.info(message, arg1, arg2); expect(writeSpy).toHaveBeenCalledWith(`[INFO] Test message [object Object] 1,2,3\n`); }); it('should log warning messages', () => { const message = 'Warning message'; Logger.warn(message); expect(writeSpy).toHaveBeenCalledWith('[WARN] Warning message \n'); }); it('should log error messages', () => { const message = 'Error message'; Logger.error(message); expect(writeSpy).toHaveBeenCalledWith('[ERROR] Error message \n'); }); it('should log debug messages when enabled', () => { const message = 'Debug message'; Logger.debug(message); expect(writeSpy).toHaveBeenCalledWith('[DEBUG] Debug message \n'); }); it('should not log debug messages when disabled', () => { config.server.enableDebugLogging = false; const message = 'Debug message'; Logger.debug(message); expect(writeSpy).not.toHaveBeenCalled(); }); it('should handle stream changes', () => { const newMockStream = new Writable({ write(chunk, encoding, callback) { callback(); } }); const newWriteSpy = jest.spyOn(newMockStream, 'write') as jest.Mock; Logger.setOutputStream(newMockStream); Logger.info('Test'); expect(writeSpy).not.toHaveBeenCalled(); expect(newWriteSpy).toHaveBeenCalledWith('[INFO] Test \n'); }); });

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/ogoldberg/gemini-context-mcp-server'

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