mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-08 17:06:15 -08:00
fix(e2e): stop the web backend from outliving Playwright runs (#1747)
This commit is contained in:
1 parent
d60c80746b
commit
4e17fbed4e
6 files changed
+107
-11
No files matched your search
@@ -73,6 +73,23 @@ The current self-hosted PWA uses these `apps/web-backend` routes:
|
||||
- `GET /xtream?targetId=<id>&username=<u>&password=<p>&action=<action>`
|
||||
- `GET /stalker?targetId=<id>&macAddress=<mac>&action=<action>`
|
||||
|
||||
`pnpm nx run web-backend:serve` starts the backend by hand on port 3333 with
|
||||
`TSX_TSCONFIG_PATH=tsconfig.base.json`, which `tsx` needs for the
|
||||
`@iptvnator/*` path aliases. `apps/web-e2e/playwright.config.ts` does not use
|
||||
that target: it launches `node --import tsx apps/web-backend/src/main.ts` with
|
||||
an `env` that mirrors the target's. Nx `run-commands` starts its command in a
|
||||
detached process group, and Playwright stops a `webServer` with a
|
||||
process-group `SIGKILL` (`taskkill /T /F` on Windows). The kill therefore
|
||||
reached only `pnpm`/`nx`, and the orphaned server kept port 3333 after the run.
|
||||
`apps/web-backend/src/app/project-config.spec.ts` fails if a Playwright config
|
||||
launches the backend through Nx or its `env` drifts from the `serve` target.
|
||||
`WEB_BACKEND_PORT` (default 3333) relocates the E2E backend and the
|
||||
`self-hosted.e2e.ts` URLs, like `MOCK_PORT` does for the mocks. Use it when
|
||||
another worktree holds 3333. The `web:serve` entry can stay on Nx:
|
||||
`@angular/build:dev-server` runs inside the Nx process, so the group kill
|
||||
stops it. The mock servers follow the same
|
||||
rule; see [Xtream mock Playwright integration](xtream-mock-server.md#playwright-integration).
|
||||
|
||||
The PWA continues to use `PwaService`; only the backend base URL is resolved at
|
||||
runtime. Electron routes remain owned by the Electron backend and preload
|
||||
bridge.
|
||||
|
||||
@@ -579,7 +579,8 @@ for the serve target's `--tsconfig` flag and is required for the `@iptvnator/*`
|
||||
path aliases. `project-config.spec.ts` pins which configs start which mock,
|
||||
and fails if any of them launches a mock through Nx or a new config starts one
|
||||
without being listed there. The `serve` targets remain the entry point
|
||||
for starting a mock by hand.
|
||||
for starting a mock by hand. The web-e2e `web-backend` entry uses the same
|
||||
launch form; see [PWA web backend](pwa-self-hosted.md#web-backend).
|
||||
|
||||
### Request Interception
|
||||
|
||||
|
||||
Reference in new issue
Block a user