From 9dd90e65e8a3ff7d3cd2721d23040267ead1d778 Mon Sep 17 00:00:00 2001 From: Steve Goodwin Date: Tue, 14 Apr 2026 16:05:52 -0400 Subject: [PATCH] OCPBUGS-82512: Fix knative e2e test failures caused by createRoot timing The createRoot migration defers React state batching, causing the namespace bar dropdown and topology node labels to take longer to appear in the DOM. Add explicit timeouts to clickProjectDropdown() and getNode() so Cypress retries until the elements are present, and re-enable the knative-ci.feature test suite. Assisted by Claude --- .../dev-console/integration-tests/support/pages/app.ts | 6 +++++- .../integration-tests/features/e2e/knative-ci.feature | 3 +-- .../support/pages/topology/topology-page.ts | 5 ++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/frontend/packages/dev-console/integration-tests/support/pages/app.ts b/frontend/packages/dev-console/integration-tests/support/pages/app.ts index e1aa0bf9045..61ae7eb1795 100644 --- a/frontend/packages/dev-console/integration-tests/support/pages/app.ts +++ b/frontend/packages/dev-console/integration-tests/support/pages/app.ts @@ -250,7 +250,11 @@ export const navigateTo = (opt: devNavigationMenu) => { export const projectNameSpace = { clickProjectDropdown: () => { - cy.byLegacyTestID('namespace-bar-dropdown').find('button').first().click(); + cy.byLegacyTestID('namespace-bar-dropdown', { timeout: 30000 }) + .should('exist') + .find('button') + .first() + .click(); }, selectCreateProjectOption: () => { cy.document().then((doc) => { diff --git a/frontend/packages/knative-plugin/integration-tests/features/e2e/knative-ci.feature b/frontend/packages/knative-plugin/integration-tests/features/e2e/knative-ci.feature index b8410c9bdaf..c5e4f2dac75 100644 --- a/frontend/packages/knative-plugin/integration-tests/features/e2e/knative-ci.feature +++ b/frontend/packages/knative-plugin/integration-tests/features/e2e/knative-ci.feature @@ -1,5 +1,4 @@ -# Disabled due to createRoot concurrent rendering failures (OCPBUGS-82512) -@knative @smoke @to-do +@knative @smoke Feature: Perform actions on knative service and revision As a user, I want to perform edit or delete operations on knative revision in topology page diff --git a/frontend/packages/topology/integration-tests/support/pages/topology/topology-page.ts b/frontend/packages/topology/integration-tests/support/pages/topology/topology-page.ts index 3d5991de4a1..b92ec917d60 100644 --- a/frontend/packages/topology/integration-tests/support/pages/topology/topology-page.ts +++ b/frontend/packages/topology/integration-tests/support/pages/topology/topology-page.ts @@ -289,7 +289,10 @@ export const topologyPage = { cy.get(`[data-test-action="${action}"] button`).click(); }, getNode: (nodeName: string) => { - return cy.get(topologyPO.graph.nodeLabel).should('be.visible').contains(nodeName); + return cy + .get(topologyPO.graph.nodeLabel, { timeout: 30000 }) + .should('be.visible') + .contains(nodeName); }, getNodeLabel: (nodeName: string) => { return cy.get(topologyPO.graph.selectNodeLabel).should('be.visible').contains(nodeName);