Skip to main content
Glama
consoleFormatter.test.ts3.98 kB
/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import {describe, it} from 'node:test'; import type {ConsoleMessageData} from '../../src/formatters/consoleFormatter.js'; import { formatConsoleEventShort, formatConsoleEventVerbose, } from '../../src/formatters/consoleFormatter.js'; import {getMockAggregatedIssue} from '../utils.js'; describe('consoleFormatter', () => { describe('formatConsoleEventShort', () => { it('formats a console.log message', t => { const message: ConsoleMessageData = { consoleMessageStableId: 1, type: 'log', message: 'Hello, world!', args: [], }; const result = formatConsoleEventShort(message); t.assert.snapshot?.(result); }); it('formats a console.log message with one argument', t => { const message: ConsoleMessageData = { consoleMessageStableId: 2, type: 'log', message: 'Processing file:', args: ['file.txt'], }; const result = formatConsoleEventShort(message); t.assert.snapshot?.(result); }); it('formats a console.log message with multiple arguments', t => { const message: ConsoleMessageData = { consoleMessageStableId: 3, type: 'log', message: 'Processing file:', args: ['file.txt', 'another file'], }; const result = formatConsoleEventShort(message); t.assert.snapshot?.(result); }); }); describe('formatConsoleEventVerbose', () => { it('formats a console.log message', t => { const message: ConsoleMessageData = { consoleMessageStableId: 1, type: 'log', message: 'Hello, world!', args: [], }; const result = formatConsoleEventVerbose(message); t.assert.snapshot?.(result); }); it('formats a console.log message with one argument', t => { const message: ConsoleMessageData = { consoleMessageStableId: 2, type: 'log', message: 'Processing file:', args: ['file.txt'], }; const result = formatConsoleEventVerbose(message); t.assert.snapshot?.(result); }); it('formats a console.log message with multiple arguments', t => { const message: ConsoleMessageData = { consoleMessageStableId: 3, type: 'log', message: 'Processing file:', args: ['file.txt', 'another file'], }; const result = formatConsoleEventVerbose(message); t.assert.snapshot?.(result); }); it('formats a console.error message', t => { const message: ConsoleMessageData = { consoleMessageStableId: 4, type: 'error', message: 'Something went wrong', }; const result = formatConsoleEventVerbose(message); t.assert.snapshot?.(result); }); }); it('formats a console.log message with issue type', t => { const testGenericIssue = { details: () => { return { violatingNodeId: 2, violatingNodeAttribute: 'test', }; }, }; const mockAggregatedIssue = getMockAggregatedIssue(); const mockDescription = { file: 'mock.md', links: [ {link: 'http://example.com/learnmore', linkTitle: 'Learn more'}, { link: 'http://example.com/another-learnmore', linkTitle: 'Learn more 2', }, ], }; mockAggregatedIssue.getDescription.returns(mockDescription); // @ts-expect-error generic issue stub bypass mockAggregatedIssue.getGenericIssues.returns(new Set([testGenericIssue])); const mockDescriptionFileContent = '# Mock Issue Title\n\nThis is a mock issue description'; const message: ConsoleMessageData = { consoleMessageStableId: 5, type: 'issue', description: mockDescriptionFileContent, item: mockAggregatedIssue, }; const result = formatConsoleEventVerbose(message); t.assert.snapshot?.(result); }); });

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/ChromeDevTools/chrome-devtools-mcp'

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