Electron Webview Find QA
alpha electronneedle first
beta no match
gamma electronneedle second
delta ELECTRONNEEDLE third
diff --git a/docs/find-in-pane-electron-qa.md b/docs/find-in-pane-electron-qa.md index 94449ae910..80692a1497 100644 --- a/docs/find-in-pane-electron-qa.md +++ b/docs/find-in-pane-electron-qa.md @@ -8,8 +8,8 @@ npm run test:e2e --workspace=@getpaseo/app -- find-in-pane-electron.spec.ts --pr The spec starts a fresh desktop app from the current worktree with: -- isolated `PASEO_HOME` under `/tmp/paseo-find-pane-electron-rerun/home` -- isolated Electron user data under `/tmp/paseo-find-pane-electron-rerun/electron-user-data` +- per-run isolated `PASEO_HOME` under `/tmp/paseo-find-pane-electron-rerun/home-*` +- per-run isolated Electron user data under `/tmp/paseo-find-pane-electron-rerun/electron-user-data-*` - `PASEO_LISTEN=127.0.0.1:0`, so it must not use port `6767` - a local HTTP page containing three `electronneedle` matches diff --git a/packages/app/e2e/find-in-pane-electron.spec.ts b/packages/app/e2e/find-in-pane-electron.spec.ts index 7dca90150e..60273f026c 100644 --- a/packages/app/e2e/find-in-pane-electron.spec.ts +++ b/packages/app/e2e/find-in-pane-electron.spec.ts @@ -3,21 +3,30 @@ import { spawn, execFile, type ChildProcessWithoutNullStreams } from "node:child import { createServer, type Server } from "node:http"; import { mkdir, readFile, writeFile } from "node:fs/promises"; import path from "node:path"; -import { chromium, type Browser } from "playwright"; +import { _electron as electronDriver, type ElectronApplication } from "playwright"; +import { connectWorkspaceSetupClient } from "./helpers/workspace-setup"; +import { createTempGitRepo } from "./helpers/workspace"; const REPO_ROOT = path.resolve(__dirname, "../../.."); const OUTPUT_DIR = process.env.PASEO_ELECTRON_FIND_QA_OUTPUT_DIR ?? "/tmp/paseo-find-pane-electron-rerun"; -const PASEO_HOME = path.join(OUTPUT_DIR, "home"); -const USER_DATA_DIR = path.join(OUTPUT_DIR, "electron-user-data"); +const RUN_ID = `${process.pid}-${Date.now()}`; +const PASEO_HOME = path.join(OUTPUT_DIR, `home-${RUN_ID}`); +const USER_DATA_DIR = path.join(OUTPUT_DIR, `electron-user-data-${RUN_ID}`); +let paseoListen = "127.0.0.1:0"; const QA_PAGE_TEXT = [ "Electron Webview Find QA", "alpha electronneedle first", "beta no match", "gamma electronneedle second", "delta ELECTRONNEEDLE third", + "experiment_only_marker", + "focus_test_a", + "focus_test_b", + "control_repeat_unique", + "control_after_reload", ].join("\n\n"); -const QA_PAGE_HTML = `
alpha electronneedle first
beta no match
gamma electronneedle second
delta ELECTRONNEEDLE third
alpha electronneedle first
beta no match
gamma electronneedle second
delta ELECTRONNEEDLE third
experiment_only_marker
focus_test_a
focus_test_b
control_repeat_unique
control_after_reload