chore(trace): do not nest API actions based on time (#31990)
They should be properly nested based on Node.js zones now.
This commit is contained in:
parent
5c9ce6b9d9
commit
fef27395a5
|
|
@ -261,7 +261,6 @@ const playwrightFixtures: Fixtures<TestFixtures, WorkerFixtures> = ({
|
||||||
title: renderApiCall(apiName, params),
|
title: renderApiCall(apiName, params),
|
||||||
apiName,
|
apiName,
|
||||||
params,
|
params,
|
||||||
canNestByTime: true,
|
|
||||||
});
|
});
|
||||||
userData.userObject = step;
|
userData.userObject = step;
|
||||||
out.stepId = step.stepId;
|
out.stepId = step.stepId;
|
||||||
|
|
|
||||||
|
|
@ -44,9 +44,6 @@ export interface TestStepInternal {
|
||||||
infectParentStepsWithError?: boolean;
|
infectParentStepsWithError?: boolean;
|
||||||
box?: boolean;
|
box?: boolean;
|
||||||
isStage?: boolean;
|
isStage?: boolean;
|
||||||
// TODO: this сould be decided based on the category, but pw:api
|
|
||||||
// is from a different abstraction layer.
|
|
||||||
canNestByTime?: boolean;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export type TestStage = {
|
export type TestStage = {
|
||||||
|
|
@ -255,11 +252,6 @@ export class TestInfoImpl implements TestInfo {
|
||||||
parentStep = this._findLastStageStep();
|
parentStep = this._findLastStageStep();
|
||||||
} else {
|
} else {
|
||||||
parentStep = zones.zoneData<TestStepInternal>('stepZone');
|
parentStep = zones.zoneData<TestStepInternal>('stepZone');
|
||||||
if (!parentStep && data.canNestByTime) {
|
|
||||||
// API steps (but not test.step calls) can be nested by time, instead of by stack.
|
|
||||||
// However, do not nest chains of route.continue by checking the title.
|
|
||||||
parentStep = this._findLastNonFinishedStep(step => step.title !== data.title);
|
|
||||||
}
|
|
||||||
if (!parentStep) {
|
if (!parentStep) {
|
||||||
// If no parent step on stack, assume the current stage as parent.
|
// If no parent step on stack, assume the current stage as parent.
|
||||||
parentStep = this._findLastStageStep();
|
parentStep = this._findLastStageStep();
|
||||||
|
|
|
||||||
|
|
@ -1216,9 +1216,9 @@ test('should not nest top level expect into unfinished api calls ', {
|
||||||
' browserContext.newPage',
|
' browserContext.newPage',
|
||||||
'page.route',
|
'page.route',
|
||||||
'page.goto',
|
'page.goto',
|
||||||
' route.fetch',
|
'route.fetch',
|
||||||
' page.unrouteAll',
|
|
||||||
'expect.toBeVisible',
|
'expect.toBeVisible',
|
||||||
|
'page.unrouteAll',
|
||||||
'After Hooks',
|
'After Hooks',
|
||||||
' fixture: page',
|
' fixture: page',
|
||||||
' fixture: context',
|
' fixture: context',
|
||||||
|
|
|
||||||
|
|
@ -542,7 +542,7 @@ fixture | fixture: browser
|
||||||
`);
|
`);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should nest page.continue inside page.goto steps', async ({ runInlineTest }) => {
|
test('should not nest page.continue inside page.goto steps', async ({ runInlineTest }) => {
|
||||||
const result = await runInlineTest({
|
const result = await runInlineTest({
|
||||||
'reporter.ts': stepIndentReporter,
|
'reporter.ts': stepIndentReporter,
|
||||||
'playwright.config.ts': `module.exports = { reporter: './reporter', };`,
|
'playwright.config.ts': `module.exports = { reporter: './reporter', };`,
|
||||||
|
|
@ -566,7 +566,7 @@ fixture | fixture: page
|
||||||
pw:api | browserContext.newPage
|
pw:api | browserContext.newPage
|
||||||
pw:api |page.route @ a.test.ts:4
|
pw:api |page.route @ a.test.ts:4
|
||||||
pw:api |page.goto(http://localhost:1234) @ a.test.ts:5
|
pw:api |page.goto(http://localhost:1234) @ a.test.ts:5
|
||||||
pw:api | route.fulfill @ a.test.ts:4
|
pw:api |route.fulfill @ a.test.ts:4
|
||||||
hook |After Hooks
|
hook |After Hooks
|
||||||
fixture | fixture: page
|
fixture | fixture: page
|
||||||
fixture | fixture: context
|
fixture | fixture: context
|
||||||
|
|
@ -1154,7 +1154,7 @@ pw:api | browserContext.newPage
|
||||||
fixture | fixture: request
|
fixture | fixture: request
|
||||||
pw:api | apiRequest.newContext
|
pw:api | apiRequest.newContext
|
||||||
pw:api |page.waitForNavigation @ a.test.ts:5
|
pw:api |page.waitForNavigation @ a.test.ts:5
|
||||||
pw:api | page.goto(data:text/html,<button></button>) @ a.test.ts:6
|
pw:api |page.goto(data:text/html,<button></button>) @ a.test.ts:6
|
||||||
pw:api |page.click(button) @ a.test.ts:8
|
pw:api |page.click(button) @ a.test.ts:8
|
||||||
pw:api |locator.getByRole('button').click @ a.test.ts:9
|
pw:api |locator.getByRole('button').click @ a.test.ts:9
|
||||||
pw:api |apiRequestContext.get(http://localhost2) @ a.test.ts:10
|
pw:api |apiRequestContext.get(http://localhost2) @ a.test.ts:10
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue