"Fix node (recreate)" looked a node's links, and the nodes at their other end, up in app.graph, the root graph. A subgraph keeps its own links and nodes, so inside a subgraph the lookup found nothing: the entry threw "Cannot read properties of undefined" and, because the original is removed only afterwards, left the wired original and an unwired replacement on the canvas. - Read links and nodes from the graph the node is in - Reconnect a link that starts at an input of the subgraph, or ends at one of its outputs, through that slot; those two are not nodes of the graph - For a link from a subgraph input, skip an input the new node does not have or has with a type that does not fit, as connect() does for a link from a node; a subgraph input's connect() checks neither - Extend the Playwright spec to a node inside a subgraph, a node wired to the inputs and output of a subgraph, an input the new node lacks and an input whose type changed; compare the slot at the other end of every link, and the record on the subgraph slot - Add a CHANGELOG entry Follow-up to #3507. The same change for main is #3513.
Playwright E2E Tests — Legacy Manager UI
Browser-based E2E tests for the ComfyUI-Manager legacy UI.
Prerequisites
- E2E environment built via
python tests/e2e/scripts/setup_e2e_env.py - Playwright runner and Chromium (from the repository root):
npm install --no-save --package-lock=false @playwright/test@1.59.1, thennpx playwright install chromium. - ComfyUI running with legacy UI enabled:
E2E_ROOT=/tmp/e2e_full_test
PORT=8199
PYTHONPATH="$PWD" $E2E_ROOT/venv/bin/python $E2E_ROOT/comfyui/main.py \
--listen 127.0.0.1 --port $PORT \
--enable-manager --enable-manager-legacy-ui \
--cpu
Running Tests
Run from the repository root. XSS fixtures execute the checkout's Python renderer
using python3; set PYTHON=/path/to/python to select another interpreter.
# With server already running:
PORT=8199 npx playwright test
# Single file:
PORT=8199 npx playwright test tests/playwright/legacy-ui-manager-menu.spec.ts
# Headed (visible browser):
PORT=8199 npx playwright test --headed
# Debug mode:
PORT=8199 npx playwright test --debug
Test Files
| File | Scenarios |
|---|---|
legacy-ui-manager-menu.spec.ts |
Menu dialog rendering, settings dropdowns, API round-trip |
legacy-ui-custom-nodes.spec.ts |
Node list grid, filter, search, footer buttons |
legacy-ui-model-manager.spec.ts |
Model list grid, filter, search |
legacy-ui-snapshot.spec.ts |
Snapshot list, save, remove |
legacy-ui-navigation.spec.ts |
Dialog open/close, nested navigation, no duplicates |
custom-nodes-xss.spec.ts |
Node metadata, Markdown, links, errors, search highlighting |
model-manager-xss.spec.ts |
Model metadata, links, errors, search highlighting |
legacy-message-errors.spec.ts |
Batch rejection IDs, name readability, DOM colors, lookup errors |
legacy-ui-node-fixer.spec.ts |
"Fix node (recreate)" context-menu entry: one node left, links rewired, numeric and string node ids, inside a subgraph |