---
module: vault.dashboard
title: Dashboard
tab: Testing
order: 35
audience: dev
---

Frontend test checklist for the **Vault Dashboard** (`vault.bcos.dev`). Click through in the UI and mark each row Pass or Fail.

## Set up
Log in at **vault.bcos.dev** — test accounts (all password `Passw0rd-d3v!`):

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

CIT visits on the dashboard are keyed to simulator ATMs: **C1-ATM-001…** (and C2-/C3- for the other institutions).

## What to test

| # | Do this | ✅ Pass if |
|---|---------|-----------|
| 1 | As `customer_a`, open the **Vault Dashboard** | Header reads **Vault Dashboard**, four stat cards appear, then a **Recent Visits** card below |
| 2 | Read the four cards left to right | Labels are **Visits This Month**, **Pending Confirmation** (has an amber left stripe), **Cash Added YTD**, **Removals YTD** — YTD cards show money (e.g. `$…`), not a raw number |
| 3 | Look at the Recent Visits table headers | Columns are **ATM ID · Visit Date · Vendor · Reference · Cash Added · Removals · Status** |
| 4 | Scan a few visit rows | A visit with no reference / no removals shows a dash **—** in that cell (not blank or `null`) |
| 5 | Check the **Status** column | Each row shows a coloured pill: **Pending** (yellow), **Confirmed** (green), or **Disputed** (red) |
| 6 | Click any visit row | That visit's **detail** opens (cassette counts / removals) — the whole row is clickable |
| 7 | As `customer_a`, read the **ATM ID** column | Only **C1-** ATMs appear — no C2- or C3- rows |
| 8 | Look at the header/toolbar as `customer_a` | Dashboard is **view-only** — there is **no Add / Create / Refresh** button anywhere on the page |
| 9 | Log in as `bcos_a` and open the dashboard | Cards show non-zero totals and the table lists visits across **multiple** institutions (C1/C2/C3 ATM IDs) |
| 10 | Log in as `msp_a` and open the dashboard | Recent Visits table is **populated**, but the four cards may all read **0** — this is a known scoping quirk for multi-institution admins, **do not fail it** (report separately) |

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