# Legacy UI Playwright E2E — Test Scenarios Scenario list based on the actual API call flow of the Legacy UI (runtime-verified). ## URL Convention ComfyUI's `api.fetchApi()` automatically prepends the `/api` prefix to every path. - JS call: `fetchApi('/v2/manager/db_mode')` → actual request: `GET /api/v2/manager/db_mode` - When intercepted by Playwright `route`, the URL is captured in the `/api/v2/...` form. ## Install Flow (Runtime-verified) ``` [Install button click] → GET /api/v2/customnode/versions/{id} ← list available versions → Version-selection dialog (` → "Select" click | `queue/batch` called with `install` key in body | `POST /api/v2/manager/queue/batch` | | 3-3 | Install — WebSocket status | Install runs | `cm-queue-status` messages: in_progress → batch-done → all-done | WebSocket | | 3-4 | Uninstall | "Installed" → "Uninstall" click → confirm dialog "OK" | `uninstall` key in batch body | `POST /api/v2/manager/queue/batch` | | 3-5 | Disable | "Installed" → "Disable" click | `disable` key in batch body | `POST /api/v2/manager/queue/batch` | | 3-6 | Enable | "Disabled" → "Enable" click → pick version | `install` key + `skip_post_install:true` in batch body | `GET disabled_versions/{id}` → `POST queue/batch` | | 3-7 | Update | "Installed" → "Try update" click | `update` key in batch body | `POST /api/v2/manager/queue/batch` | | 3-8 | Fix | import-fail node → "Try fix" click | `fix` key in batch body (skip if none) | `POST /api/v2/manager/queue/batch` | ## 4. Version management **File**: `legacy-ui-node-versions.spec.ts` (new) | # | Scenario | UI action | Assertion | Endpoint | |---|---------|---------|------|----------| | 4-1 | Installed node version list | "Installed" → "Switch Ver" click | Version list shown in `