---
module: recon.device-cycle-mgmt
title: Device Cycle Management
tab: Testing
order: 35
audience: dev
---

Frontend test checklist for **Device Cycle Mgmt** in Cash Reconciliation (`recon.bcos.dev`). 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 save |
| `msp_a@msp1.bcos.dev` | MSP admin | C1 + C2 only · can save |
| `customer_a@customer1.bcos.dev` | Customer | C1 only · read-only |

Open the **Device Cycle Mgmt** screen in Recon. Devices are the simulator ATMs: **C1-ATM-001…** (and C2-/C3- for the other institutions).

## What to test

| # | Do this | ✅ Pass if |
|---|---------|-----------|
| 1 | As `msp_a`, open **Device Cycle Mgmt** | Two lists show — **Available** (left) and **Selected for Recon** (right) — each with a count badge in its header |
| 2 | Type `C1-ATM` in the **Available** Filter box, then clear it | List narrows to only matching ATM IDs; clearing the box shows the full list again |
| 3 | Click an ATM in **Available**, then click the **&gt;** button | The ATM highlights blue on click, then moves to **Selected** and the Selected count goes up by one |
| 4 | **Double-click** an ATM in either list | It jumps to the other list instantly (one move, no page reload) |
| 5 | Click **&gt;&gt;** (move all) | Available empties and shows **"All ATMs are selected"**; Selected count equals the total |
| 6 | Click **&lt;&lt;** (remove all) | Selected empties and shows **"No ATMs selected — all will be shown"** |
| 7 | Select a few ATMs, click **Save Selection** | A green message appears: **"Saved. Cash Reconciliation will show N ATMs."** Reload the page — the same ATMs stay in Selected |
| 8 | Clear everything, click **Save Selection** | Message reads **"Selection cleared — showing all ATMs"** (empty is valid — not a failure) |
| 9 | Log in as `customer_a`, open the screen, click **Save Selection** | You can view and drag ATMs, but saving shows a red **"Save failed"** message — customers are read-only |
| 10 | As `customer_a` look at the lists; then as `msp_a` | `customer_a` sees **only C1** ATMs; `msp_a` sees **C1 and C2** but **not C3** |

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