## Problem
All Playwright tests on rh-test were failing due to cloud-specific
initialization blocking test execution:
1. Firebase auth guard waits 16 seconds for auth initialization,
exceeding test timeout (15s)
2. Remote config fetch blocks on /api/features endpoint
3. Snapshot images outdated - rh-test has old snapshots while main UI
evolved
## Solution
**Skip cloud auth guard** (src/router.ts)
- Add `if (!isCloud) return next()` at start of router.beforeEach
- Playwright builds with DISTRIBUTION='localhost', bypassing the guard
- Safe since guard is cloud-only (Firebase, login pages, onboarding)
**Mock /api/features endpoint** (browser_tests/fixtures/ComfyPage.ts)
- Try real backend first, fallback to empty config
- Prevents initialization hang when endpoint unavailable
- Preserves explicit featureFlags.spec.ts test functionality
**Update snapshots from main**
- Pulled 33 snapshot files from main branch
- Fixes snapshot mismatches caused by UI evolution on main
- Includes 3 new snapshots (recordAudio, bypass/mute states)
## Impact
- Playwright tests can now initialize and run on rh-test
- Cloud functionality unchanged (fixes only affect
DISTRIBUTION='localhost')
- No production behavior changes
* [fix] update selection overlay tests after canvas migration
Update browser tests to work with canvas-based selection overlay introduced in PR #5158.
Replaces DOM-based .selection-overlay-container checks with .selection-toolbox visibility
and converts border visibility tests to canvas screenshot comparisons.
Fixes#5158
* [chore] remove unused file flagged by knip
* [fix] adjust test expectations for canvas-based positioning
- Skip animated webp test unrelated to selection overlay changes
- Update toolbox position expectations to match canvas-based coordinates
- Canvas positioning uses different coordinate system than DOM overlay
* [fix] improve positioning test flexibility and revert webp skip
- Make toolbox position test more flexible for canvas-based coordinates
- Revert animated webp test skip as requested in review
- Canvas positioning varies more than DOM, use reasonable bounds instead
* Update test expectations [skip ci]
* [refactor] address review comments - use fixture locators
- Add selectionToolbox locator to ComfyPage fixture as requested
- Replace .isVisible() === false with .not.toBeVisible() pattern
- Update all selection toolbox locators to use fixture instead of inline selectors
- Improves maintainability and follows established patterns
* [refactor] use fixture canvas locator for screenshots
Replace inline canvas locators with comfyPage.canvas fixture property
for consistency and maintainability as suggested in review.
---------
Co-authored-by: github-actions <github-actions@github.com>
Updated import from @comfyorg/litegraph npm package to relative path
since browser tests don't have @ alias configured in tsconfig
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Litegraph: canvas.pointer
Clear @ts-expect-error
Fix exception thrown on slot double-click
Long-standing bug but has no real impact in prod - just logs an error.
Required for new connecting_link features.
Add settings: CanvasPointer options
Update litegraph 0.8.28
Fix regression in snap to grid render
Fix snap to grid marker always on
Update snap to grid to use Positionable API
Fix test clicks registering as double-click
Improve test precision
Current test proves it has changed to something smaller.
New test proves it is exactly what was specified.
Will need refinement when a limit is put on latent width.
Fix test expects collapse node to select node
Remove redundant code
Resolved by CanvasPointer
Fix flaky test - ContextMenu
Fix settings group
* Update litegraph
* Remove snapToGrid extension
* Update test expectations [skip ci]
---------
Co-authored-by: huchenlei <huchenlei@proton.me>
Co-authored-by: github-actions <github-actions@github.com>