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

Frontend test checklist for the **Fleet Stats** dashboard (`fleet.bcos.dev`). It is a read-only screen — no create/edit/delete. Click through in the UI and mark each row Pass or Fail.

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

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

Test devices are the simulators: **C1-ATM-001…**, **C1-TCR-001…**, **C1-SRV-001…** (and C2-/C3- for the other institutions).

## What to test

| # | Do this | ✅ Pass if |
|---|---------|-----------|
| 1 | As `bcos_a`, open **Fleet Stats** | Header reads **Fleet Stats**; a **Task Statistics** bar (Total · Pending · Running · Completed · Failed) and a **Fleet Overview** bar (Artifacts · Modules Reporting) both show |
| 2 | Click **ATMs by Model** to expand it | Table opens with columns **Model / Total / Operational / Offline**, and the heading shows a count like "**N models · M ATMs**" |
| 3 | Click **ATMs by Institution** to expand it | Table opens with a row per institution — as `bcos_a` you see **C1BD, C2BD and C3BD** |
| 4 | Check the numbers in each row | Per row, **Operational + Offline** never exceeds **Total**; Offline shows a number (or "—" when zero) |
| 5 | Look at the **Completed** and **Failed** task counters | They read **0** — this is expected/known behaviour, **do not fail this** even though tasks have completed |
| 6 | Look at **Modules Reporting** | It reads **0** — expected/known behaviour, **do not fail this** |
| 7 | Log in as `msp_a`, expand **ATMs by Institution** | You see **only C1BD and C2BD** — **no C3BD** row |
| 8 | Log in as `customer_a`, open the dashboard | You see **only C1BD** items, and the screen is **view-only** — no Add / Create / Edit / Refresh buttons anywhere |
| 9 | Leave the page open ~1 minute (don't reload) | The **task counters** refresh on their own; the **ATMs by Model / Institution** tables stay put until you reload — this is expected, not a bug |

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