test(service-worker): support mock requests with null/empty client ID (#23625)

PR Close #23625
This commit is contained in:
George Kalpakas 2018-05-01 01:19:31 +03:00 committed by Igor Minar
parent d1abf4e897
commit d6b1466c81
2 changed files with 6 additions and 4 deletions

View File

@ -788,7 +788,8 @@ const manifestUpdateHash = sha1(JSON.stringify(manifestUpdate));
})();
async function makeRequest(
scope: SwTestHarness, url: string, clientId = 'default', init?: Object): Promise<string|null> {
scope: SwTestHarness, url: string, clientId: string | null = 'default',
init?: Object): Promise<string|null> {
const [resPromise, done] = scope.handleFetch(new MockRequest(url, init), clientId);
await done;
const res = await resPromise;

View File

@ -187,11 +187,12 @@ export class SwTestHarness implements ServiceWorkerGlobalScope, Adapter, Context
waitUntil(promise: Promise<void>): void {}
handleFetch(req: Request, clientId?: string): [Promise<Response|undefined>, Promise<void>] {
handleFetch(req: Request, clientId: string|null = null):
[Promise<Response|undefined>, Promise<void>] {
if (!this.eventHandlers.has('fetch')) {
throw new Error('No fetch handler registered');
}
const event = new MockFetchEvent(req, clientId || null);
const event = new MockFetchEvent(req, clientId);
this.eventHandlers.get('fetch') !.call(this, event);
if (clientId) {
@ -210,7 +211,7 @@ export class SwTestHarness implements ServiceWorkerGlobalScope, Adapter, Context
event = new MockMessageEvent(data, null);
} else {
this.clients.add(clientId);
event = new MockMessageEvent(data, this.clients.getMock(clientId) as any);
event = new MockMessageEvent(data, this.clients.getMock(clientId) || null);
}
this.eventHandlers.get('message') !.call(this, event);
return event.ready;