import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { describe, expect, it, vi } from "vitest";
import { McpLogger } from "../../src/core/logger.js";
describe("Logger", () => {
describe("McpLogger", () => {
it("should send log messages to MCP server", () => {
const mockSendLoggingMessage = vi.fn();
const mockServer = {
server: {
sendLoggingMessage: mockSendLoggingMessage,
},
};
const logger = new McpLogger(mockServer as unknown as McpServer);
logger.sendLog({
data: "test message",
level: "info",
});
expect(mockSendLoggingMessage).toHaveBeenCalledWith({
data: "test message",
level: "info",
});
});
it("should handle server not connected errors gracefully", () => {
const mockSendLoggingMessage = vi.fn().mockImplementation(() => {
throw new Error("Not connected");
});
const mockServer = {
server: {
sendLoggingMessage: mockSendLoggingMessage,
},
};
const logger = new McpLogger(mockServer as unknown as McpServer);
expect(() =>
logger.sendLog({
data: "test message",
level: "info",
}),
).not.toThrow();
expect(mockSendLoggingMessage).toHaveBeenCalled();
});
});
});