Admin Test Cases

♻️ Reconciled against current code — 2026-07-01. getTenantHandler (GET /api/platform/tenants/:tenantIdOrSlug) requires only requirePlatformSupport (SUPER_ADMIN OR PLATFORM_SUPPORT) at the route level — the commercial-field redaction happens inside the handler body based on platformRoles, not at the route guard. The Split Agreement / PayBiz Config / Platform Channels tabs on TenantDetailPage are separately gated client-side (isSuperAdmin) — PLATFORM_SUPPORT never sees them rendered, even via a stale ?tab=split deep link. No seeded PLATFORM_SUPPORT test user exists — TC-ADMIN-006 creates one via /users/new for the negative case.
♻️ Settings consolidated — 2026-06-11 (#245/#239/#246/#247/#242). There is now ONE settings hub at /admin/settings (AdminOrgSettingsHubPage) — the single entry point for all org configuration. The old orphaned "Control Panel" and dead/duplicate nav links were removed, and SUPER_ADMIN is now admitted to settings routes (previously bounced — #246).

Settings hub — what's where

From /admin/settings (visible to ADMIN + SUPER_ADMIN; some cards also FINANCE_MANAGER), the cards link to:

CardRouteNotes
Organization Profile/admin/settings/org-profileSee TC-ADMIN-002.
Roles & Permissions/admin/rolesRBAC — see the RBAC section.
Member Settings/admin/members/settingsTabbed: Approval Workflow (?tab=workflow), Membership Types (?tab=types), registration Fields. Legacy /admin/settings/approval-workflow & /membership-types now redirect here.
Notifications/admin/settings/notificationsNEW (#239). Master switches for sign-up (signupNotifEnabled) and event-registration (eventRegNotifEnabled) notifications — both default OFF; enable here before expecting any email/bell.
Finance & Billing/admin/settings/financeIncl. Dues settings (?tab=dues). ADMIN / FINANCE_MANAGER / SUPER_ADMIN.
Bank Accounts · Payment Categories · Payment Channels/admin/bank-accounts · /admin/settings/payment-categories · /admin/finance/payment-channelsFinance config.
Invoice Template · Feature Flags · Email Log/admin/settings/invoice-template · /feature-flags · /admin/dev/email-log
🆕 Super-Admin Member Editor — 2026-06-16 (admin portal, stg-admin.membervu.com). A new platform-operator capability to manage members across tenants: cross-tenant member search (/members, returns status/type/expiry — #201/#206), a member detail page (/members/:tenantId/:memberId — #207), and an Edit Membership modal with change-status (#202/#208), change-type (#203/#209), set/renew-expiry (#204/#210), and reactivate (#205/#211, fixes OQ-RET-16). All edits are billing-neutral with a dual-audit trail + required reason. This lives in the super-admin portal, not the tenant org portal. See the Jun 16 release note.
🆕 New on stage — 2026-06-19 → 2026-07-01. Commercial split + PayBiz attestation fields on tenant detail are now SUPER_ADMIN-only — redacted from the getTenantHandler response and their tabs hidden entirely for PLATFORM_SUPPORT operators (Jun 25 release) — covered by new TC-ADMIN-006. Platform finance wiring for super-admin is live on /org-controls, showing correct per-tenant totals in (#452/#493, Jun 29 release) — also covered by TC-ADMIN-006. Cross-cutting UI features also shipped this window but are tested in their owning sections, not here: show/hide password toggle (#477, login/reset-password), member avatar async S3 presign (#523), and cursor:pointer + native <select> WCAG polish (#222) which applies platform-wide including admin settings forms — see the Jul 1 release.

Test Cases