Commit Graph
3 Commits
Author SHA1 Message Date
rootandClaude Opus 5 d0458a8eeb test(e2e): drive the admin panel the way an administrator does
The Playwright suite only checked that pages render. It now performs the
administrator's work against a live test panel and asserts the panel's own
data after each step:

- catalogue: a stream category, a bouquet and a reseller package — created,
  renamed / edited, reopened, deleted;
- subscribers: a line with a bouquet (search, edit in the modal, disable /
  enable, ban / unban, delete), a MAG and an Enigma2 device;
- bulk: two lines selected with the header checkbox, disabled and deleted;
- resellers: created with credits, topped up, edited, disabled, deleted;
- block lists: an IP (RFC 5737 address — blocking adds an iptables rule), a
  user agent and an ISP;
- streams: a live stream added with a source and a server, started, running
  with codecs and the Resources column filled in, stopped, renamed, deleted;
- sign-in: a second administrator refused with a wrong password, signing in
  and out — a separate account, because every admin login re-hashes the
  password and ends that account's other sessions.

Records are named `e2e-<run>-…`; a teardown project sweeps whatever a run
leaves behind and nothing else. tools/create-admin.php provisions the
dedicated test administrator on the panel host.

The first runs found three save paths that answered an empty page (fixed in
f7bba5cb, fd13c940, ee2f586a). Against the test panel: 82 passed, 1 skipped
(no series to select).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WDhDajBPziJwjWZcXnh6R
2026-09-16 14:39:39 +00:00
Divarion_D 53efe7071c refactor(admin-ui): rename vuexy identifiers to newui + fix mangled names
Rename the last lowercase "vuexy" identifiers left after the de-brand:
- views {header,footer,menu,vendors,topbar}.vuexy.php -> .newui.php
- functions xc_admin_use_vuexy / xc_vuexy_vendor_* / _xc_vuexy_icon -> *_newui*
- constant XC_VUEXY_PAGES -> XC_NEWUI_PAGES
- E2E spec vuexy-tables.spec.ts -> newui-tables.spec.ts + drop the brand
  name from test/Makefile prose

Also fix two identifiers the earlier brand scrub corrupted (a bare "Vuexy"
in a name became "Bootstrap 5", inserting a space): class
XcVuexyMenuBuilder -> XcNewuiMenuBuilder (was a parse error in the menu view)
and global key xmVuexyVendors -> xmNewuiVendors.

Refs: #148 #178
2026-09-03 19:50:15 +03:00
Divarion_D f348cf08cc test(e2e): Playwright smoke harness for the Bootstrap 5 admin
Add a browser E2E project under tests/e2e/ that runs against a live panel
(there is no built-in server). Verified green (7/7) against a canary instance.

- playwright.config.ts: loads tests/e2e/.env (dotenv); a `setup` project logs in
  once (auth.setup.ts — form #username/#password/#login_button -> ./login) and
  stores the session, the chromium project reuses it via storageState. baseURL is
  normalized to a trailing slash so relative gotos keep the access-code segment.
- Smoke specs: shell renders (sidebar/navbar, server-stamped data-bs-theme);
  Dashboard group + Home link; six stat tiles + a live ./api?action=stats 200;
  charts + server selector; customizer theme change persists across reload and
  reset (opening the customizer panel) clears it.
- Config via env: XC_E2E_BASE_URL (admin base incl. access code), XC_E2E_USER,
  XC_E2E_PASS (see .env.example / README). Makefile: `make e2e` / `e2e-ui` /
  `e2e-install`. node_modules/.auth/results/.env gitignored; @playwright/test
  pinned ~1.49 (Node 18+).
2026-09-01 20:14:21 +03:00