Platform Ops (Super-Admin) Test Cases
♻️ Reconciled against current code — 2026-07-01. Verified
handlers/platformEventCheckinHandlers.ts, attendanceCsvReconcileHandlers.ts, attendanceReconcileHandlers.ts, and the requirePlatformSupport gate in rbac.ts. Key correction: the Attendees page is not billing-field-free as PLAT-CHK-01 implies — it renders an invoice status pill (Paid/Unpaid/No invoice) per EventAttendeesPage.tsx; what's actually withheld is any amount figure (no amountCents/invoice number rendered), even though the backend JSON payload itself includes them. Also confirmed: requirePlatformRole denial is a plain 403 FORBIDDEN (errors.forbidden) with zero session/token mutation — "not a logout" is accurate. Only one PlatformAdmin seed row exists (superadmin@zeniark.com, SUPER_ADMIN) — there's no seeded lesser-role operator to exercise the denial path end-to-end through the UI; see the new TC's Step 7 for the workaround. See TC-PLAT-001 (Detailed) for full assertions.
🆕 New on stage — 2026-06-19 → 2026-07-01. First dedicated detailed TC page for this section: TC-PLAT-001 — Platform Event Check-in (Super-Admin), covering Attendees list + redaction, mark/undo/bulk check-in with operator audit, QR scan-to-check-in (#388, fix #405), CSV reconcile + finalize (#398/#399/#402), cross-tenant isolation, and the 403-not-logout access gate. See the Jun 19 release and Jun 25 release for the full feature rollout.
This section covers platform-operator capabilities — actions a Zeniark super-admin performs across all tenants from the super-admin portal (stg-admin.membervu.com, a separate login from the tenant org portal). These cross the normal tenant boundary by design, so the testing emphasis is isolation (one tenant's action never touches another) and audit (every operator action is logged).
⚙️ Pre-reqs
- Portal:
stg-admin.membervu.com(NOTstg-rcme.membervu.com). - Login: Super Admin
superadmin@zeniark.com/SuperAdmin123!. - Data: at least one tenant event with registered attendees. Two tenants (e.g.
rcme+acme) are needed for the isolation check. - Feature gate: the Event Attendees surface is gated by
PLATFORM_SUPPORT— a denied response must be a 403, not a logout.
Platform Event Check-in (Jun 19, 2026 release)
Introduced in the Jun 19, 2026 release (#374–#399, #402). Full click-by-click steps + data assertions: TC-PLAT-001 — Platform Event Check-in (Super-Admin) (detailed). The scenario table below (PLAT-CHK-01…08) remains the quick-reference checklist; TC-PLAT-001 supersedes it wherever the two disagree on redacted fields (see the reconciliation banner above).
Updated — Jun 25, 2026 release (#427/#428): the super-admin portal gains check-in parity with the new org-portal Event Check-in feature — generate/redeem access codes, walk-in registration, and the audit trail, all for a tenant's event. See the Jun 25, 2026 release for the full flow + "what to verify". Same isolation + immutable-audit gates apply.
Scenarios to cover
| ID | Scenario | Expected |
|---|---|---|
| PLAT-CHK-01 | Open Tenant Detail → Events tab → an event → Attendees page. | Lists that event's registrants with attendance status + type; a payment status pill shows for paid events, but no dollar amount/invoice number is rendered (see TC-PLAT-001 Step 1 for the exact redaction boundary). |
| PLAT-CHK-02 | Tenant isolation — check in an attendee for tenant A; inspect tenant B's identical event. | Only tenant A's record changed. Verify in tenant A's org portal or via DB — not just the admin-portal UI. |
| PLAT-CHK-03 | Check-in actions: mark / undo / bulk (#375/#378). | Status updates correctly; each action writes an operator audit row (who/what/when). |
| PLAT-CHK-04 | QR scan-to-check-in (#388); scanner opens cleanly (#405). | Scanning a ticket QR checks the attendee in; scanner UI opens without console errors. |
| PLAT-CHK-05 | Mark NO_SHOW (#397). | Status = NO_SHOW; excluded from checked-in counts; appears correctly in attendance reports/exports. |
| PLAT-CHK-06 | CSV reconcile + finalize (#398/#399/#402), both portals. | Upload CSV → preview matches/flags rows → commit; finalize marks remaining confirmed-but-unscanned as NO_SHOW. Org-portal reconcile mode works too. |
| PLAT-CHK-07 | Access-denied behavior when PLATFORM_SUPPORT is not granted. | 403 response; operator session is not killed (no forced logout). |
| PLAT-CHK-08 | Check-in confirmation emails (coupling with tenant-origin links #341). | Any email triggered uses the correct tenant origin host (assert in MailHog), not the platform/admin host. |
Related platform surfaces (existing)
- Super-Admin Member Editor (cross-tenant member search + edit) — see the Jun 16, 2026 release (#201–#211).
- Platform-admin self-service password reset (#356/#357) — forgot/reset pages on the admin portal; confirm it does not bleed into org-portal sessions.
- Tenant configuration (org profile, domains, feature flags) — see Admin / Org Setup and the platform-admin test case there.