diff options
Diffstat (limited to 'remote/test/puppeteer/test/src/target.spec.ts')
-rw-r--r-- | remote/test/puppeteer/test/src/target.spec.ts | 52 |
1 files changed, 50 insertions, 2 deletions
diff --git a/remote/test/puppeteer/test/src/target.spec.ts b/remote/test/puppeteer/test/src/target.spec.ts index 28d17a4030..6c1b9cb95e 100644 --- a/remote/test/puppeteer/test/src/target.spec.ts +++ b/remote/test/puppeteer/test/src/target.spec.ts @@ -179,6 +179,29 @@ describe('Target', function () { }) ).toBe('[object ServiceWorkerGlobalScope]'); }); + + it('should close a service worker', async () => { + const {page, server, context} = await getTestState(); + + await page.goto(server.PREFIX + '/serviceworkers/empty/sw.html'); + + const target = await context.waitForTarget( + target => { + return target.type() === 'service_worker'; + }, + {timeout: 3000} + ); + const worker = (await target.worker())!; + + const onceDestroyed = new Promise(resolve => { + context.once('targetdestroyed', event => { + resolve(event); + }); + }); + await worker.close(); + expect(await onceDestroyed).toBe(target); + }); + it('should create a worker from a shared worker', async () => { const {page, server, context} = await getTestState(); @@ -199,6 +222,31 @@ describe('Target', function () { }) ).toBe('[object SharedWorkerGlobalScope]'); }); + + it('should close a shared worker', async () => { + const {page, server, context} = await getTestState(); + + await page.goto(server.EMPTY_PAGE); + await page.evaluate(() => { + new SharedWorker('data:text/javascript,console.log("hi2")'); + }); + const target = await context.waitForTarget( + target => { + return target.type() === 'shared_worker'; + }, + {timeout: 3000} + ); + const worker = (await target.worker())!; + + const onceDestroyed = new Promise(resolve => { + context.once('targetdestroyed', event => { + resolve(event); + }); + }); + await worker.close(); + expect(await onceDestroyed).toBe(target); + }); + it('should report when a target url changes', async () => { const {page, server, context} = await getTestState(); @@ -285,7 +333,7 @@ describe('Target', function () { describe('Browser.waitForTarget', () => { it('should wait for a target', async () => { - const {browser, server} = await getTestState(); + const {browser, server, context} = await getTestState(); let resolved = false; const targetPromise = browser.waitForTarget( @@ -306,7 +354,7 @@ describe('Target', function () { throw error; } }); - const page = await browser.newPage(); + const page = await context.newPage(); expect(resolved).toBe(false); await page.goto(server.EMPTY_PAGE); try { |