test: Add playwright main usage test
Some checks failed
Deploy Web Apps / deploy (push) Has been cancelled
Queue Release Build / prepare (push) Successful in 21s
Queue Release Build / build-linux (push) Successful in 27m44s
Queue Release Build / build-windows (push) Successful in 32m16s
Queue Release Build / finalize (push) Successful in 1m54s
Some checks failed
Deploy Web Apps / deploy (push) Has been cancelled
Queue Release Build / prepare (push) Successful in 21s
Queue Release Build / build-linux (push) Successful in 27m44s
Queue Release Build / build-windows (push) Successful in 32m16s
Queue Release Build / finalize (push) Successful in 1m54s
This commit is contained in:
@@ -97,7 +97,31 @@ Create `e2e/fixtures/multi-client.ts` — see [multi-client-webrtc.md](./multi-c
|
||||
|
||||
Create `e2e/helpers/webrtc-helpers.ts` — see [multi-client-webrtc.md](./multi-client-webrtc.md) for helper functions.
|
||||
|
||||
### 7. Add npm Scripts
|
||||
### 7. Create Isolated Test Server Launcher
|
||||
|
||||
The app requires a signal server. Tests use an isolated instance with its own temporary database so test data never pollutes the dev environment.
|
||||
|
||||
Create `e2e/helpers/start-test-server.js` — a Node.js script that:
|
||||
1. Creates a temp directory under the OS tmpdir
|
||||
2. Writes a `data/variables.json` with `serverPort: 3099`, `serverProtocol: "http"`
|
||||
3. Spawns `ts-node server/src/index.ts` with `cwd` set to the temp dir
|
||||
4. Cleans up the temp dir on exit
|
||||
|
||||
The server's `getRuntimeBaseDir()` returns `process.cwd()`, so setting cwd to the temp dir makes the database go to `<tmpdir>/data/metoyou.sqlite`. Module resolution (`require`/`import`) uses `__dirname`, so server source and `node_modules` resolve correctly from the real `server/` directory.
|
||||
|
||||
Playwright's `webServer` config calls this script and waits for port 3099 to be ready.
|
||||
|
||||
### 8. Create Test Endpoint Seeder
|
||||
|
||||
The Angular app reads signal endpoints from `localStorage['metoyou_server_endpoints']`. By default it falls back to production URLs in `environment.ts`. For tests, seed localStorage with a single endpoint pointing at `http://localhost:3099`.
|
||||
|
||||
Create `e2e/helpers/seed-test-endpoint.ts` — called automatically by the multi-client fixture after creating each browser context. The flow is:
|
||||
1. Navigate to `/` (establishes the origin for localStorage)
|
||||
2. Set `metoyou_server_endpoints` to `[{ id: 'e2e-test-server', url: 'http://localhost:3099', ... }]`
|
||||
3. Set `metoyou_removed_default_server_keys` to suppress production endpoints
|
||||
4. Reload the page so the app picks up the test endpoint
|
||||
|
||||
### 9. Add npm Scripts
|
||||
|
||||
Add to root `package.json`:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user