Files
hiveops-guide/backend/src/main/resources/content/recon/cash-forecast/testing.md
T
johannes 4f84fc5e80 fix(guide): make dev tier BCOS_ADMIN-only; keep Testing for MSP (#18)
The 'dev' audience tier was gated via isInternal() (MSP_ADMIN || BCOS_ADMIN),
so MSP admins could read developer/architecture content: technical.* and
platform.* Overviews, agent-module internals, dev Internal/Overview tabs.

Remap 'dev' to isBcos() (BCOS_ADMIN only) in visible(). Retag the 66 Testing
docs from 'audience: dev' to 'audience: internal' so MSP keeps them, per
Johannes.

Result: MSP sees Customer + Internal + Testing (66 modules); loses all
Architect/Claude/architecture. BCOS unchanged. Update platform.guide-access
to the new model.

Closes #18

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 19:29:12 -04:00

2.6 KiB

module, title, tab, order, audience
module title tab order audience
recon.cash-forecast Cash Forecast Testing 35 internal

Frontend test checklist for Cash Forecast (recon.bcos.devCash Forecast). Click through in the UI and mark each row Pass or Fail.

Set up

Log in at recon.bcos.dev — test accounts (all password Passw0rd-d3v!):

Login Role Sees
bcos_a@bcos.dev Admin All institutions · can Recompute
msp_a@msp1.bcos.dev MSP admin C1 + C2 only · can Recompute
customer_a@customer1.bcos.dev Customer C1 only · read-only

Rows are per-cassette forecasts for the enrolled simulator ATMs (C1-ATM-001…, C1-TCR-001…, and C2-/C3- for the other institutions).

What to test

# Do this Pass if
1 As msp_a, open Cash Forecast Table Cassette Runout Forecast loads with columns ATM · Slot · Denomination · Current Level · Burn Rate / Day · Projected Runout · Fill By · Status
2 Look at the default row order Rows are sorted soonest runout first — the top rows show the nearest Projected Runout (e.g. "overdue" / "today" / "3d")
3 Open the Filters sidebar (the » toggle on the left), type an ATM into Search ATM (e.g. C1-ATM-001) List narrows to just that ATM; the sidebar count pill updates (e.g. 4 / 60)
4 Set Institution = C2BD, then set Forecast Status = No Burn, then click ✕ Clear all Each filter narrows the table live (only C2 rows, then only No Burn badges); Clear all restores the full list
5 Click the Current Level column header, then click it again Table re-sorts by that column ascending, then descending (sort arrow flips)
6 Scan the rows for urgency colour Cassettes due to run out within ~3 days show amber, and rows whose Fill By date has passed show red
7 Click ↻ Recompute in the header Button shows "Recomputing…", then an Updated stamp appears and the table reloads with no error banner
8 Log in as customer_a, open Cash Forecast You see only C1 rows; the Institution filter dropdown lists only C1BD — no C2 or C3
9 Still as customer_a, click ↻ Recompute A red error banner appears (recompute is admin-only) — the customer can view but not recompute; no crash
10 Log in as bcos_a, open the Institution filter All institutions are listed (C1BD, C2BD, C3BD) and rows from every institution appear

Report a fail with: the row #, which login you used, and what you actually saw.