Skip to main content
Glama
errorHandling.test.ts1.84 kB
import { describe, expect, it, vi } from "vitest"; import { handleToolError } from "../../src/core/errorHandling.js"; import type { ILogger } from "../../src/core/logger.js"; describe("errorHandling", () => { describe("handleToolError", () => { const mockLogger: ILogger = { sendLog: vi.fn(), }; it("should handle Error instance correctly", () => { const error = new Error("Test error"); const result = handleToolError(error, mockLogger, "Operation failed"); expect(mockLogger.sendLog).toHaveBeenCalledWith({ data: expect.objectContaining({ error: "Test error", toolName: "Operation failed", }), level: "error", logger: "ErrorHandling", }); expect(result).toEqual({ content: [ { text: "Operation failed: Error: Test error", type: "text", }, ], isError: true, }); }); it("should handle string error correctly", () => { const error = "String error"; const result = handleToolError(error, mockLogger, "Operation failed"); expect(mockLogger.sendLog).toHaveBeenCalled(); expect(result.isError).toBe(true); expect(result.content[0].text).toContain("String error"); }); it("should handle null error correctly", () => { const error = null; const result = handleToolError(error, mockLogger, "Operation failed"); expect(mockLogger.sendLog).toHaveBeenCalled(); expect(result.isError).toBe(true); expect(result.content[0].text).toContain("Null error received"); }); it("should include reference comment when provided", () => { const error = new Error("Test error"); const referenceComment = "See documentation"; const result = handleToolError( error, mockLogger, "Operation failed", referenceComment, ); expect(result.content[0].text).toContain("See documentation"); }); }); });

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/8beeeaaat/touchdesigner-mcp'

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