# OCDP Platform QA Report - test-user-a

**Date:** 2026-05-11
**Environment:** http://10.6.80.114:18080
**User:** test-user-a (non-admin)

## Summary

- **Total Bugs Found:** 3
- **Screenshots Taken:** 12
- **Test Status:** 7/8 areas covered, 1 blocked (Launch button non-functional)

---

## Bug List

### Bug #1: Direct SPA Routes Return Empty Pages (🔴 HIGH)

- **Page:** Multiple — `/clusters`, `/registries`, `/monitoring`, `/launch`
- **Action:** Navigate directly to these URLs
- **Actual:** Returns only the React `<div id="root">` shell with no rendered content (~0 chars body text). The SPA fails to mount when hitting these routes directly.
- **Expected:** Should either render content or redirect to correct working routes:
  - `/clusters` → `/configuration/clusters`
  - `/registries` → `/configuration/registries`
  - `/monitoring` → `/monitoring/clusters`
  - `/launch` → `/artifact/registries`
- **Severity:** HIGH — Users who bookmark or type these URLs see blank pages
- **Screenshot:** `01-login` (representative of empty state)

**Working routes for reference:**
- `/configuration/clusters` ✅
- `/configuration/registries` ✅
- `/monitoring/clusters` ✅
- `/artifact/registries` ✅
- `/artifact/instances` ✅

---

### Bug #2: Launch Button Does Nothing When Clicked (🔴 HIGH)

- **Page:** Chart Browser (`/artifact/registries`)
- **Action:**
  1. Navigate to `/artifact/registries`
  2. Registry `harbor-bwgdi` loads with 13 charts
  3. Expand `charts/chromadb` folder
  4. Tag `0.1.4` appears with "Launch" and "Copy" buttons
  5. Click the "Launch" button
- **Actual:** No visible reaction — no modal opens, no URL change, no console error. The button is not disabled (no `disabled` attribute, no `aria-disabled`), is visibly styled as active (`bg-blue-50 text-blue-700 border-blue-200 shadow-sm`), and Playwright confirms `is_enabled() == True`. The React onClick handler produces no observable effect.
- **Expected:** Clicking "Launch" on a chart tag should open a deployment form/dialog with cluster selector, instance name, namespace, and values configuration fields.
- **Severity:** HIGH — Core platform feature (deploying Helm charts) is completely blocked
- **Screenshot:** `04-chart-expanded`

---

### Bug #3: Ambiguous "Launch" Button Labels (🟡 MEDIUM)

- **Page:** Chart Browser (`/artifact/registries`)
- **Action:** Inspect button accessible names
- **Actual:** Both the sidebar navigation item "Launch Instance" and the chart action button "Launch" appear on the same page. The chart action button has no distinguishing `aria-label` or accessible description. The "Copy" button next to it has a `title="Copy pull command"` attribute, but "Launch" does not.
- **Expected:** The chart action should have a descriptive label like `aria-label="Launch chart chromadb version 0.1.4"` to differentiate from the nav item.
- **Severity:** MEDIUM — Accessibility concern; minor confusion for sighted users with multiple "Launch" targets

---

## Test Results by Area

| Area | Status | Notes |
|------|--------|-------|
| Login | ✅ PASS | test-user-a login successful, redirect to `/home` |
| Home Page | ✅ PASS | All cards visible, nav clicks work, no Users section |
| Sidebar Nav | ✅ PASS | All 6 items navigate correctly, Users hidden |
| Chart Browser | ❌ BLOCKED | Registry loads, charts expand, but **Launch button dead** |
| Instances | ✅ PASS | Empty state, filter, refresh all work |
| Monitoring | ✅ PASS | 2 clusters, health data, CPU/Memory/GPU stats all load |
| Config - Clusters | ✅ PASS | Both clusters listed, Add form opens |
| Config - Registries | ✅ PASS | Harbor registry listed, Add form opens |
| Direct Routes | ❌ FAIL | 4 routes return empty pages |

## Screenshots

- `01-login` → `/tmp/ocdp-qa-screenshots/01-login.png`
- `02-home` → `/tmp/ocdp-qa-screenshots/02-home.png`
- `02-home-full` → `/tmp/ocdp-qa-screenshots/02-home-full.png`
- `04-chart-browser` → `/tmp/ocdp-qa-screenshots/04-chart-browser.png`
- `04-chart-expanded` → `/tmp/ocdp-qa-screenshots/04-chart-expanded.png`
- `04-launch-modal` → `/tmp/ocdp-qa-screenshots/04-launch-modal.png`
- `05-instances` → `/tmp/ocdp-qa-screenshots/05-instances.png`
- `06-monitoring` → `/tmp/ocdp-qa-screenshots/06-monitoring.png`
- `07-clusters` → `/tmp/ocdp-qa-screenshots/07-clusters.png`
- `07-add-cluster-form` → `/tmp/ocdp-qa-screenshots/07-add-cluster-form.png`
- `08-registries` → `/tmp/ocdp-qa-screenshots/08-registries.png`
- `08-add-registry-form` → `/tmp/ocdp-qa-screenshots/08-add-registry-form.png`
