4f84fc5e80
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>
2.6 KiB
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.dev → Cash 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.