Appearance
Unified app — browser QA (M9)
Manual checklist plus optional Playwright smoke. Run after API smoke (npm run smoke:unified-workspace).
Automated (Playwright)
From repo root (requires npm install --prefix qa-tests, Admin running or ADMIN_URL set):
bash
npm run unified-app:smokeConfigure qa-tests/.env (see .env.example):
| Variable | Purpose |
|---|---|
ADMIN_URL | Unified app origin (http://localhost:3000 or https://beentara.com) |
UNIFIED_STAFF_EMAIL / UNIFIED_STAFF_PASSWORD | Real staff login (preferred for production) |
UNIFIED_STAFF_TENANT | Workspace id if multi-tenant picker appears |
REACT_APP_CRYPTO_SECRET | Must match Admin build when using JWT inject fallback |
Without credentials, the script uses JWT inject when Backend/.env DB + JWT_SECRET are available (local only).
What the script checks
- Login page does not reference
teams.beentara.com - Staff tab copy visible
- Staff reaches
/dashboard - Staff legacy
/follow-ups→/crm(when CRM permission allows) - Staff
/marqueestays authenticated - Admin legacy
/plan→/saas/subscriptionand/reciept→/receipt - Staff without
settings.readhitting/setting→/dashboard(when such a user exists in DB)
Manual smoke (staff test account)
- Staff Login on
/login→ lands on/dashboard; shortcuts match permissions. - Sidebar only shows allowed modules (
appMenu+ RBAC). - Open denied deep link (e.g.
/settingwithout permission) → access denied toast + redirect to/dashboard. - Owner admin login → full menu; analytics tab on dashboard if enabled.
- teams.beentara.com (after DNS) → same app as beentara.com; staff login works without cross-origin redirect.
Manual smoke (owner admin)
- SaaS / super-admin routes still reachable.
- Settings and billing unchanged.
See also unified-app-cutover.md.