test: unflake trace-viewer.spec.ts (#8694)
This commit is contained in:
parent
1762f4c547
commit
f7a490f80e
|
|
@ -147,16 +147,15 @@ test('should show empty trace viewer', async ({ showTraceViewer }, testInfo) =>
|
||||||
|
|
||||||
test('should open simple trace viewer', async ({ showTraceViewer }) => {
|
test('should open simple trace viewer', async ({ showTraceViewer }) => {
|
||||||
const traceViewer = await showTraceViewer(traceFile);
|
const traceViewer = await showTraceViewer(traceFile);
|
||||||
const actionTitles = await traceViewer.actionTitles.allTextContents();
|
await expect(traceViewer.actionTitles).toHaveText([
|
||||||
expect(sanitize(actionTitles)).toEqual([
|
/page.gotodata:text\/html,<html>Hello world<\/html>— \d+ms/,
|
||||||
'page.gotodata:text/html,<html>Hello world</html>— Xms',
|
/page.setContent— \d+ms/,
|
||||||
'page.setContent— Xms',
|
/page.evaluate— \d+ms/,
|
||||||
'page.evaluate— Xms',
|
/page.click"Click"— \d+ms/,
|
||||||
'page.click\"Click\"— Xms',
|
/page.waitForNavigation— \d+ms/,
|
||||||
'page.waitForNavigation— Xms',
|
/page.gotodata:text\/html,<html>Hello world 2<\/html>— \d+ms/,
|
||||||
'page.gotodata:text/html,<html>Hello world 2</html>— Xms',
|
/page.setViewportSize— \d+ms/,
|
||||||
'page.setViewportSize— Xms',
|
/page.hoverbody— \d+ms/,
|
||||||
'page.hoverbody— Xms',
|
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -198,10 +197,9 @@ test('should open console errors on click', async ({ showTraceViewer, browserNam
|
||||||
test('should show params and return value', async ({ showTraceViewer, browserName }) => {
|
test('should show params and return value', async ({ showTraceViewer, browserName }) => {
|
||||||
const traceViewer = await showTraceViewer(traceFile);
|
const traceViewer = await showTraceViewer(traceFile);
|
||||||
await traceViewer.selectAction('page.evaluate');
|
await traceViewer.selectAction('page.evaluate');
|
||||||
const callLines = await traceViewer.callLines.allTextContents();
|
await expect(traceViewer.callLines).toHaveText([
|
||||||
expect(sanitize(callLines)).toEqual([
|
/page.evaluate — \d+ms/,
|
||||||
'page.evaluate — Xms',
|
'expression: "({↵ a↵ }) => {↵ console.log(\'Info\');↵ console.warn(\'Warning\');↵ con…"',
|
||||||
'expression: "({↵ a↵ }) => {↵ console.log(\'Info\');↵ console.warn(\'Warning\');↵ con…"',
|
|
||||||
'isFunction: true',
|
'isFunction: true',
|
||||||
'arg: {"a":"paramA","b":4}',
|
'arg: {"a":"paramA","b":4}',
|
||||||
'value: "return paramA"'
|
'value: "return paramA"'
|
||||||
|
|
@ -222,20 +220,16 @@ test('should have correct stack trace', async ({ showTraceViewer }) => {
|
||||||
|
|
||||||
await traceViewer.selectAction('page.click');
|
await traceViewer.selectAction('page.click');
|
||||||
await traceViewer.showSourceTab();
|
await traceViewer.showSourceTab();
|
||||||
const stack1 = await traceViewer.stackFrames.allInnerTexts();
|
const stack1 = (await traceViewer.stackFrames.allInnerTexts()).map(s => s.replace(/\s+/g, ' ').replace(/:[0-9]+/g, ':XXX'));
|
||||||
expect(sanitize(stack1).slice(0, 2)).toEqual([
|
expect(stack1.slice(0, 2)).toEqual([
|
||||||
'doClick trace-viewer.spec.ts :X',
|
'doClick trace-viewer.spec.ts :XXX',
|
||||||
'recordTrace trace-viewer.spec.ts :X',
|
'recordTrace trace-viewer.spec.ts :XXX',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
await traceViewer.selectAction('page.hover');
|
await traceViewer.selectAction('page.hover');
|
||||||
await traceViewer.showSourceTab();
|
await traceViewer.showSourceTab();
|
||||||
const stack2 = await traceViewer.stackFrames.allInnerTexts();
|
const stack2 = (await traceViewer.stackFrames.allInnerTexts()).map(s => s.replace(/\s+/g, ' ').replace(/:[0-9]+/g, ':XXX'));
|
||||||
expect(sanitize(stack2).slice(0, 1)).toEqual([
|
expect(stack2.slice(0, 1)).toEqual([
|
||||||
'BrowserType.browserType._onWillCloseContext trace-viewer.spec.ts :X',
|
'BrowserType.browserType._onWillCloseContext trace-viewer.spec.ts :XXX',
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
function sanitize(texts: string[]): string[] {
|
|
||||||
return texts.map(s => s.replace(/\s+/g, ' ').replace(/\.ts :[0-9]+/g, '.ts :X').replace(/[0-9]+ms/g, 'Xms'));
|
|
||||||
}
|
|
||||||
|
|
|
||||||
6
types/testExpect.d.ts
vendored
6
types/testExpect.d.ts
vendored
|
|
@ -29,7 +29,7 @@ export declare type Expect = {
|
||||||
stringMatching(expected: string | RegExp): AsymmetricMatcher;
|
stringMatching(expected: string | RegExp): AsymmetricMatcher;
|
||||||
};
|
};
|
||||||
|
|
||||||
type OverriddenExpectProperties =
|
type OverriddenExpectProperties =
|
||||||
'not' |
|
'not' |
|
||||||
'resolves' |
|
'resolves' |
|
||||||
'rejects' |
|
'rejects' |
|
||||||
|
|
@ -122,7 +122,7 @@ declare global {
|
||||||
/**
|
/**
|
||||||
* Asserts that DOM node has a given CSS class.
|
* Asserts that DOM node has a given CSS class.
|
||||||
*/
|
*/
|
||||||
toHaveClass(className: string | RegExp | string[], options?: { timeout?: number }): Promise<R>;
|
toHaveClass(className: string | RegExp | (string|RegExp)[], options?: { timeout?: number }): Promise<R>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Asserts number of DOM nodes matching given locator.
|
* Asserts number of DOM nodes matching given locator.
|
||||||
|
|
@ -147,7 +147,7 @@ declare global {
|
||||||
/**
|
/**
|
||||||
* Asserts element's text content.
|
* Asserts element's text content.
|
||||||
*/
|
*/
|
||||||
toHaveText(expected: string | RegExp | string[], options?: { timeout?: number, useInnerText?: boolean }): Promise<R>;
|
toHaveText(expected: string | RegExp | (string|RegExp)[], options?: { timeout?: number, useInnerText?: boolean }): Promise<R>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Asserts page's title.
|
* Asserts page's title.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue