From 28b14198b76c04bc4dbc5dcca0bbec8e03696431 Mon Sep 17 00:00:00 2001 From: Max Milton Date: Sun, 15 Dec 2024 00:04:30 +0900 Subject: [PATCH] test: Better service worker e2e tests --- test/e2e/fixtures.ts | 6 +++--- test/e2e/sw.spec.ts | 14 ++++++-------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/test/e2e/fixtures.ts b/test/e2e/fixtures.ts index 529961f22..404e87f81 100644 --- a/test/e2e/fixtures.ts +++ b/test/e2e/fixtures.ts @@ -28,11 +28,11 @@ export const test = baseTest.extend<{ await context.close(); }, async extensionId({ context }, use) { - let [background] = context.serviceWorkers(); + let [sw] = context.serviceWorkers(); // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - background ??= await context.waitForEvent('serviceworker'); + sw ??= await context.waitForEvent('serviceworker', { timeout: 200 }); - const extensionId = background.url().split('/')[2]; + const extensionId = sw.url().split('/')[2]; await use(extensionId); }, }); diff --git a/test/e2e/sw.spec.ts b/test/e2e/sw.spec.ts index 47b209409..f25018b8f 100644 --- a/test/e2e/sw.spec.ts +++ b/test/e2e/sw.spec.ts @@ -1,11 +1,9 @@ import { expect, test } from './fixtures'; -test('background service worker', async ({ context }) => { - let [background] = context.serviceWorkers(); - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - background ??= await context.waitForEvent('serviceworker'); - - // FIXME: Better assertions - - expect(background).toBeTruthy(); +test('has a single background service worker (sw.js)', async ({ context, extensionId }) => { + const workers = context.serviceWorkers(); + expect(workers).toHaveLength(1); + expect(workers[0]?.url()).toBe(`chrome-extension://${extensionId}/sw.js`); }); + +// TODO: Check there are no console messages or unhandled errors in the worker.