1import { test } from "@playwright/test";2import { fileURLToPath } from "url";3import { dirname, join } from "path";4import os from "os";5import fs from "fs/promises";67const __filename = fileURLToPath(import.meta.url);8const __dirname = dirname(__filename);9const EXTENSION_PATH = join(__dirname, "..", "dist");1011test.describe("Extension SW Diagnostic", () => {12 test("diagnostic - check if SW starts with devtools", async () => {13 const { chromium } = await import("playwright");14 const userDataDir = join(os.tmpdir(), `peach-diag2-${Date.now()}`);15 await fs.mkdir(userDataDir, { recursive: true });16 const ctx = await chromium.launchPersistentContext(userDataDir, {17 headless: false,18 args: [19 `--load-extension=${EXTENSION_PATH}`,20 `--disable-extensions-except=${EXTENSION_PATH}`,21 ],22 });2324 await new Promise(r => setTimeout(r, 8000));2526 const sws = ctx.serviceWorkers();27 const pages = ctx.pages();2829 console.log("=== DIAGNOSTIC RESULTS ===");30 console.log(`Service workers: ${sws.length}`);31 console.log(`Pages: ${pages.length}`);32 console.log(`Page URLs: ${pages.map(p => p.url()).join(", ")}`);33 console.log(`SW URLs: ${sws.map(s => s.url()).join(", ")}`);3435 if (sws.length > 0) {36 const sw = sws[0];37 const extId = new URL(sw.url()).host;38 console.log(`Extension ID: ${extId}`);39 const popup = await ctx.newPage();40 await popup.goto(`chrome-extension://${extId}/src/popup/index.html`);41 await popup.waitForTimeout(3000);42 console.log(`Popup URL: ${popup.url()}`);43 console.log(`Popup title: ${await popup.title()}`);44 }4546 await ctx.close();47 });48});