From 663aa8d8ecfd4f5a115a9ccd9a8ba71874e085a1 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Tue, 20 Oct 2026 09:50:25 +0200 Subject: [PATCH] test(e2e): desktop browser-tabs hides developer toasts on its attached page --- packages/app/e2e/support/developer-ui.mjs | 10 +++++++--- packages/desktop/e2e/browser-tabs.e2e.mjs | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/app/e2e/support/developer-ui.mjs b/packages/app/e2e/support/developer-ui.mjs index 6b9e199a6c..1d8a0d3533 100644 --- a/packages/app/e2e/support/developer-ui.mjs +++ b/packages/app/e2e/support/developer-ui.mjs @@ -1,11 +1,15 @@ +const HIDE_DEVELOPER_TOASTS = "#error-toast { display: none !important; }"; + /** @param {import('@playwright/test').Page} page */ export async function hideDeveloperToasts(page) { // Developer chrome must not cover app actions or move the test's pointer/focus. // Console errors remain in the runner's logs. Hiding the toast, instead of clicking it away, // leaves no race with a toast that closes or is replaced between matching and clicking. - await page.addInitScript(() => { + await page.addInitScript((css) => { const style = document.createElement("style"); - style.textContent = "#error-toast { display: none !important; }"; + style.textContent = css; document.addEventListener("DOMContentLoaded", () => document.head.append(style)); - }); + }, HIDE_DEVELOPER_TOASTS); + // A page attached after it loaded (Electron over CDP) runs no init script until it navigates. + await page.addStyleTag({ content: HIDE_DEVELOPER_TOASTS }); } diff --git a/packages/desktop/e2e/browser-tabs.e2e.mjs b/packages/desktop/e2e/browser-tabs.e2e.mjs index af142e6385..d403bfdfc3 100644 --- a/packages/desktop/e2e/browser-tabs.e2e.mjs +++ b/packages/desktop/e2e/browser-tabs.e2e.mjs @@ -12,7 +12,7 @@ import { fileURLToPath } from "node:url"; import { experimental_createMCPClient } from "ai"; import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"; import { chromium } from "playwright"; -import { installDeveloperToastDismissal } from "../../app/e2e/support/developer-ui.mjs"; +import { hideDeveloperToasts } from "../../app/e2e/support/developer-ui.mjs"; import { runAppearanceFontSizeRegression } from "./appearance-font-size.electron.mjs"; import { runSettingsMemoryRegression } from "./settings-memory.electron.mjs"; @@ -1189,7 +1189,7 @@ async function main() { browser = await chromium.connectOverCDP(`http://127.0.0.1:${cdpPort}`); const page = await waitForAppPage(browser, expoPort); - await installDeveloperToastDismissal(page); + await hideDeveloperToasts(page); const status = await waitForDesktopStatus(page); const checkPluginLinks = () =>