---
module: recon.atm-cycle-history
title: ATM Cycle History
tab: Testing
order: 35
audience: dev
---

Frontend test checklist for **ATM Cycle History** in the Reconciliation app (`recon.bcos.dev`). Open Reconciliation inside the HiveIQ Browser (**Cash Reconciliation** in the sidebar), click through in the UI, and mark each row Pass or Fail.

## Set up
Log in — test accounts (all password `Passw0rd-d3v!`):

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

Test devices are the simulators: **C1-ATM-001…** (and C2-/C3- for the other institutions). Pick a C1 ATM that shows cycle rows for the detail tests.

## What to test

| # | Do this | ✅ Pass if |
|---|---------|-----------|
| 1 | As `msp_a`, open **Cash Reconciliation** | Page loads with the five stat cards (**ATMs Tracked / Balanced / Variance / Open Cycles / Pending**) and a fleet table of ATMs |
| 2 | Click a `C1-ATM-001…` row | ATM detail opens — header **ATM C1-ATM-001**, a left **Cycle History** panel, and **← Fleet** + **+ Record Replenishment** buttons |
| 3 | Look at the Cycle History list | Rows show **# / Started / Ended / Status / Variance**; a still-running cycle shows **Open** under Ended; each row has a **Balanced** or **Variance** status badge |
| 4 | Click a cycle row | Right panel fills in with the cash breakdown — **Opening Balance** down to **Expected Closing**, **Actual Closing (Physical Count)**, and **Variance** |
| 5 | Open a cycle whose status is **Variance** | Its **Variance** amount is shown in red and the detail panel does **not** say Balanced ✓ (a Balanced cycle shows **Balanced ✓** and a blank/zero variance) |
| 6 | As `msp_a`, on an ATM with an **open** cycle, click **↻ Sync Journal** | Button shows **Syncing…**, then totals refresh with **no error banner**. On an ATM with no open cycle the button is **greyed out** |
| 7 | Click the **⚙** gear → **Cassette Configuration**, then **↓ Sync from Device**, then **Save Configuration** | Modal opens; slots populate (or a "configure manually" hint appears); Save closes the modal with **no error** |
| 8 | Log in as `customer_a`, open the same C1 ATM, open **⚙ Cassette Configuration** and click **Save Configuration** | Save is **rejected** — an error message shows and nothing is saved (customers are read-only) |
| 9 | As `customer_a`, look at the fleet table | You see **only C1** ATMs — no C2 or C3 |
| 10 | As `msp_a`, look at the fleet table | You see **C1 and C2** ATMs but **not C3** |
| 11 | Open an ATM that has **no** cycles yet | Left panel shows **"No cycles recorded yet."** and the right panel shows **"Select a cycle to view details"** — no error/crash |

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