---
module: reports.templates
title: Report Templates
tab: Testing
order: 35
audience: dev
---

Frontend test checklist for **Report Templates** (`report.bcos.dev`). Click through in the UI and mark each row Pass or Fail.

## Set up
Log in at **report.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 |

Reports are **owned per user** — everyone (including customers) can build their own. Use the simulator ATMs when a run asks you to pick devices: **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 the Reports page | Page loads with a **Templates** tab (sections **My Reports** + **Shared Reports**) and a **Run History** tab |
| 2 | Click **+ New Report** → give it a Name → pick Data Source **Incidents** → tick a few Columns → Save | Report appears in **My Reports** with its Data Source and **Manual** schedule |
| 3 | Try to Save a report with **no columns and no group-by** selected | Save is blocked — you can't save an empty report |
| 4 | On your report click **Queries** → **+ New Query** → pick a date range (e.g. Last 7 days) and a couple of ATMs (`C1-ATM-001`…) → save | Query is listed under **Saved Queries** with its range and ATM count |
| 5 | Click **▶ Run** → choose your saved query (or **Custom**) → submit | You land on **Run History** and the run shows **Pending → Running → Completed** |
| 6 | On the completed run click **Preview**, then **Download** | Preview shows the first rows in-app; Download saves a CSV/JSON file |
| 7 | Back on the report click **Share** | Row gets a **Shared** badge and the button flips to **Unshare** |
| 8 | Log in as `customer_a`, open **Templates** | The report from step 7 appears under **Shared Reports** with only a **▶ Run** button — **no Edit/Delete** on it |
| 9 | Still as `customer_a`, check the toolbar | **+ New Report** is present (customers can build their own) and **My Reports** shows only reports you created — not `msp_a`'s |
| 10 | As `msp_a`, on your report click **Delete** → **Confirm?** | Report disappears from **My Reports**; no error/crash |

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