Skip to main content
Glama
list.test.ts1.78 kB
import { jest } from '@jest/globals'; import { handleListEvents } from '../../../src/tools/calendar/list'; import * as calendarService from '../../../src/services/calendar/events'; import { DEFAULTS } from '../../../src/config/constants'; import { CalendarResponse } from '../../../src/services/calendar/types'; // Mock the calendar service jest.mock('../../../src/services/calendar/events'); describe('List Events Tool', () => { const mockEvents: CalendarResponse = { content: [ { type: 'text', text: 'Test Event 1 at 2pm' }, { type: 'text', text: 'Test Event 2 at 3pm' } ] }; beforeEach(() => { jest.resetAllMocks(); // Mock both the class method and the exported function jest.spyOn(calendarService.CalendarService, 'listEvents') .mockResolvedValue(mockEvents); }); it('returns events with default parameters', async () => { const result = await handleListEvents(); expect(calendarService.CalendarService.listEvents).toHaveBeenCalledWith({ maxResults: DEFAULTS.CALENDAR_MAX_RESULTS }); expect(result).toEqual(mockEvents); }); it('passes all parameters to service', async () => { const params = { maxResults: 10, timeMin: '2024-01-27T00:00:00Z', timeMax: '2024-02-27T00:00:00Z', query: 'test', timeZone: 'UTC' }; const result = await handleListEvents(params); expect(calendarService.CalendarService.listEvents).toHaveBeenCalledWith(params); expect(result).toEqual(mockEvents); }); it('handles service errors', async () => { const error = new Error('API Error'); jest.spyOn(calendarService.CalendarService, 'listEvents') .mockRejectedValue(error); await expect(handleListEvents()).rejects.toThrow('API Error'); }); });

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/zacco16/gmail-mcp-server'

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