Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { checkErrors, testName } from '@console/cypress-integration-tests/support';

// Disabled due to createRoot concurrent rendering failures (OCPBUGS-82506)
xdescribe('Interacting with Operators', () => {
describe('Interacting with Operators', () => {
before(() => {
cy.login();
cy.createProjectWithCLI(testName);
Expand Down Expand Up @@ -40,11 +39,16 @@ xdescribe('Interacting with Operators', () => {
cy.log('more than one tile should be present');
cy.get('.co-catalog-tile').its('length').should('be.gt', 0);
cy.log('the first tile title text for Certified should not be the same as Community');
// Wait for catalog to re-render with new filter - under React 18 concurrent rendering,
// tile updates are batched and happen asynchronously. Use .should() callback to retry
// until the tile content actually changes.
cy.get('.co-catalog-tile')
.first()
.find('.catalog-tile-pf-title')
.invoke('text')
.should('not.equal', origCatalogTitleTxt);
.should(($title) => {
const newTitleTxt = $title.text();
expect(newTitleTxt).not.to.equal(origCatalogTitleTxt);
});
});

cy.log('filters Operators by name');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ const cleanupOperatorResources = () => {
);
};

// Disabled due to createRoot concurrent rendering failures (OCPBUGS-82507)
xdescribe(`Globally installing "${testOperator.name}" operator in ${GlobalInstalledNamespace}`, () => {
describe(`Globally installing "${testOperator.name}" operator in ${GlobalInstalledNamespace}`, () => {
before(() => {
cy.login();
cleanupOperatorResources();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,9 @@ export const operator = {
*/
if (installToNamespace !== GlobalInstalledNamespace) {
cy.log('configure Operator install for single namespace');
// Wait for radio button to be visible before checking to avoid race conditions
cy.byTestID('A specific namespace on the cluster-radio-input', { timeout: 30000 })
// Under React 18 concurrent rendering, install mode radios mount after async data loads.
// Increase timeout to handle deferred rendering.
cy.byTestID('A specific namespace on the cluster-radio-input', { timeout: 60000 })
.should('be.visible')
.check();
if (useOperatorRecommendedNamespace) {
Expand All @@ -60,7 +61,9 @@ export const operator = {
});
}
} else {
cy.byTestID('All namespaces on the cluster-radio-input', { timeout: 30000 }).should(
// Under React 18 concurrent rendering, install mode radios mount after async data loads.
// Increase timeout to handle deferred rendering.
cy.byTestID('All namespaces on the cluster-radio-input', { timeout: 60000 }).should(
'be.checked',
);
}
Expand Down