Files
ltdrdata-ComfyUI-Manager/tests/playwright
Dr.Lt.Data 5986d2237c v4: Make Fix node (recreate) work inside a subgraph (#3512)
"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.
2026-11-14 09:22:03 +09:00
..

Playwright E2E Tests — Legacy Manager UI

Browser-based E2E tests for the ComfyUI-Manager legacy UI.

Prerequisites

  1. E2E environment built via python tests/e2e/scripts/setup_e2e_env.py
  2. Playwright runner and Chromium (from the repository root): npm install --no-save --package-lock=false @playwright/test@1.59.1, then npx playwright install chromium.
  3. 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