Skip to content

refactor(e2e): replace cy.wait() with assertions for stability#3513

Draft
zackverham wants to merge 5 commits intomainfrom
refactor/e2e-replace-waits-with-assertions
Draft

refactor(e2e): replace cy.wait() with assertions for stability#3513
zackverham wants to merge 5 commits intomainfrom
refactor/e2e-replace-waits-with-assertions

Conversation

@zackverham
Copy link
Collaborator

Replace hardcoded cy.wait() calls with proper Cypress assertions and cy.waitUntil() for better test stability and reliability.

Changes:

  • selectors.js: Simplify publisherWebview and getPublisherSidebarIcon using cy.waitUntil() instead of manual recursion with waits
  • sequences.js: Remove redundant wait after checkbox click, replace recursive section expand with Cypress assertion retry
  • workbench.js: Use cy.waitForNetworkIdle() and visibility assertions instead of hardcoded waits

Reduces cy.wait() calls from 11 to 3 (remaining are intentional backoff in retry utilities).

Intent

Type of Change

    • Bug Fix
    • New Feature
    • Breaking Change
    • Documentation
    • Refactor
    • Tooling

Approach

User Impact

Automated Tests

Directions for Reviewers

Checklist

  • I have updated the root CHANGELOG.md to cover notable changes.

zackverham and others added 5 commits February 13, 2026 12:40
Replace hardcoded cy.wait() calls with proper Cypress assertions and
cy.waitUntil() for better test stability and reliability.

Changes:
- selectors.js: Simplify publisherWebview and getPublisherSidebarIcon
  using cy.waitUntil() instead of manual recursion with waits
- sequences.js: Remove redundant wait after checkbox click, replace
  recursive section expand with Cypress assertion retry
- workbench.js: Use cy.waitForNetworkIdle() and visibility assertions
  instead of hardcoded waits

Reduces cy.wait() calls from 11 to 3 (remaining are intentional backoff
in retry utilities).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The previous refactor broke publisherWebview by:
1. Not using the result from cy.waitUntil()
2. Using a CSS selector [src*="extensionId=posit.publisher"] that
   doesn't work because the src URL contains encoded characters

This fix:
- Properly chains the waitUntil result through the promise chain
- Uses JavaScript filtering (which handles encoded URLs correctly)
  instead of CSS attribute selectors
- Returns the outer iframe body from findPublisherIframeBody()
  and chains to find the inner active-frame

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant