-
Notifications
You must be signed in to change notification settings - Fork 38
feat(38111) Add a "wizard" mode in the workspace #1284
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Test Results 482 files 482 suites 5m 26s ⏱️ Results for commit 1818874. ♻️ This comment has been updated with latest results. |
Coverage Report
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements a comprehensive wizard system for creating entities directly within the workspace canvas, unifying the previously fragmented creation flows. The wizard provides step-by-step guidance with visual ghost node previews, progress tracking, and in-context configuration panels.
Key Changes:
- Adds a "Create New" dropdown button in the workspace toolbar for initiating entity creation wizards
- Implements wizard state management using Zustand with support for 10 entity/integration types
- Creates ghost node preview system showing topology before entity creation
- Integrates existing form components (adapters, bridges, combiners) into wizard flow with minimal modification
Purpose:
Replace inconsistent entity creation patterns (some in workspace, some outside) with a unified wizard experience that keeps users in context while providing clear visual feedback.
Reviewed Changes
Copilot reviewed 53 out of 88 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
CreateEntityButton.spec.cy.tsx |
New component tests for wizard trigger button with accessibility verification |
CanvasToolbar.tsx |
Integrates Create Entity Button into workspace toolbar |
ReactFlowWrapper.tsx |
Adds wizard components (progress bar, ghost renderer, selection restrictions, config panels) and handles node click interactions during wizard selection mode |
EdgeFlowPage.tsx |
Wraps workspace with ProtocolAdaptersProvider for wizard capabilities checking |
ProtocolsBrowser.tsx |
Adds forceSingleColumn prop for compact wizard layout |
CombinerMappingManager.tsx |
Extends to support wizard mode with wizardContext prop, creating phantom nodes for wizard flow |
translation.json |
Adds 130+ i18n keys for wizard UI elements, steps, and messages |
saveHTMLSnapshot.ts |
New Cypress debugging commands for AI-friendly DOM snapshots |
findByTestId.ts |
New Cypress helper for scoped test ID queries |
commands.ts |
Registers new Cypress commands for testing and debugging |
pages/index.ts |
Exports new wizardPage object |
WizardPage.ts |
Comprehensive page object with 371 lines covering all wizard interactions and selectors |
wizard-create-combiner.spec.cy.ts |
E2E tests for combiner wizard with selection panel verification |
wizard-create-bridge.spec.cy.ts |
E2E tests for bridge wizard with 329 lines covering accessibility, navigation, and form validation |
wizard-create-adapter.spec.cy.ts |
E2E tests for adapter wizard with protocol selection and configuration |
USER_DOCUMENTATION_GUIDELINE.md |
Comprehensive 526-line template for creating end-user feature documentation |
TESTING_GUIDELINES.md |
Updates with Cypress consolidation notices and React Flow testing patterns |
README.md |
Documents consolidated Cypress guidelines and deleted legacy files |
I18N_GUIDELINES.md |
Major refactor explaining i18next context pattern with plain string keys |
CYPRESS_TESTING_GUIDELINES.md |
New consolidated 759-line reference merging all Cypress documentation |
CYPRESS_TESTING_BEST_PRACTICES.md |
Deleted (consolidated into CYPRESS_TESTING_GUIDELINES.md) |
CYPRESS_LOGGING_INDEX.md |
Updated to reference consolidated documentation |
CYPRESS_BEST_PRACTICES.md |
Deleted (consolidated into CYPRESS_TESTING_GUIDELINES.md) |
AI_AGENT_CYPRESS_COMPLETE_GUIDE.md |
New 927-line guide for AI agents on Cypress test analysis and debugging |
WIZARD_WORKFLOW_DOM_REFERENCE.md |
New 635-line reference documenting wizard workflows, DOM elements, and test paths |
USER_DOCUMENTATION.md (wizard) |
End-user documentation for workspace creation wizard feature |
TASK_SUMMARY.md |
Progress tracking for wizard implementation (5/20 subtasks complete) |
TASK_BRIEF.md |
Original task requirements and acceptance criteria |
SUBTASK_7_COMPLETE_ADAPTER_FLOW.md |
Implementation plan for completing adapter wizard with API integration |
SUBTASK_6_CONFIG_PANEL.md |
Documentation of configuration panel integration with 95% component reuse |
SUBTASK_6.5_NAVIGATION_FIX.md |
Fix for wizard navigation stuck on Step 1 |
USER_DOCUMENTATION.md (toolbar) |
User documentation for unified workspace toolbar feature |
trigger.md |
Workflow trigger file update |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
hivemq-edge-frontend/.tasks/38111-workspace-operation-wizard/TASK_BRIEF.md
Outdated
Show resolved
Hide resolved
hivemq-edge-frontend/.tasks/38111-workspace-operation-wizard/TASK_BRIEF.md
Outdated
Show resolved
Hide resolved
9be110d to
3806460
Compare
oli-hivemq
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left some comments, and I'm approving to move fast
hivemq-edge-frontend/src/extensions/datahub/components/pages/PolicyEditorLoader.spec.cy.tsx
Show resolved
Hide resolved
hivemq-edge-frontend/src/modules/Workspace/components/ReactFlowWrapper.tsx
Outdated
Show resolved
Hide resolved
hivemq-edge-frontend/src/modules/Workspace/components/ReactFlowWrapper.tsx
Outdated
Show resolved
Hide resolved
hivemq-edge-frontend/src/modules/Workspace/components/wizard/CreateEntityButton.tsx
Outdated
Show resolved
Hide resolved
hivemq-edge-frontend/src/modules/Workspace/components/wizard/utils/wizardMetadata.ts
Outdated
Show resolved
Hide resolved
hivemq-edge-frontend/src/modules/Workspace/hooks/useWizardStore.ts
Outdated
Show resolved
Hide resolved
hivemq-edge-frontend/src/modules/Workspace/hooks/useWizardStore.ts
Outdated
Show resolved
Hide resolved
hivemq-edge-frontend/src/modules/Workspace/hooks/useWizardStore.ts
Outdated
Show resolved
Hide resolved
31b902e to
1818874
Compare
Kanban Ticket: https://hivemq.kanbanize.com/ctrl_board/57/cards/38111/details/
Description
This PR introduces a guided creation wizard that allows users to create entities directly within the workspace canvas. Previously, users had to leave the workspace to create entities or use inconsistent patterns, then return to see them visualized. Now, users can create, preview, and configure entities without interrupting their workflow in the workspace.
https://www.loom.com/share/9e80c8fdce634532a40e19db28169a30
Phase 1 includes four entity types:
The enhancement introduces:
User Experience Improvements
What users gain:
Technical Summary
Implementation highlights:
BEFORE
Previous Behavior - Separate Creation Flows
The old implementation required users to leave the workspace to create entities:
Limitations:
AFTER
New Behavior - Unified Workspace Wizard
The new implementation provides a streamlined, in-context creation experience for all entity types. While specific screenshots may vary by entity type, the core wizard pattern remains consistent across adapters, bridges, combiners, and asset mappers.
1. Unified Entry Point & Discovery
Users access all entity creation options from a single button in the workspace toolbar.
Test:
cypress/e2e/workspace/wizard/wizard-create-adapter.spec.cy.ts- "Accessibility test"Screenshot: 1400x1016 viewport showing workspace with wizard menu open
Key Visual Elements:
User Benefits:
Users discover all creation options in one place without leaving the workspace or consulting documentation. The categorized menu eliminates the previous fragmentation where some entities were created in workspace, others in separate views.
2. Ghost Preview System
Before configuration, users see transparent preview nodes showing exactly where entities will appear and how they'll connect.
Test:
cypress/e2e/workspace/wizard/wizard-create-adapter.spec.cy.ts- "Accessibility test"Screenshot: Ghost nodes visible on canvas with progress bar at bottom
Key Visual Elements:
User Benefits:
Ghost previews eliminate surprises by showing exactly where new entities will appear in the topology before configuration. Users verify placement makes sense, understand the entity's role in the data flow, and can cancel if the preview doesn't match their expectations.
3. Interactive Selection (Combiners & Asset Mappers)
For entities requiring source nodes, users select directly on the canvas with real-time feedback.
Test:
cypress/e2e/workspace/wizard/wizard-create-bridge.spec.cy.ts- "Accessibility test"Screenshot: Example showing entity ghost preview with topology relationships
Key Visual Elements:
User Benefits:
Interactive selection provides immediate visual feedback about which nodes are compatible and whether requirements are met. Users understand dependencies before configuration and can adjust selections without starting over.
4. Familiar Configuration Forms
Configuration uses the same forms users know from standalone creation flows, just wrapped in wizard context.
Test:
cypress/e2e/workspace/wizard/wizard-create-adapter.spec.cy.ts- "Accessibility test"Screenshot: Protocol selection screen showing HTTP, OPC-UA, and Simulation adapter types
Key Visual Elements:
User Benefits:
Users leverage existing knowledge from standalone creation flows—no need to learn new form patterns. The side drawer maintains spatial context by keeping the workspace visible, helping users remember where the entity will be placed.
5. Success & Automatic Cleanup
After creation, ghost nodes transform into real nodes with confirmation feedback.
Test:
cypress/e2e/workspace/wizard/wizard-create-bridge.spec.cy.ts- "Bridge creation success"Screenshot: Success toast message with wizard closed and real bridge node visible
Key Visual Elements:
User Benefits:
The automatic transition from ghost to real nodes provides clear visual confirmation that creation succeeded. Users can immediately interact with the new entity without additional steps, and the workspace returns to normal operation mode automatically.
Test Coverage
74 tests, all passing ✅
Breakdown:
Component Tests (Vitest): 48 tests
useWizardStore.spec.ts- 28 tests (1 unskipped: accessibility)wizardMetadata.spec.ts- 40 tests (1 unskipped: accessibility)ghostNodeFactory.spec.ts- 42 tests (1 unskipped: accessibility)Component Tests (Cypress): 50 tests
CreateEntityButton.spec.cy.tsx- 16 tests (1 unskipped: accessibility)WizardProgressBar.spec.cy.tsx- 24 tests (1 unskipped: accessibility)GhostNodeRenderer.spec.cy.tsx- 10 tests (1 unskipped: accessibility)E2E Tests (Cypress): 5 tests (0 skipped)
wizard-create-adapter.spec.cy.ts- 2 tests (accessibility + functional)wizard-create-bridge.spec.cy.ts- 3 tests (accessibility + functional + visual regression)Visual Regression (Percy): 7 snapshots
Accessibility:
Performance Impact
Positive improvements:
Measurements:
Accessibility
WCAG2AA Compliance:
Keyboard Shortcuts:
Tab/Shift+Tab- Navigate through wizard controlsEnter- Activate buttons (Create, Next, Complete)Escape- Cancel wizard and clean up ghost nodesArrow Keys- Navigate through dropdown menu optionsScreen Reader Announcements:
Documentation
Added:
.tasks/38111-workspace-operation-wizard/TASK_BRIEF.md- Complete task specification.tasks/38111-workspace-operation-wizard/TASK_SUMMARY.md- Implementation progress tracking.tasks/38111-workspace-operation-wizard/ARCHITECTURE.md- Technical architecture document.tasks/38111-workspace-operation-wizard/USER_DOCUMENTATION.md- End-user feature guide (see attached).tasks/38111-workspace-operation-wizard/QUICK_REFERENCE.md- Developer referenceFuture Work (Not in This PR)
This is Phase 1: Core Entity Wizards of a multi-phase rollout. Future phases will add:
Phase 2: Integration Point Wizards (4-6 weeks)
Phase 3: Enhancements (2-3 weeks)
Reviewer Notes
Focus Areas
Manual Testing Suggestions
Test Entity Wizard (Adapter or Bridge):
/app/workspace)Test Interactive Selection (Combiner or Asset Mapper):
Test Cancellation:
Escapeat various stepsTest Keyboard Navigation:
Tabto focus "Create New" buttonEnterto open menuArrow Keysto navigate optionsEnterto select an entity typeTabto navigate wizard controlsEscapeto cancelQuick Test Commands
This is Phase 1: Core Entity Wizards (Adapter, Bridge, Combiner, Asset Mapper). Feedback on UX patterns and component reusability will inform Phase 2 (Integration Points) and Phase 3 (Enhancements).