mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-08-20 03:35:40 +02:00
38 lines
1.5 KiB
Markdown
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`.
|