OCPBUGS-82508, OCPBUGS-82509: Fix and re-enable operator e2e tests disabled for createRoot#16517
Conversation
…t rendering
React 18 concurrent rendering causes multiple timing issues in operator
install test:
1. Radio button group mounts async, causing selectors to timeout
2. Install CTA link href loads async via useCtaLink hook
3. Cypress chain breaks when .should('have.attr') yields string value
Fixed by:
- Add explicit 30s timeout to namespace scope radio button selectors
('A specific namespace on the cluster-radio-input', 'All namespaces...')
- Split Install CTA click into separate commands to avoid chain break:
verify visible, verify href non-empty, then click fresh element
- Re-enable test (xdescribe → describe)
Matches pattern from other createRoot e2e fixes (OCPBUGS-82512 knative,
OCPBUGS-82504 cluster-settings) which add timeouts to async-mounted elements.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
Skipping CI for Draft Pull Request. |
|
@TheRealJon: This pull request references Jira Issue OCPBUGS-82508, which is valid. The bug has been moved to the POST state. 3 validation(s) were run on this bug
The bug has been updated to refer to the pull request using the external bug tracker. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
@TheRealJon: This pull request references Jira Issue OCPBUGS-82508, which is valid. 3 validation(s) were run on this bug
DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
WalkthroughRe-enable previously skipped OLM install/uninstall Cypress suites and make the operator.install view more deterministic by asserting CTA visibility/href and adding 30s timeouts plus separated checks for namespace radio inputs. ChangesOperator Lifecycle Manager integration tests
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 15✅ Passed checks (15 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Test was disabled during createRoot migration due to namespace scope radio button timeout in before hook. Fix already applied to shared operator.view.ts helper in OCPBUGS-82508 (30s timeout on radio selectors). Re-enable test by changing xdescribe → describe and removing disable comment. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
@TheRealJon: This pull request references Jira Issue OCPBUGS-82508, which is valid. 3 validation(s) were run on this bug
The bug has been updated to refer to the pull request using the external bug tracker. This pull request references Jira Issue OCPBUGS-82509, which is valid. The bug has been moved to the POST state. 3 validation(s) were run on this bug
The bug has been updated to refer to the pull request using the external bug tracker. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
Actionable comments posted: 0 |
|
@TheRealJon: This pull request references Jira Issue OCPBUGS-82508, which is valid. 3 validation(s) were run on this bug
This pull request references Jira Issue OCPBUGS-82509, which is valid. 3 validation(s) were run on this bug
DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
Actionable comments posted: 0 |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: logonoff, TheRealJon The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/verified by ci |
|
@logonoff: once the present PR merges, I will cherry-pick it on top of DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
@logonoff: This PR has been marked as verified by DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
@TheRealJon: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
|
@TheRealJon: Jira Issue Verification Checks: Jira Issue OCPBUGS-82508 Jira Issue OCPBUGS-82508 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓 Jira Issue Verification Checks: Jira Issue OCPBUGS-82509 Jira Issue OCPBUGS-82509 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓 DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
@logonoff: new pull request created: #16518 DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Analysis / Root cause:
The
operator-install-single-namespace.cy.tse2e test was disabled during the React 18createRootmigration (CONSOLE-4512) due to concurrent rendering timing issues:A specific namespace on the cluster-radio-input) mounts asynchronously and was not found within the default 40-second Cypress timeouthrefattribute is set asynchronously via theuseCtaLinkhook, and clicking before the href is ready causes navigation to fail.should('have.attr', 'href')yields the attribute string value instead of the DOM element, causing.click()to fail with "requires a DOM element" errorSolution description:
Three fixes applied to re-enable the test:
Add explicit 30s timeout to radio selectors (operator.view.ts:48, 63):
cy.byTestID('A specific namespace on the cluster-radio-input', { timeout: 30000 })cy.byTestID('All namespaces on the cluster-radio-input', { timeout: 30000 })Split Install CTA interaction into separate commands (operator.view.ts:28-30):
Re-enable test (operator-install-single-namespace.cy.ts:43):
xdescribe→describeMatches pattern from other createRoot e2e fixes: OCPBUGS-82512 (knative), OCPBUGS-82504 (cluster-settings).
Screenshots / screen recording:
N/A - e2e test fix, no UI changes
Test setup:
Requires OpenShift cluster with OperatorHub configured and Data Grid operator available in catalog.
Test cases:
yarn test-cypress-olm-headlesswith spec filter foroperator-install-single-namespace.cy.tsBrowser conformance:
Additional info:
Reviewers and assigners:
Summary by CodeRabbit