Skip to content

feat: complete SensibleDB Explorer UI redesign with E2E test coverage#15

Merged
rprabhat merged 13 commits into
mainfrom
feat/sensible-db-ui-redesign
Apr 5, 2026
Merged

feat: complete SensibleDB Explorer UI redesign with E2E test coverage#15
rprabhat merged 13 commits into
mainfrom
feat/sensible-db-ui-redesign

Conversation

@rprabhat

@rprabhat rprabhat commented Apr 5, 2026

Copy link
Copy Markdown
Collaborator

Summary

Complete implementation of the SensibleDB Explorer UI redesign (all 5 phases) with comprehensive E2E test coverage.

What's Implemented

Phase 1: Foundation - CSS design tokens, component styles, NQL execution, graph interactions
Phase 2: Home & Onboarding - Guided tour, connection wizard, contextual tooltips with glossary
Phase 3a: Chat Interface - NL→NQL translation, structured responses, follow-up suggestion chips
Phase 3b: Graph View - Node cards with foreignObject, InspectorPanel, Query Bar, async force simulation
Phase 4: Reports - Formatted export (txt/PDF), share functionality, time period selector
Phase 5: Polish - CSS animations, ErrorBoundary, keyboard shortcuts (1-8, /, Ctrl+K/G/R)

E2E Test Coverage

  • 65 Playwright E2E tests all passing
  • Zero test.skip or test.fixme patterns
  • Zero fake assertions
  • Coverage: Home View, Graph View, Chat Interface, Report View, Navigation & Keyboard Shortcuts, Onboarding, Error Handling, Design System, NQL Editor, Data Views, Data Flow

CI Integration

  • GitHub Actions workflow with Playwright E2E job
  • ubuntu-latest runner, pnpm, Node.js 20
  • Path triggers for nexus-explorer/, e2e/, playwright.config.ts
  • webServer config with pnpm vite --port 1420

rprabhat and others added 13 commits April 5, 2026 14:18
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Implement all 5 phases of the SensibleDB Explorer redesign:

Phase 1 (verified): Foundation - CSS tokens, component styles, graph interactions
Phase 2: Home & Onboarding - Guided tour, connection wizard, contextual tooltips
Phase 3a: Chat Interface - NL→NQL translation, structured responses, follow-up chips
Phase 3b: Graph View - Node cards with foreignObject, InspectorPanel, Query Bar
Phase 4: Reports - Formatted export (txt/PDF), share, time period selector
Phase 5: Polish - Animations, ErrorBoundary, keyboard shortcuts (1-8, /, Ctrl+K/G/R)

New components:
- GuidedTour: 5-step overlay tour with localStorage persistence
- ConnectionWizard: 4-step modal wizard for data sources
- ContextualTooltip: Reusable tooltip with glossary explanations
- InspectorPanel: Node details with connected items and 'Ask about' button
- ErrorBoundary: Per-view error boundary with retry

E2E testing:
- Playwright setup with Tauri API mock for browser testing
- 56 tests covering all views, navigation, keyboard shortcuts, design system
- Test categories: Home, Graph, Chat, Report, Navigation, Onboarding, NQL, Data Views
… flow tests

- Add webServer config to playwright.config.ts with auto-start on port 1420
- Align Playwright baseURL with Vite config port (1420)
- Add reuseExistingServer for local dev convenience
- Add 7 data flow tests verifying mock data renders with correct values:
  - Correct database name, node count (10), edge count (10)
  - Correct metric values in report view
  - Correct item/connection counts in status bar and chat welcome message
- No skipped or deleted tests
- Add playwright-e2e job to .github/workflows/e2e-tests.yml
- Installs Node.js 20, frontend dependencies, and Playwright Chromium
- Runs npx playwright test with CI=true environment
- Fix e2e-test.sh: replace hardcoded node/edge counts with assert_gt > 0
- Remove toBeGreaterThanOrEqual(0) assertion (always passes, verifies nothing)
- Add 3 real error handling tests:
  - error boundary renders when component throws (navigate to unknown route)
  - app handles empty database gracefully (main content visible)
  - status bar shows zero counts when no db selected
- Total: 65 E2E tests, all passing
- Change npm install to pnpm install (project uses pnpm exclusively)
- Add pnpm/action-setup@v4 step
- Add e2e/** and playwright.config.ts to path triggers so test changes re-run CI
- playwright.config.ts: use pnpm vite instead of npx vite for CI consistency
- e2e-tests.yml: remove duplicate push block that caused YAML override bug
… error tests

- Replace fake error handling tests with real stability assertions
- Replace waitForTimeout with auto-waiting toBeVisible({ timeout: 5000 })
- Add content assertions in Data Flow tests
- 65 tests passing consistently
…tu-latest

- Remove redundant e2e-tests job that ran grep-based static checks
- Change playwright-e2e from macos-latest to ubuntu-latest (cost + reliability)
- Keep only the real Playwright E2E browser tests in CI
@rprabhat rprabhat merged commit 87cc196 into main Apr 5, 2026
7 checks passed
@rprabhat rprabhat deleted the feat/sensible-db-ui-redesign branch April 5, 2026 04:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant