- 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
4.5 KiB
4.5 KiB
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:
- Navigate to
/artifact/registries - Registry
harbor-bwgdiloads with 13 charts - Expand
charts/chromadbfolder - Tag
0.1.4appears with "Launch" and "Copy" buttons - Click the "Launch" button
- Navigate to
- Actual: No visible reaction — no modal opens, no URL change, no console error. The button is not disabled (no
disabledattribute, noaria-disabled), is visibly styled as active (bg-blue-50 text-blue-700 border-blue-200 shadow-sm), and Playwright confirmsis_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-labelor accessible description. The "Copy" button next to it has atitle="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.png02-home→/tmp/ocdp-qa-screenshots/02-home.png02-home-full→/tmp/ocdp-qa-screenshots/02-home-full.png04-chart-browser→/tmp/ocdp-qa-screenshots/04-chart-browser.png04-chart-expanded→/tmp/ocdp-qa-screenshots/04-chart-expanded.png04-launch-modal→/tmp/ocdp-qa-screenshots/04-launch-modal.png05-instances→/tmp/ocdp-qa-screenshots/05-instances.png06-monitoring→/tmp/ocdp-qa-screenshots/06-monitoring.png07-clusters→/tmp/ocdp-qa-screenshots/07-clusters.png07-add-cluster-form→/tmp/ocdp-qa-screenshots/07-add-cluster-form.png08-registries→/tmp/ocdp-qa-screenshots/08-registries.png08-add-registry-form→/tmp/ocdp-qa-screenshots/08-add-registry-form.png