Skip to main content
Glama

Backlog MCP Server

runToolSafely.test.ts1.46 kB
import { describe, expect, it } from '@jest/globals'; import { ErrorLike, isErrorLike } from '../types/result.js'; import { runToolSafely } from './runToolSafely.js'; describe('runToolSafely', () => { it('returns ok result when handler succeeds', async () => { const mockFn = async (input: number) => input * 2; const safeFn = runToolSafely<number, number>(mockFn); const result = await safeFn(3); expect(result).toEqual({ kind: 'ok', data: 6 }); }); it('returns error result when handler throws (default handler)', async () => { const mockFn = async () => { throw new Error('Boom'); }; const safeFn = runToolSafely(mockFn); const result = await safeFn(undefined as never); expect(result.kind).toBe('error'); if (isErrorLike(result)) { expect(result.message).toMatch(/Boom/); } else { throw new Error('Expected error result, but got success'); } }); it('uses custom error handler when provided', async () => { const mockFn = async () => { throw new Error('Something went wrong'); }; const customErrorHandler = (err: unknown): ErrorLike => ({ kind: 'error', message: 'Custom: ' + (err as Error).message, }); const safeFn = runToolSafely(mockFn, customErrorHandler); const result = await safeFn(undefined as never); expect(result).toEqual({ kind: 'error', message: 'Custom: Something went wrong', }); }); });

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/nulab/backlog-mcp-server'

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