- SidebarTab: Use placeholder selector instead of test ID for search input
- KeyboardHelper: Remove redundant canvas fallback (null is valid)
- groupNode: Use variable for category name instead of hardcoded string
- nodeLibrary: Ensure tab is open before filling search input
- subgraph: Reload workflow after page reload to restore state
- useSettingSearch: Use role selector and simplify selected class assertion
Amp-Thread-ID: https://ampcode.com/threads/T-019c18c2-667a-7179-bb2d-86f35cd1d7b0
Co-authored-by: Amp <amp@ampcode.com>
- Add typescript/no-explicit-any override for browser_tests/**/*.ts
- Fix 9 violations with proper types instead of any
- Add TestGraphAccess interface for typed node access
- Add function overloads to getExportedWorkflow for proper return types
- Fix floating promise in colorPalette.spec.ts
Amp-Thread-ID: https://ampcode.com/threads/T-019c1854-3c3c-723d-8ce6-183ce06fcf1b
Co-authored-by: Amp <amp@ampcode.com>
- Revert extensionManager type from WorkspaceStore to ExtensionManager
- Remove WorkspaceStore export from workspaceStore.ts
- Add WorkspaceStore type to browser_tests/types/globals.d.ts
- Update browser tests to use specific 'as WorkspaceStore' casts
- Consolidate Window augmentation into single globals.d.ts file
Amp-Thread-ID: https://ampcode.com/threads/T-019c1854-3c3c-723d-8ce6-183ce06fcf1b
Co-authored-by: Amp <amp@ampcode.com>
Remove 5 test setting IDs that were incorrectly added to the production
apiSchema.ts. Test settings now use `as TestSettingId` casts in test
files instead of polluting the production Settings type.
Changes:
- Remove TestSetting, TestHiddenSetting, TestDeprecatedSetting,
TestVisibleSetting, Comfy.TestSetting from apiSchema.ts
- Add TestSettingId type helper to extensionAPI.spec.ts and
useSettingSearch.spec.ts
- Use specific `as TestSettingId` casts with explanatory comments
This keeps production types clean while allowing tests to register
arbitrary setting IDs (which is valid extension behavior).
Amp-Thread-ID: https://ampcode.com/threads/T-019c1833-2352-728b-a523-a8f440fd3ba1
Co-authored-by: Amp <amp@ampcode.com>
Remove 40 instances of `as any` from browser_tests directory.
Changes made:
- Changed extensionManager type from ExtensionManager to WorkspaceStore
- Added test setting IDs to production apiSchema.ts
- Added Window.__ws__ declaration in browser_tests/types.d.ts
- Used type narrowing for Subgraph objects
- Replaced `as any` with `as ComfyWorkflowJSON` in groupNode.spec.ts
- Added non-null assertions where values are guaranteed
Known issues requiring remediation:
- Test settings pollute production schema (should use test augmentation)
- WorkspaceStore export breaks ExtensionManager API contract
- ComfyWorkflowJSON cast hides ISerialisedGraph type gap
- z.any() usage violates project rules
Amp-Thread-ID: https://ampcode.com/threads/T-019c1833-2352-728b-a523-a8f440fd3ba1
Co-authored-by: Amp <amp@ampcode.com>
- Add browser_tests/types/globals.d.ts with Window interface augmentation
- Add types for app, graph, LiteGraph, LGraphBadge and test globals
- Standardize window['prop'] to window.prop across 37 test files
- Update browser_tests/tsconfig.json to include new type definitions
Amp-Thread-ID: https://ampcode.com/threads/T-019c16b3-cc31-70ea-9727-a933cb0ee942
Co-authored-by: Amp <amp@ampcode.com>
- Fix widgetTextBox locator in ComfyPage
- Add exact match for 'Add' button in search filter panel
- Fix ClipboardHelper to properly handle undefined vs null locators
- Use canvasOps.dragAndDrop in NodeOperationsHelper
- Use nodeOps.waitForGraphNodes in link interaction tests
- Add typecheck:browser script for browser tests
Amp-Thread-ID: https://ampcode.com/threads/T-019c1696-c595-7724-8dca-64f73f19f478
Co-authored-by: Amp <amp@ampcode.com>
Phase 2 of ComfyPage refactor:
- Add ToastHelper, DragDropHelper, CommandHelper instances to ComfyPage
- Remove migrated methods from ComfyPage (command, toast, dragDrop, workflow, canvasOps, nodeOps methods)
- Update all test files to use new helper paths
- Keep visibleToasts as passthrough getter for backward compatibility
Amp-Thread-ID: https://ampcode.com/threads/T-019c1666-ed27-773c-976a-07cc805d7a6c
Co-authored-by: Amp <amp@ampcode.com>
- Add inheritAttrs: false and v-bind="$attrs" to TreeExplorer.vue
- Add #folder slot with NodeTreeFolder in NodeLibrarySidebarTab.vue
- Fixes 92 failing tests that couldn't find node-library-tree or folder elements
Amp-Thread-ID: https://ampcode.com/threads/T-019c1636-dca2-77ad-85ad-bcc53aa73e94
Co-authored-by: Amp <amp@ampcode.com>
- nodeSearchBox.spec.ts: Use NodeReference.getOutput() for CLIP output slot position
- rightClickMenu.spec.ts: Use NodeReference.getTitlePosition() for node dragging
- Add getTitlePosition() helper to NodeReference for drag operations
Amp-Thread-ID: https://ampcode.com/threads/T-019c1367-6a59-7752-9329-17cbf152fc62
Co-authored-by: Amp <amp@ampcode.com>
Migrate all test callers to use helper classes directly:
- nodeOps: getGraphNodesCount, getNodeRefById, selectNodes, etc.
- canvasOps: dragAndDrop, zoom, pan, resetView, etc.
- subgraph: rightClickInputSlot, connectToOutput, etc.
Reduces ComfyPage.ts from 1335 to 1085 lines (-250 lines).
Amp-Thread-ID: https://ampcode.com/threads/T-019c1318-58b7-757f-801c-5b676f0d3421
Co-authored-by: Amp <amp@ampcode.com>
- Create browser_tests/fixtures/constants/defaultGraphPositions.ts with all hardcoded default graph positions
- Create browser_tests/fixtures/constants/types.ts with Position and Size interfaces
- Update ComfyPage.ts to import and use DefaultGraphPositions
- Reduces duplication and prepares for further modular extraction
Amp-Thread-ID: https://ampcode.com/threads/T-019c1201-adec-7363-96d5-446d0a98e4cf
Co-authored-by: Amp <amp@ampcode.com>