summaryrefslogtreecommitdiffstats
path: root/remote/test/puppeteer/test/src/target.spec.ts
diff options
context:
space:
mode:
Diffstat (limited to 'remote/test/puppeteer/test/src/target.spec.ts')
-rw-r--r--remote/test/puppeteer/test/src/target.spec.ts52
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 {