Files
XC_VM/tests/e2e
Divarion_D 34c3edd48e feat(admin-ui): migrate streams (Live Streams) to clean-JSON table
Rebuild the panel's most complex serverSide table on the Bootstrap 5 stack.
handleStreams now emits structured rows (StatusBadge::stream code, live uptime,
convert-to-channel encode %, restart-fails indicator, current server/source,
client count, EPG availability, player-codec compatibility, archive/adaptive/
title-sync flags, codec stream-info) instead of building HTML; the view renders
every cell and the per-row action dropdown client-side via datatables-bs5. The
$rActualStatus computation is preserved verbatim; the data-gathering (grouping,
per-server fails, redis connection counts) is untouched.

Features: category / server / status / codec filters, bulk-select toolbar
(start/stop/restart/kill/delete via action=multi&type=stream), per-row edit +
fingerprint iframe modals, start/stop/restart/purge/delete via action=stream,
player, live-connections link, CSV export. $rOrder gains the control + checkbox
offset. Add streams to the allowlist + E2E suite and the `filter` i18n key.
Verified on canary: 200, correct row shape, renders.

Refs: #148 #178
2026-09-02 20:43:54 +03:00
..

XC_VM admin E2E (Playwright)

Browser smoke tests for the Vuexy admin panel. They run against a live instance (there is no built-in server), so point them at a test/canary panel.

Run

# one-time: install deps + the Chromium browser
cd tests/e2e && npm ci && npx playwright install --with-deps chromium

# configure (or copy .env.example -> .env)
export XC_E2E_BASE_URL="http://<host>/<access-code>"
export XC_E2E_USER="<admin user>"
export XC_E2E_PASS="<admin pass>"

# from the repo root:
make e2e          # headless run
make e2e-ui       # interactive Playwright UI

XC_E2E_BASE_URL is the admin base including the access-code path segment (e.g. http://panel.example.com/ACCESS_CODE) — the same prefix as /<code>/login.

The setup project logs in once and stores the session in .auth/admin.json; the smoke specs reuse it. Traces/screenshots/video for failures land in test-results/, the HTML report in playwright-report/ (npm run report).