feat(trace): include url into route.fulfill call params (#16934)
This commit is contained in:
parent
9f51af5583
commit
aaa28394cd
|
|
@ -128,6 +128,8 @@ export class RouteDispatcher extends Dispatcher<Route, channels.RouteChannel, Re
|
||||||
}
|
}
|
||||||
|
|
||||||
async continue(params: channels.RouteContinueParams, metadata: CallMetadata): Promise<channels.RouteContinueResult> {
|
async continue(params: channels.RouteContinueParams, metadata: CallMetadata): Promise<channels.RouteContinueResult> {
|
||||||
|
// Used to discriminate between continue in tracing.
|
||||||
|
metadata.params.requestUrl = this._object.request().url();
|
||||||
await this._object.continue({
|
await this._object.continue({
|
||||||
url: params.url,
|
url: params.url,
|
||||||
method: params.method,
|
method: params.method,
|
||||||
|
|
@ -136,11 +138,15 @@ export class RouteDispatcher extends Dispatcher<Route, channels.RouteChannel, Re
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async fulfill(params: channels.RouteFulfillParams): Promise<void> {
|
async fulfill(params: channels.RouteFulfillParams, metadata: CallMetadata): Promise<void> {
|
||||||
|
// Used to discriminate between fulfills in tracing.
|
||||||
|
metadata.params.requestUrl = this._object.request().url();
|
||||||
await this._object.fulfill(params);
|
await this._object.fulfill(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
async abort(params: channels.RouteAbortParams): Promise<void> {
|
async abort(params: channels.RouteAbortParams, metadata: CallMetadata): Promise<void> {
|
||||||
|
// Used to discriminate between abort in tracing.
|
||||||
|
metadata.params.requestUrl = this._object.request().url();
|
||||||
await this._object.abort(params.errorCode || 'failed');
|
await this._object.abort(params.errorCode || 'failed');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -633,3 +633,56 @@ test('should open two trace files', async ({ context, page, request, server, sho
|
||||||
await expect(callLine.locator('text=events')).toHaveText(/events: [\d]+/);
|
await expect(callLine.locator('text=events')).toHaveText(/events: [\d]+/);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('should include requestUrl in route.fulfill', async ({ page, runAndTrace, browserName }) => {
|
||||||
|
await page.route('**/*', route => {
|
||||||
|
route.fulfill({
|
||||||
|
status: 200,
|
||||||
|
headers: {
|
||||||
|
'content-type': 'text/html'
|
||||||
|
},
|
||||||
|
body: 'Hello there!'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
const traceViewer = await runAndTrace(async () => {
|
||||||
|
await page.goto('http://test.com');
|
||||||
|
});
|
||||||
|
|
||||||
|
// Render snapshot, check expectations.
|
||||||
|
await traceViewer.selectAction('route.fulfill');
|
||||||
|
await traceViewer.page.locator('.tab-label', { hasText: 'Call' }).click();
|
||||||
|
const callLine = traceViewer.page.locator('.call-line');
|
||||||
|
await expect(callLine.locator('text=status')).toContainText('200');
|
||||||
|
await expect(callLine.locator('text=requestUrl')).toContainText('http://test.com');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('should include requestUrl in route.continue', async ({ page, runAndTrace, server }) => {
|
||||||
|
await page.route('**/*', route => {
|
||||||
|
route.continue({ url: server.EMPTY_PAGE });
|
||||||
|
});
|
||||||
|
const traceViewer = await runAndTrace(async () => {
|
||||||
|
await page.goto('http://test.com');
|
||||||
|
});
|
||||||
|
|
||||||
|
// Render snapshot, check expectations.
|
||||||
|
await traceViewer.selectAction('route.continue');
|
||||||
|
await traceViewer.page.locator('.tab-label', { hasText: 'Call' }).click();
|
||||||
|
const callLine = traceViewer.page.locator('.call-line');
|
||||||
|
await expect(callLine.locator('text=requestUrl')).toContainText('http://test.com');
|
||||||
|
await expect(callLine.locator('text=/^url: .*/')).toContainText(server.EMPTY_PAGE);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('should include requestUrl in route.abort', async ({ page, runAndTrace, server }) => {
|
||||||
|
await page.route('**/*', route => {
|
||||||
|
route.abort();
|
||||||
|
});
|
||||||
|
const traceViewer = await runAndTrace(async () => {
|
||||||
|
await page.goto('http://test.com').catch(() => {});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Render snapshot, check expectations.
|
||||||
|
await traceViewer.selectAction('route.abort');
|
||||||
|
await traceViewer.page.locator('.tab-label', { hasText: 'Call' }).click();
|
||||||
|
const callLine = traceViewer.page.locator('.call-line');
|
||||||
|
await expect(callLine.locator('text=requestUrl')).toContainText('http://test.com');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue