call it correlation

This commit is contained in:
Simon Knott 2025-01-27 14:33:12 +01:00
parent 4887ca6750
commit edff9fc11d
No known key found for this signature in database
GPG key ID: 8CEDC00028084AEC
6 changed files with 14 additions and 13 deletions

View file

@ -30,9 +30,9 @@ export class MockingProxy extends ChannelOwner<channels.MockingProxyChannel> {
const requestContext = APIRequestContext.from(initializer.requestContext); const requestContext = APIRequestContext.from(initializer.requestContext);
this._channel.on('route', async (params: channels.MockingProxyRouteEvent) => { this._channel.on('route', async (params: channels.MockingProxyRouteEvent) => {
const browserRequest = params.browserRequest ? this._browserRequests.get(params.browserRequest) : undefined; const browserRequest = params.correlation ? this._browserRequests.get(params.correlation) : undefined;
if (params.browserRequest) if (params.correlation)
this._browserRequests.delete(params.browserRequest); this._browserRequests.delete(params.correlation);
const route = network.Route.from(params.route); const route = network.Route.from(params.route);
route._context = requestContext; route._context = requestContext;
this.emit(Events.MockingProxy.Route, { route, browserRequest }); this.emit(Events.MockingProxy.Route, { route, browserRequest });
@ -49,8 +49,9 @@ export class MockingProxy extends ChannelOwner<channels.MockingProxyChannel> {
return await route.continue(); return await route.continue();
const request = route.request(); const request = route.request();
this._browserRequests.set(request._guid, request); const correlation = request._guid.split('@')[1];
const proxyUrl = `http://localhost:${this.port()}/pw_meta:${request._guid}/`; this._browserRequests.set(correlation, request);
const proxyUrl = `http://localhost:${this.port()}/pw_meta:${correlation}/`;
await route.continue({ headers: { 'x-playwright-proxy': encodeURIComponent(proxyUrl) } }); await route.continue({ headers: { 'x-playwright-proxy': encodeURIComponent(proxyUrl) } });
} }

View file

@ -348,7 +348,7 @@ scheme.MockingProxyInitializer = tObject({
}); });
scheme.MockingProxyRouteEvent = tObject({ scheme.MockingProxyRouteEvent = tObject({
route: tChannel(['Route']), route: tChannel(['Route']),
browserRequest: tOptional(tString), correlation: tOptional(tString),
}); });
scheme.MockingProxySetInterceptionPatternsParams = tObject({ scheme.MockingProxySetInterceptionPatternsParams = tObject({
patterns: tArray(tObject({ patterns: tArray(tObject({

View file

@ -36,9 +36,9 @@ export class MockingProxyDispatcher extends Dispatcher<MockingProxy, channels.Mo
requestContext: APIRequestContextDispatcher.from(scope, mockingProxy.fetchRequest), requestContext: APIRequestContextDispatcher.from(scope, mockingProxy.fetchRequest),
}); });
this.addObjectListener(MockingProxy.Events.Route, ({ route, browserRequest }: {route: Route, browserRequest?: string }) => { this.addObjectListener(MockingProxy.Events.Route, ({ route, correlation }: {route: Route, correlation?: string }) => {
const requestDispatcher = RequestDispatcher.from(this as any, route.request()); const requestDispatcher = RequestDispatcher.from(this as any, route.request());
this._dispatchEvent('route', { route: RouteDispatcher.from(requestDispatcher, route), browserRequest }); this._dispatchEvent('route', { route: RouteDispatcher.from(requestDispatcher, route), correlation });
}); });
} }

View file

@ -70,9 +70,9 @@ export class MockingProxy extends SdkObject implements RequestContext {
if (req.url?.startsWith('/')) if (req.url?.startsWith('/'))
req.url = req.url.substring(1); req.url = req.url.substring(1);
let browserRequest: string | undefined; let correlation: string | undefined;
if (req.url?.startsWith('pw_meta:')) { if (req.url?.startsWith('pw_meta:')) {
browserRequest = req.url.substring('pw_meta:'.length, req.url.indexOf('/')); correlation = req.url.substring('pw_meta:'.length, req.url.indexOf('/'));
req.url = req.url.substring(req.url.indexOf('/') + 1); req.url = req.url.substring(req.url.indexOf('/') + 1);
} }
@ -209,7 +209,7 @@ export class MockingProxy extends SdkObject implements RequestContext {
}); });
if (this._matches?.(req.url!)) if (this._matches?.(req.url!))
this.emit(MockingProxy.Events.Route, { route, browserRequest }); this.emit(MockingProxy.Events.Route, { route, correlation });
else else
await route.continue({ isFallback: false }); await route.continue({ isFallback: false });
} }

View file

@ -593,7 +593,7 @@ export interface MockingProxyChannel extends MockingProxyEventTarget, EventTarge
} }
export type MockingProxyRouteEvent = { export type MockingProxyRouteEvent = {
route: RouteChannel, route: RouteChannel,
browserRequest?: string, correlation?: string,
}; };
export type MockingProxySetInterceptionPatternsParams = { export type MockingProxySetInterceptionPatternsParams = {
patterns: { patterns: {

View file

@ -700,7 +700,7 @@ MockingProxy:
route: route:
parameters: parameters:
route: Route route: Route
browserRequest: string? correlation: string?
Root: Root:
type: interface type: interface