diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 4b2a406b..2b224ce2 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -449,7 +449,7 @@ jobs: run: pnpm --filter pilo-extension exec playwright install-deps chromium - name: Run extension e2e tests - run: pnpm --filter pilo-extension run test:e2e:headless:chrome + run: pnpm --filter pilo-extension run test:e2e:headless - name: Upload Playwright report uses: actions/upload-artifact@v4 diff --git a/.prettierignore b/.prettierignore index 59779f7e..c7f566f0 100644 --- a/.prettierignore +++ b/.prettierignore @@ -19,5 +19,10 @@ packages/core/schemas/ # WXT framework auto-generated files packages/extension/.wxt/ +# Playwright e2e artifacts (gitignored, but prettier still walks them, +# so a local e2e run would otherwise fail `format:check`) +packages/extension/playwright-report/ +packages/extension/test-results/ + # Dependencies node_modules/ \ No newline at end of file diff --git a/packages/extension/e2e/sidepanel.spec.ts b/packages/extension/e2e/sidepanel.spec.ts index 62f5f79d..17fe4423 100644 --- a/packages/extension/e2e/sidepanel.spec.ts +++ b/packages/extension/e2e/sidepanel.spec.ts @@ -11,7 +11,7 @@ test.describe("Sidepanel", () => { await page.waitForLoadState("networkidle"); // Verify settings page is shown (extension auto-redirects when no API key) - await expect(page.getByText("Pilo Settings")).toBeVisible(); + await expect(page.getByRole("heading", { name: "Settings" })).toBeVisible(); await expect(page.getByText("API Key")).toBeVisible(); await expect(page.getByText("Save Settings")).toBeVisible(); }); @@ -24,8 +24,8 @@ test.describe("Sidepanel", () => { await page.goto(sidepanelUrl); await page.waitForLoadState("networkidle"); - // Click "Back to Chat" button - await page.getByText("Back to Chat").click(); + // Click the "Back to chat" button + await page.getByRole("button", { name: "Back to chat" }).click(); // Wait for chat view to appear await page.waitForLoadState("networkidle"); @@ -45,7 +45,7 @@ test.describe("Sidepanel", () => { await expect(sendButton).toBeDisabled(); // Verify settings button is visible - const settingsButton = page.getByTestId("settings-button"); + const settingsButton = page.getByRole("button", { name: "Open settings" }); await expect(settingsButton).toBeVisible(); }); @@ -55,7 +55,7 @@ test.describe("Sidepanel", () => { await page.waitForLoadState("networkidle"); // Navigate to chat view - await page.getByText("Back to Chat").click(); + await page.getByRole("button", { name: "Back to chat" }).click(); await page.waitForLoadState("networkidle"); const taskInput = page.getByTestId("task-input"); @@ -77,15 +77,15 @@ test.describe("Sidepanel", () => { await page.waitForLoadState("networkidle"); // Navigate to chat view first - await page.getByText("Back to Chat").click(); + await page.getByRole("button", { name: "Back to chat" }).click(); await page.waitForLoadState("networkidle"); // Click settings button - const settingsButton = page.getByTestId("settings-button"); + const settingsButton = page.getByRole("button", { name: "Open settings" }); await settingsButton.click(); // Should be back on settings page - await expect(page.getByText("Pilo Settings")).toBeVisible(); + await expect(page.getByRole("heading", { name: "Settings" })).toBeVisible(); await expect(page.getByText("API Key")).toBeVisible(); }); });