- Add Workspace domain (entity, repository, service, handler, DTO) - Add multi-tenant K8s client with tenant binding and quota management - Add K8s diagnostics client (instance diagnostics) - Add authorization middleware (authz package) - Restructure frontend to feature-based architecture (features/) - Add User Management page in configuration - Add AccessDenied page and route guards - Refactor shared components (form inputs, layout, UI) - Update Tailwind config for new design system - Add comprehensive documentation (docs/, tasks/, plans) - Improve cluster service with better kubeconfig handling - Add tests for crypto, config, helm client, tenant binding
93 lines
4.5 KiB
Markdown
93 lines
4.5 KiB
Markdown
# 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`
|