Replace custom environment-based dev detection with Electron's
built-in app.isPackaged check. Import the app module from Electron
and remove reliance on ELECTRON_IS_DEV and the environment file.
This simplifies logic, improves reliability of development vs
production detection, and reduces dependency on external env vars.
Swap videojs-hls-quality-selector for videojs-quality-selector-hls
and update package versions. Initialize plugins defensively: call the
new quality selector via qualitySelectorHls when available and wrap
both quality selector and aspectRatioPanel initializations in try/catch
blocks to avoid runtime errors if a plugin fails to load. Bump project
version to 0.18.0 and add the new dependency and packageManager entry.
Update GitHub Actions workflow triggers to use the master branch
for push and pull_request events. Replace the previous nx branch
restriction so CI (build, make and e2e tests) runs on master and tag
events as intended.
This enables workflows to execute for changes merged to master and
aligns branch configuration across workflows.
Add a new GitHub Actions workflow "Cross-Platform E2E Tests" that runs
end-to-end tests on linux, macOS, and Windows using a matrix job.
The workflow checks out code, sets up Node.js 22 with npm cache,
installs deps, builds the backend, installs Playwright browsers, and
runs the electron-backend-e2e suite (using xvfb on Linux). Failed
test artifacts (Playwright report) are uploaded per OS for 7 days.
Remove the previous monolithic 'Build and Test' workflow which included
unit tests, coverage upload, and an older E2E configuration. This
consolidates E2E across platforms into a focused, cross-platform job
and simplifies the CI surface by deprecating the outdated workflow.
Add a new Electron smoke test suite using Playwright to verify the
packaged application starts, renders the main window, and exposes
expected window properties. The tests launch the built Electron main
bundle, locate the primary (non-DevTools) window, wait for DOM load,
and assert the title contains "IPTVnator". They also check window
visibility and bounds, validate rendered body content, and capture
screenshots to dist/test-results/electron-backend-e2e for debugging.
Include helpers to resolve project paths, ensure the screenshot
directory exists, and robustly find the main application window. Set
NODE_ENV and ELECTRON_IS_DEV to ensure the app loads built artifacts.