apps/screenpipe-app-tauri/e2e/README.md
Cross-platform E2E for Screenpipe using tauri-plugin-webdriver. macOS, Windows, Linux.
From apps/screenpipe-app-tauri:
1. Build
bun tauri build --no-sign --debug --verbose --no-bundle -- --features e2e
--no-sign — skip code signing (dev)--debug — debug build, faster than release--verbose — show build output--no-bundle — binary only, no installer-- --features e2e — enable WebDriver plugin2. Run tests
bun run test:e2e
Or combined (build + test):
./e2e/run.sh
Uses .e2e/ as isolated data dir; real data is never touched.
winget install oven-sh.bun or from bun.shrustup target add x86_64-pc-windows-msvcbun tauri build# 1. Install frontend dependencies (from repo root or apps/screenpipe-app-tauri)
cd apps/screenpipe-app-tauri
bun install
# 2. Build the debug binary with the WebDriver plugin enabled
bun tauri build --no-sign --debug --no-bundle -- --features e2e
# 3. Run all e2e specs
bun run test:e2e
# 4. Run with video recording (saves to e2e/videos/)
$env:RECORD_VIDEO="1"; bun run test:e2e
# Run only the settings-sections spec
bun run wdio run e2e/wdio.conf.ts --spec e2e/specs/settings-sections.spec.ts
# Run only the pipes spec
bun run wdio run e2e/wdio.conf.ts --spec e2e/specs/pipes.spec.ts
# Run only home window navigation
bun run wdio run e2e/wdio.conf.ts --spec e2e/specs/home-window.spec.ts
| Path | Contents |
|---|---|
e2e/screenshots/ | PNG screenshots taken during tests |
e2e/videos/ | Desktop recording (only when RECORD_VIDEO=1) |
.e2e/ | Isolated screenpipe data dir used during tests (deleted on each run) |
Binary not found
Error: Screenpipe debug binary not found at …\src-tauri\target\debug\screenpipe-app.exe
Run the build step first. Debug builds land in src-tauri/target/debug/.
Port 4445 already in use
The test runner (wdio.conf.ts onPrepare) calls netstat -ano | findstr :4445 and kills the owner via taskkill. If it persists, manually run:
netstat -ano | findstr :4445
taskkill /PID <PID> /F
App crashes immediately / blank window
Check apps/screenpipe-app-tauri/.e2e/ for log files after a run. The app launcher pipes stdout/stderr with an [app] prefix to the test runner console.
WebDriver server timeout
The launcher waits up to 30 s for http://127.0.0.1:4445/status. If the build was done without --features e2e, the WebDriver server never starts. Rebuild with the feature flag.
macOS / Linux:
RECORD_VIDEO=1 bun run test:e2e
Windows PowerShell:
$env:RECORD_VIDEO="1"; bun run test:e2e
Windows cmd:
set RECORD_VIDEO=1 && bun run test:e2e
Saves to e2e/videos/.
| Spec | What it tests |
|---|---|
home-window.spec.ts | Opens Home window; clicks through Home, Pipes, Timeline, Help, Settings nav items |
timeline.spec.ts | Navigates to Timeline; seeds a capture event; verifies at least one frame renders |
settings-sections.spec.ts | Navigates General → Recording → AI → Speakers settings; verifies content and no crash |
pipes.spec.ts | Opens Pipes section; verifies pipe store mounts without crash; navigates back to Home |