chromedevtools--chrome-devtools-mcp
63b826cfe0
Co-authored-by: Natallia Harshunova <nharshunova@chromium.org>
134 行
3.9 KiB
TypeScript
134 行
3.9 KiB
TypeScript
/**
|
|
* @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);
|
|
});
|
|
});
|