Skip to main content
Glama

DB Timetable MCP Server

by jorekai
tools.test.ts3.13 kB
import { describe, test, expect, vi, beforeEach } from 'vitest'; import { getCurrentTimetableTool, getRecentChangesTool, getPlannedTimetableTool, findStationsTool } from '../tools/timetableTools.js'; import { timetableApi } from '../api/timetableApi.js'; vi.mock('../api/timetableApi.js', () => ({ timetableApi: { getCurrentTimetable: vi.fn().mockResolvedValue('<timetable>Current Data</timetable>'), getRecentChanges: vi.fn().mockResolvedValue('<timetable>Recent Changes</timetable>'), getPlannedTimetable: vi.fn().mockResolvedValue('<timetable>Planned Data</timetable>'), findStations: vi.fn().mockResolvedValue('<stations>Station Data</stations>') } })); describe('Timetable Tools', () => { beforeEach(() => { vi.clearAllMocks(); }); describe('getCurrentTimetableTool', () => { test('ruft timetableApi.getCurrentTimetable auf', async () => { const args = { evaNo: '8000105' }; const result = await getCurrentTimetableTool.execute(args); expect(timetableApi.getCurrentTimetable).toHaveBeenCalledWith(args); expect(result).toBe('<timetable>Current Data</timetable>'); }); test('validiert Eingabeparameter', async () => { const invalidArgs = { evaNo: '' }; await expect(getCurrentTimetableTool.execute(invalidArgs)).rejects.toThrow(); }); }); describe('getRecentChangesTool', () => { test('ruft timetableApi.getRecentChanges auf', async () => { const args = { evaNo: '8000105' }; const result = await getRecentChangesTool.execute(args); expect(timetableApi.getRecentChanges).toHaveBeenCalledWith(args); expect(result).toBe('<timetable>Recent Changes</timetable>'); }); }); describe('getPlannedTimetableTool', () => { test('ruft timetableApi.getPlannedTimetable auf', async () => { const args = { evaNo: '8000105', date: '230401', hour: '14' }; const result = await getPlannedTimetableTool.execute(args); expect(timetableApi.getPlannedTimetable).toHaveBeenCalledWith(args); expect(result).toBe('<timetable>Planned Data</timetable>'); }); test('validiert Datumsformat', async () => { const invalidArgs = { evaNo: '8000105', date: '2304', hour: '14' }; await expect(getPlannedTimetableTool.execute(invalidArgs)).rejects.toThrow(); }); test('validiert Stundenformat', async () => { const invalidArgs = { evaNo: '8000105', date: '230401', hour: '24' }; await expect(getPlannedTimetableTool.execute(invalidArgs)).rejects.toThrow(); }); }); describe('findStationsTool', () => { test('ruft timetableApi.findStations auf', async () => { const args = { pattern: 'Frankfurt' }; const result = await findStationsTool.execute(args); expect(timetableApi.findStations).toHaveBeenCalledWith(args); expect(result).toBe('<stations>Station Data</stations>'); }); }); });

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/jorekai/db-timetable-mcp'

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