---
module: profile.appearance
title: Appearance
tab: Testing
order: 35
audience: dev
---

Frontend test checklist for the **Appearance** panel in Profile (`profile.bcos.dev`). Click through in the UI and mark each row Pass or Fail.

## Set up
Log in at **profile.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 · read-only elsewhere |

No simulator devices are needed — Appearance is a **per-user personal setting** (theme + table density), not tied to any institution or device.

## What to test

| # | Do this | ✅ Pass if |
|---|---------|-----------|
| 1 | As `msp_a`, open **Profile → Appearance** | Panel loads with a **Theme** row (Light / Dark / System) and a **Table density** row (Comfortable / Compact); **Save** is greyed out |
| 2 | Click the **🌙 Dark** theme card | The Dark card gets a highlighted border, an **Unsaved changes** badge appears top-right, and **Save** + **Discard** become active |
| 3 | Click **Save** | Screen switches to dark background, an **Appearance saved** toast shows, and the badge disappears |
| 4 | Reload the page (F5) | It comes back in **Dark** with the Dark card still selected — the choice persisted |
| 5 | Change the theme again, then click **Discard** | The selection snaps back to your last saved value and the **Unsaved changes** badge disappears (nothing saved) |
| 6 | Switch to **Compact** table density and **Save**, then reload | Compact stays selected after reload |
| 7 | Set theme to **💻 System**, Save, then flip your OS light/dark setting | The app follows the OS setting (System = follows the computer) |
| 8 | Log in as `customer_a`, open **Appearance**, pick a theme and **Save** | It saves normally with the **Appearance saved** toast — everyone can set their **own** appearance, even read-only customers |
| 9 | Still as `customer_a`, log out and back in | Your saved theme is still applied — preferences are remembered per user, not shared with other accounts |

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