mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-01-27 03:19:56 +00:00
## Summary - Add `contextMenuConverter.ts` with utilities for converting LiteGraph context menu items to Vue menu format - Improve `contextMenuCompat.ts` with set-based diffing for more reliable legacy extension detection - Extend `MenuOption`/`SubMenuOption` types with `source`, `disabled`, `isColorPicker`, and `category` type fields - Add unit tests for converter functions ## Context This is foundational work for migrating the node context menu from a custom Popover-based component to PrimeVue ContextMenu. The converter provides: - Menu ordering and section grouping (core items first, then extensions) - Deduplication with preference for Vue-native items over LiteGraph items - Extension categorization with labeled section - Support for disabled states and color picker submenus ## Test plan - [x] Unit tests pass for `buildStructuredMenu` (9 tests) - [x] Unit tests pass for `convertContextMenuToOptions` (7 tests) - [x] Typecheck passes - [x] Lint passes - [x] Knip passes (no unused exports) ## Related This is PR 1 of 2 for the node context menu migration. PR 2 will wire up the UI component. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7113-feat-Add-context-menu-converter-infrastructure-2be6d73d3650816ca6c9d2cf50f10159) by [Unito](https://www.unito.io)
LiteGraph Tests
This directory contains the test suite for the LiteGraph library.
Structure
litegraph/
├── core/ # Core functionality tests (LGraph, LGraphNode, etc.)
├── canvas/ # Canvas-related tests (rendering, interactions)
├── infrastructure/ # Infrastructure tests (Rectangle, utilities)
├── subgraph/ # Subgraph-specific tests
├── utils/ # Utility function tests
└── fixtures/ # Test helpers, fixtures, and assets
Running Tests
# Run all litegraph tests
pnpm test:unit -- tests-ui/tests/litegraph/
# Run specific subdirectory
pnpm test:unit -- tests-ui/tests/litegraph/core/
# Run single test file
pnpm test:unit -- tests-ui/tests/litegraph/core/LGraph.test.ts
Migration Status
These tests were migrated from src/lib/litegraph/test/ to centralize test infrastructure. Currently, some tests are marked with .skip due to import/setup issues that need to be resolved.
TODO: Fix Skipped Tests
The following test files have been temporarily disabled and need fixes:
- Most subgraph tests (circular dependency issues)
- Some core tests (missing test utilities)
- Canvas tests (mock setup issues)
See individual test files marked with // TODO: Fix these tests after migration for specific issues.
Writing New Tests
-
Always import from the barrel export to avoid circular dependencies:
import { LGraph, LGraphNode } from '@/lib/litegraph/src/litegraph' -
Use the test fixtures from
fixtures/directory -
Follow existing patterns for test organization
Test Fixtures
Test fixtures and helpers are located in the fixtures/ directory:
testExtensions.ts- Custom vitest extensionssubgraphHelpers.ts- Helpers for creating test subgraphssubgraphFixtures.ts- Common subgraph test scenariosassets/- Test data files