drawio-mcp-server
Version:
Provides Draw.io services to MCP Clients
64 lines (63 loc) • 2.82 kB
JavaScript
import { jest } from "@jest/globals";
import { create_logger } from "./mcp_console_logger.js";
describe("create_logger", () => {
let originalConsoleError;
let mockConsoleError;
beforeEach(() => {
// Save original console.error
originalConsoleError = console.error;
// Create mock for console.error
mockConsoleError = jest.fn();
console.error = mockConsoleError;
});
afterEach(() => {
// Restore original console.error
console.error = originalConsoleError;
// Clear all mocks
jest.clearAllMocks();
});
it("should return a Logger object with log and debug methods", () => {
const logger = create_logger();
expect(logger).toBeDefined();
expect(typeof logger.log).toBe("function");
expect(typeof logger.debug).toBe("function");
});
it("log method should call console.error with message and data", () => {
const logger = create_logger();
const testMessage = "test message";
const testData = { key: "value" };
const testLevel = "info";
logger.log(testLevel, testMessage, testData);
expect(mockConsoleError).toHaveBeenCalledTimes(1);
expect(mockConsoleError).toHaveBeenCalledWith(`${testLevel.toUpperCase()}: ${testMessage}`, testData);
});
it("debug method should call console.error with message and data", () => {
const logger = create_logger();
const testMessage = "debug message";
const testData = { debug: true };
logger.debug(testMessage, testData);
expect(mockConsoleError).toHaveBeenCalledTimes(1);
expect(mockConsoleError).toHaveBeenCalledWith(`DEBUG: ${testMessage}`, testData);
});
it("should handle no additional data parameters", () => {
const logger = create_logger();
const testMessage = "message without data";
logger.log("warn", testMessage);
expect(mockConsoleError).toHaveBeenCalledWith(`WARN: ${testMessage}`);
mockConsoleError.mockClear();
logger.debug(testMessage);
expect(mockConsoleError).toHaveBeenCalledWith(`DEBUG: ${testMessage}`);
});
it("should handle multiple data parameters", () => {
const logger = create_logger();
const testMessage = "message with multiple data";
const data1 = { key1: "value1" };
const data2 = { key2: "value2" };
const data3 = "string data";
logger.log("error", testMessage, data1, data2, data3);
expect(mockConsoleError).toHaveBeenCalledWith(`ERROR: ${testMessage}`, data1, data2, data3);
mockConsoleError.mockClear();
logger.debug(testMessage, data1, data2, data3);
expect(mockConsoleError).toHaveBeenCalledWith(`DEBUG: ${testMessage}`, data1, data2, data3);
});
});