Files
openswarm/e2e/README.md
T

38 lines
1.5 KiB
Markdown

# End-to-end tests (packaged app, macOS + Windows)
Playwright tests that launch the **packaged** OpenSwarm desktop app (the real
built binary, asar + bundled python-env + real paths) and drive it the way a user
would. The same specs run unchanged on macOS and Windows; CI builds the artifact
per-OS, then runs these. No provider API key is needed (no agent turn), so the
suite is hermetic and deterministic on a clean machine.
## What it checks (per OS)
- Main window paints the React shell (first meaningful paint).
- The preload bridge (`window.openswarm`) is exposed.
- The real backend the app spawned reaches HTTP-ready (`/api/health/check` -> 200).
- Provenance: the running app's `getBuildInfo()` sha matches `electron/build-info.json`.
- App version is reported.
## Run locally
1. Build the app first (produces `electron/dist/...`):
- Windows: `pwsh scripts/build-app-win.ps1`
- macOS: `bash scripts/build-app.sh`
2. Then:
```
cd e2e
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm ci # Electron ships its own Chromium
npm test
```
Override the binary location with `E2E_APP_PATH=/path/to/app` if your build
output lives elsewhere. Auto-detection covers `win-unpacked/OpenSwarm.exe` and the
mac `OpenSwarm.app` variants.
## CI
`.github/workflows/e2e.yml` runs this on a `windows-latest` + `macos-latest`
matrix: it builds the unsigned app, then runs the suite. Tag-driven signed
releases are covered separately by `release-windows.yml` / `release-macos.yml`.