mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-09 01:16:15 -08:00
Implements plan items A1, A3 (J1 only) and the minimal A4 from .plans/2026-09-25-performance-journeys-ratchet.md. - journey-renderer-probe.ts: init-script probe counting DOM mutations, layout shifts and long tasks until the first source card is visible on /workspace with the splash removed; unit-tested with jsdom fixtures. - journey-main-ipc-capture.ts: counts bridge invocations from the preload's renderer-API trace channel up to a sentinel call the probe fires, so the IPC counter is exact without touching production code. - launch.journey.ts + playwright.journeys.config.ts: seeded profile (one M3U source, one Xtream portal on the loopback mock), one warm-up and five measured iterations, fresh process and data directory each, writing dist/performance/journeys/<timestamp>/summary.json with exact counters and P50/P90 wall-clock. - Nx target electron-backend-e2e:journeys and root script perf:journeys. - docs/architecture/performance-journeys.md, README, context and validation map entries. renderer.cdTicksToFirstCard and main.sqlStatementsBeforeReadyToShow are reported as unavailable with the reason instead of being faked. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
88 lines
3.4 KiB
JSON
88 lines
3.4 KiB
JSON
{
|
|
"name": "electron-backend-e2e",
|
|
"$schema": "../../node_modules/nx/schemas/project-schema.json",
|
|
"projectType": "application",
|
|
"sourceRoot": "apps/electron-backend-e2e/src",
|
|
"implicitDependencies": [
|
|
"electron-backend",
|
|
"stalker-mock-server",
|
|
"xtream-mock-server"
|
|
],
|
|
"targets": {
|
|
"e2e": {
|
|
"dependsOn": ["electron-backend:build-e2e"]
|
|
},
|
|
"test-performance-harness": {
|
|
"executor": "nx:run-commands",
|
|
"options": {
|
|
"cwd": "apps/electron-backend-e2e",
|
|
"command": "pnpm exec tsx --test src/performance/*.spec.ts"
|
|
}
|
|
},
|
|
"benchmark-m3u-refresh-cancellation": {
|
|
"dependsOn": ["electron-backend:build-performance"],
|
|
"executor": "nx:run-commands",
|
|
"cache": false,
|
|
"parallelism": false,
|
|
"options": {
|
|
"cwd": "apps/electron-backend-e2e",
|
|
"command": "pnpm exec playwright test --config=playwright.performance.config.ts src/m3u-refresh-cancellation.performance.ts"
|
|
}
|
|
},
|
|
"benchmark-m3u-import": {
|
|
"dependsOn": ["electron-backend:build-performance"],
|
|
"executor": "nx:run-commands",
|
|
"cache": false,
|
|
"parallelism": false,
|
|
"options": {
|
|
"cwd": "apps/electron-backend-e2e",
|
|
"command": "pnpm exec playwright test --config=playwright.performance.config.ts src/m3u-import.performance.ts"
|
|
}
|
|
},
|
|
"benchmark-xtream": {
|
|
"dependsOn": ["electron-backend:build-performance"],
|
|
"executor": "nx:run-commands",
|
|
"cache": false,
|
|
"parallelism": false,
|
|
"options": {
|
|
"cwd": "apps/electron-backend-e2e",
|
|
"command": "pnpm exec playwright test --config=playwright.xtream-performance.config.ts src/xtream.performance.ts"
|
|
}
|
|
},
|
|
"journeys": {
|
|
"dependsOn": ["electron-backend:build-performance"],
|
|
"executor": "nx:run-commands",
|
|
"cache": false,
|
|
"parallelism": false,
|
|
"options": {
|
|
"cwd": "apps/electron-backend-e2e",
|
|
"command": "pnpm exec playwright test --config=playwright.journeys.config.ts"
|
|
}
|
|
},
|
|
"packaged-frame-copy-smoke": {
|
|
"dependsOn": ["test-packaged-frame-copy-fixtures"],
|
|
"executor": "nx:run-commands",
|
|
"cache": false,
|
|
"outputs": [
|
|
"{workspaceRoot}/dist/playwright-report/electron-backend-e2e/packaged-frame-copy-smoke",
|
|
"{workspaceRoot}/dist/test-results/electron-backend-e2e/packaged-frame-copy-smoke"
|
|
],
|
|
"options": {
|
|
"cwd": "apps/electron-backend-e2e",
|
|
"command": "pnpm exec playwright test --config=playwright.packaged.config.ts src/embedded-mpv-frame-copy-packaged.e2e.ts"
|
|
}
|
|
},
|
|
"test-packaged-frame-copy-fixtures": {
|
|
"executor": "nx:run-commands",
|
|
"options": {
|
|
"cwd": "apps/electron-backend-e2e",
|
|
"command": "pnpm exec tsx --test src/embedded-mpv-frame-copy-packaged-fixtures.spec.ts"
|
|
}
|
|
},
|
|
"lint": {
|
|
"executor": "@nx/eslint:lint"
|
|
}
|
|
},
|
|
"tags": ["scope:e2e", "domain:electron-main", "type:e2e"]
|
|
}
|