Browse documents

QA Full UI E2E Results — CPMS & EMS (ego lite, navigation-driven)

Run date: 2026-07-02 · Executor: ego lite (ego-browser) · Task space: sfms full ui e2e Mode: Full UI end-to-end — real browser navigation and control interaction (nav-link clicks, form fills, button clicks), verified by reading the resulting UI state + screenshots. This complements the API/RBAC suite in qa_results.md (which drove the API layer directly).


1. How it ran

  • Authenticated through the login form (typed credentials, clicked Sign in) as owner and viewer.
  • Navigated between modules by clicking the left-nav links (Chiller Plant, Energy) — real Next.js client navigation.
  • Operated the actual on-screen controls — setpoint inputs, Apply/Run/Simulate/Execute/Reconcile buttons, circuit toggles, breaker button — then asserted the UI response (banners, rendered cards, state badges) and captured screenshots.
  • Viewport fixed to 1440×900 (the agent tab initialises at 0×0). Where a target was scrolled off-screen or behind the fixed "Install Atlas" PWA overlay, a real click event was dispatched on the button element itself — still a genuine UI click firing the real handler, backend call, and re-render.

2. Results — 11/11 UI journeys PASS

#JourneyInteractionResult
1Login (owner)Type email/password → click Sign in✅ → /dashboard
2Navigate → Chiller PlantClick left-nav Chiller Plant/chillers, KPIs + all cards render
3Plant control (two-person)Set CHW 9.0 °C → click Apply control✅ banner: "Staged for two-person approval: Large CHW setpoint move (6.7→9°C)"
4AI OptimisationClick Run analysis✅ 4 recommendation cards + AI narrative
5What-If SimulatorSet CHW 8.0 °C → click Simulate"…0.58 → 0.56 kW/RT and saves about $1,650/month (367 kWh/day)"
6Control Safety breakerClick Trip breakerReset breaker✅ Armed → Locked out ("Manually tripped") → Armed
7FDD scanClick Scan now✅ "No active faults" (healthy plant — correct)
8Navigate → EnergyClick left-nav Energy/energy, all 8 sections render
9Demand-Response eventToggle 2 circuits Sheddable → set target 60 kW / 90 min → click Execute event✅ status met, shed 58.5/60 kW, M&V avoided 88 kWh
10Bill reconciliationFill period 2026-06, billed 120000 kWh, $18000 → click Reconcile✅ row 2026-06, variance +8% (flagged)
11RBAC (viewer) via UILog in as viewer → nav to Chiller Plant✅ control panel shows read-only message, no Apply button; nav still lists the modules

Pass rate: 11/11 (100%). Every workflow was exercised through the actual UI, and each produced the correct on-screen result and backend effect.


3. Evidence (screenshots)

FileShows
e2e-01-chiller-nav.pngChiller Performance page after nav click (0.58 kW/RT, 3/3 running)
e2e-02-two-person-pending.pngCHW input = 9.0 + two-person "Staged for approval" banner
e2e-03-ai-optimise.pngAI Optimisation recommendations rendered
e2e-04-whatif.pngWhat-If scenario result ($1,650/mo)
e2e-05-breaker-locked.pngControl Safety breaker interaction
e2e-06-demand-response.pngDR event "met", 58.5/60 kW
e2e-07-bill-reconcile.pngBill row with +8% variance
e2e-08-viewer-readonly.pngViewer — read-only control panel

4. Notes & non-defects

  1. Two "click" mechanisms — in-view targets used CDP mouse clicks (login, nav, Apply, Run analysis, Simulate); off-screen / overlay-covered targets (breaker, table toggles, Execute, Reconcile) used a real click event dispatched on the button element. Both fire the true React handler + network + re-render; neither bypasses the UI to call the API directly.
  2. Hydration timing — the consoles fetch 5–9 endpoints on mount; UI-text assertions polled for the content to appear after navigation.
  3. PWA overlay — the "Install Atlas" prompt is position: fixed bottom-right and intercepted coordinate clicks near it; dismissed where possible.
  4. Test artifacts left in tenant settings — one DR event, one bill (2026-06), and one pending two-person control request (6.7→9 °C) remain as demo data; the sheddable-circuit toggles were reverted to Essential at the end. All harmless; the pending request cannot be self-approved (correct).
  5. Telemetry fixture — the live snapshot from the earlier run (see qa_results.md §1) was reused so the plant showed live values.

5. Verdict

Full navigation-driven E2E confirms the CPMS/EMS operator journeys work through the real UI, with RBAC enforced visually for the viewer role. Consistent with the Release-Candidate / UAT-ready rating in qa_readme.md. UAT/Demo: ✅ GO. Production remains gated on Phase 9.