blob: b3cce992cc92a20424c47df36d582a613c1aaea8 [file] [log] [blame]
// Copyright 2023 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import type * as SDK from '../core/sdk/sdk.js';
import type * as Protocol from '../generated/protocol.js';
import * as IssuesManager from '../models/issues_manager/issues_manager.js';
import * as Logs from '../models/logs/logs.js';
import * as Console from '../panels/console/console.js';
import * as Components from '../ui/legacy/components/utils/utils.js';
export function createConsoleViewMessageWithStubDeps(rawMessage: SDK.ConsoleModel.ConsoleMessage) {
const linkifier = sinon.createStubInstance(Components.Linkifier.Linkifier);
const requestResolver = sinon.createStubInstance(Logs.RequestResolver.RequestResolver);
const issuesResolver = sinon.createStubInstance(IssuesManager.IssueResolver.IssueResolver);
const message = new Console.ConsoleViewMessage.ConsoleViewMessage(
rawMessage, linkifier, requestResolver, issuesResolver, /* onResize */ () => {});
return {message, linkifier};
}
/**
* Helper for less verbose stack traces in test code. Pass stack traces with the
* following format:
*
* "<scriptId>::<functionName>::<url>::<lineNumber>::<columnNumber>"
*/
export function createStackTrace(callFrameDescriptions: string[]): Protocol.Runtime.StackTrace {
const callFrames: Protocol.Runtime.CallFrame[] = callFrameDescriptions.map(descriptor => {
const fields = descriptor.split('::');
assert.lengthOf(fields, 5);
return {
scriptId: fields[0] as Protocol.Runtime.ScriptId,
functionName: fields[1],
url: fields[2],
lineNumber: Number.parseInt(fields[3], 10),
columnNumber: Number.parseInt(fields[4], 10),
};
});
return {callFrames};
}