mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
chore: remove refined title (#22541)
This commit is contained in:
parent
d9a7aa584c
commit
d95268ffc0
@ -94,7 +94,6 @@ export type StepBeginPayload = {
|
||||
export type StepEndPayload = {
|
||||
testId: string;
|
||||
stepId: string;
|
||||
refinedTitle?: string;
|
||||
wallTime: number; // milliseconds since unix epoch
|
||||
error?: TestInfoError;
|
||||
};
|
||||
|
||||
@ -46,7 +46,7 @@ import {
|
||||
toHaveValues,
|
||||
toPass
|
||||
} from './matchers';
|
||||
import { toMatchSnapshot, toHaveScreenshot } from './toMatchSnapshot';
|
||||
import { toMatchSnapshot, toHaveScreenshot, toHaveScreenshotStepTitle } from './toMatchSnapshot';
|
||||
import type { Expect } from '../../types/test';
|
||||
import { currentTestInfo, currentExpectTimeout } from '../common/globals';
|
||||
import { filteredStackTrace, serializeError, stringifyStackFrames, trimLongString } from '../util';
|
||||
@ -210,7 +210,9 @@ class ExpectMetaInfoProxyHandler implements ProxyHandler<any> {
|
||||
const rawStack = captureRawStack();
|
||||
const stackFrames = filteredStackTrace(rawStack);
|
||||
const customMessage = this._info.message || '';
|
||||
const defaultTitle = `expect${this._info.isPoll ? '.poll' : ''}${this._info.isSoft ? '.soft' : ''}${this._info.isNot ? '.not' : ''}.${matcherName}`;
|
||||
const argsSuffix = computeArgsSuffix(matcherName, args);
|
||||
|
||||
const defaultTitle = `expect${this._info.isPoll ? '.poll' : ''}${this._info.isSoft ? '.soft' : ''}${this._info.isNot ? '.not' : ''}.${matcherName}${argsSuffix}`;
|
||||
const wallTime = Date.now();
|
||||
const step = testInfo._addStep({
|
||||
location: stackFrames[0],
|
||||
@ -218,7 +220,6 @@ class ExpectMetaInfoProxyHandler implements ProxyHandler<any> {
|
||||
title: trimLongString(customMessage || defaultTitle, 1024),
|
||||
wallTime
|
||||
});
|
||||
testInfo.currentStep = step;
|
||||
|
||||
const generateTraceEvent = matcherName !== 'poll' && matcherName !== 'toPass';
|
||||
const callId = ++lastCallId;
|
||||
@ -314,4 +315,11 @@ async function pollMatcher(matcherName: any, isNot: boolean, pollIntervals: numb
|
||||
}
|
||||
}
|
||||
|
||||
function computeArgsSuffix(matcherName: string, args: any[]) {
|
||||
let value = '';
|
||||
if (matcherName === 'toHaveScreenshot')
|
||||
value = toHaveScreenshotStepTitle(...args);
|
||||
return value ? `(${value})` : '';
|
||||
}
|
||||
|
||||
expectLibrary.extend(customMatchers);
|
||||
|
||||
@ -110,7 +110,6 @@ class SnapshotHelper<T extends ImageComparatorOptions> {
|
||||
}
|
||||
}
|
||||
|
||||
testInfo.currentStep!.refinedTitle = `${testInfo.currentStep!.title}(${path.basename(this.snapshotName)})`;
|
||||
options = {
|
||||
...configOptions,
|
||||
...options,
|
||||
@ -288,6 +287,18 @@ export function toMatchSnapshot(
|
||||
|
||||
type HaveScreenshotOptions = ImageComparatorOptions & Omit<PageScreenshotOptions, 'type' | 'quality' | 'path'>;
|
||||
|
||||
export function toHaveScreenshotStepTitle(
|
||||
nameOrOptions: NameOrSegments | { name?: NameOrSegments } & HaveScreenshotOptions = {},
|
||||
optOptions: HaveScreenshotOptions = {}
|
||||
): string {
|
||||
let name: NameOrSegments | undefined;
|
||||
if (typeof nameOrOptions === 'object' && !Array.isArray(nameOrOptions))
|
||||
name = nameOrOptions.name;
|
||||
else
|
||||
name = nameOrOptions;
|
||||
return Array.isArray(name) ? name.join(path.sep) : name || '';
|
||||
}
|
||||
|
||||
export async function toHaveScreenshot(
|
||||
this: ReturnType<Expect['getState']>,
|
||||
pageOrLocator: Page | Locator,
|
||||
|
||||
@ -301,8 +301,6 @@ export class Dispatcher {
|
||||
this._reporter.onStdErr?.('Internal error: step end without step begin: ' + params.stepId, data.test, result);
|
||||
return;
|
||||
}
|
||||
if (params.refinedTitle)
|
||||
step.title = params.refinedTitle;
|
||||
step.duration = params.wallTime - step.startTime.getTime();
|
||||
if (params.error)
|
||||
step.error = params.error;
|
||||
|
||||
@ -33,7 +33,6 @@ interface TestStepInternal {
|
||||
category: string;
|
||||
wallTime: number;
|
||||
location?: Location;
|
||||
refinedTitle?: string;
|
||||
}
|
||||
|
||||
export class TestInfoImpl implements TestInfo {
|
||||
@ -77,7 +76,6 @@ export class TestInfoImpl implements TestInfo {
|
||||
readonly outputDir: string;
|
||||
readonly snapshotDir: string;
|
||||
errors: TestInfoError[] = [];
|
||||
currentStep: TestStepInternal | undefined;
|
||||
|
||||
get error(): TestInfoError | undefined {
|
||||
return this.errors[0];
|
||||
@ -234,7 +232,6 @@ export class TestInfoImpl implements TestInfo {
|
||||
}
|
||||
const payload: StepEndPayload = {
|
||||
testId: this._test.id,
|
||||
refinedTitle: step.refinedTitle,
|
||||
stepId,
|
||||
wallTime: Date.now(),
|
||||
error,
|
||||
|
||||
@ -199,8 +199,7 @@ test('should report toHaveScreenshot step with expectation name in title', async
|
||||
test('is a test', async ({ page }) => {
|
||||
// Named expectation.
|
||||
await expect(page).toHaveScreenshot('foo.png', { timeout: 2000 });
|
||||
// Anonymous expectation.
|
||||
await expect(page).toHaveScreenshot({ timeout: 2000 });
|
||||
await expect(page).toHaveScreenshot({ name: 'is-a-test-1.png', timeout: 2000 });
|
||||
});
|
||||
`
|
||||
}, { 'reporter': '', 'workers': 1, 'update-snapshots': true });
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user