From 4350dd2cf2e1076fdbdd1879bffbf7dd8a265845 Mon Sep 17 00:00:00 2001 From: Nancy Butler <42977925+mantis-toboggan-md@users.noreply.github.com> Date: Tue, 19 May 2026 13:29:38 -0700 Subject: [PATCH 1/4] tweak kontainer tests to reduce flake --- .../tests/pages/manager/kontainer-drivers.spec.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts b/cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts index c7e7fbf772b..5fb3f2fb799 100644 --- a/cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts +++ b/cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts @@ -5,7 +5,7 @@ import DeactivateDriverDialogPo from '@/cypress/e2e/po/prompts/deactivateDriverD import ClusterManagerListPagePo from '@/cypress/e2e/po/pages/cluster-manager/cluster-manager-list.po'; import ClusterManagerCreatePagePo from '@/cypress/e2e/po/edit/provisioning.cattle.io.cluster/create/cluster-create.po'; import PromptRemove from '@/cypress/e2e/po/prompts/promptRemove.po'; -import { MEDIUM_TIMEOUT_OPT } from '@/cypress/support/utils/timeouts'; +import { LONG_TIMEOUT_OPT, MEDIUM_TIMEOUT_OPT } from '@/cypress/support/utils/timeouts'; describe('Kontainer Drivers', { testIsolation: 'off', tags: ['@manager', '@adminUser'] }, () => { const driversPage = new KontainerDriversPagePo(); @@ -85,7 +85,7 @@ describe('Kontainer Drivers', { testIsolation: 'off', tags: ['@manager', '@admin }); driversPage.list().details(exampleDriver, 1).should('contain', 'Activating'); - driversPage.list().details(exampleDriver, 1).contains('Active', { timeout: 60000 }); + driversPage.list().details(exampleDriver, 1).should('contain', 'Active', { timeout: LONG_TIMEOUT_OPT }); // Verify the driver tile appears on the cluster create page. // Legacy ember-based kontainer drivers are shown disabled with an informational tooltip @@ -144,12 +144,9 @@ describe('Kontainer Drivers', { testIsolation: 'off', tags: ['@manager', '@admin driversPage.list().activate().click(); cy.wait('@activateOpenTelekomDriver').its('response.statusCode').should('eq', 200); cy.wait('@activateOracleDriver').its('response.statusCode').should('eq', 200); - // wait for drivers to be activating - driversPage.list().details(openTelekomDriver, 1).should('contain', 'Activating'); - driversPage.list().details(oracleDriver, 1).should('contain', 'Activating'); // wait for drivers to be active - driversPage.list().details(openTelekomDriver, 1).should('contain', 'Active'); - driversPage.list().details(oracleDriver, 1).should('contain', 'Active'); + driversPage.list().details(openTelekomDriver, 1).should('contain', 'Active', MEDIUM_TIMEOUT_OPT); + driversPage.list().details(oracleDriver, 1).should('contain', 'Active', MEDIUM_TIMEOUT_OPT); // check options on cluster create page ClusterManagerListPagePo.navTo(); @@ -231,6 +228,10 @@ describe('Kontainer Drivers', { testIsolation: 'off', tags: ['@manager', '@admin expect(isMatch(request.body, requestData)).to.equal(true); }); + // wait for driver to be activating then active + driversPage.list().details(exampleDriver, 1).should('contain', 'Activating'); + driversPage.list().details(exampleDriver, 1).should('contain', 'Active'); + // check options on cluster create page ClusterManagerListPagePo.navTo(); clusterList.waitForPage(); From b9d459488f1f541701cbab2173f252adcbae58ec Mon Sep 17 00:00:00 2001 From: Nancy Butler <42977925+mantis-toboggan-md@users.noreply.github.com> Date: Tue, 19 May 2026 14:59:31 -0700 Subject: [PATCH 2/4] update delete driver test to assert driver is actually gone --- .../pages/manager/kontainer-drivers.spec.ts | 51 ++++++++----------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts b/cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts index 5fb3f2fb799..49f49cff394 100644 --- a/cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts +++ b/cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts @@ -5,7 +5,7 @@ import DeactivateDriverDialogPo from '@/cypress/e2e/po/prompts/deactivateDriverD import ClusterManagerListPagePo from '@/cypress/e2e/po/pages/cluster-manager/cluster-manager-list.po'; import ClusterManagerCreatePagePo from '@/cypress/e2e/po/edit/provisioning.cattle.io.cluster/create/cluster-create.po'; import PromptRemove from '@/cypress/e2e/po/prompts/promptRemove.po'; -import { LONG_TIMEOUT_OPT, MEDIUM_TIMEOUT_OPT } from '@/cypress/support/utils/timeouts'; +import { LONG_TIMEOUT_OPT, MEDIUM_TIMEOUT_OPT, VERY_LONG_TIMEOUT_OPT } from '@/cypress/support/utils/timeouts'; describe('Kontainer Drivers', { testIsolation: 'off', tags: ['@manager', '@adminUser'] }, () => { const driversPage = new KontainerDriversPagePo(); @@ -85,7 +85,7 @@ describe('Kontainer Drivers', { testIsolation: 'off', tags: ['@manager', '@admin }); driversPage.list().details(exampleDriver, 1).should('contain', 'Activating'); - driversPage.list().details(exampleDriver, 1).should('contain', 'Active', { timeout: LONG_TIMEOUT_OPT }); + driversPage.list().details(exampleDriver, 1).should('contain', 'Active', LONG_TIMEOUT_OPT ); // Verify the driver tile appears on the cluster create page. // Legacy ember-based kontainer drivers are shown disabled with an informational tooltip @@ -145,8 +145,8 @@ describe('Kontainer Drivers', { testIsolation: 'off', tags: ['@manager', '@admin cy.wait('@activateOpenTelekomDriver').its('response.statusCode').should('eq', 200); cy.wait('@activateOracleDriver').its('response.statusCode').should('eq', 200); // wait for drivers to be active - driversPage.list().details(openTelekomDriver, 1).should('contain', 'Active', MEDIUM_TIMEOUT_OPT); - driversPage.list().details(oracleDriver, 1).should('contain', 'Active', MEDIUM_TIMEOUT_OPT); + driversPage.list().details(openTelekomDriver, 1).should('contain', 'Active', VERY_LONG_TIMEOUT_OPT); + driversPage.list().details(oracleDriver, 1).should('contain', 'Active', VERY_LONG_TIMEOUT_OPT); // check options on cluster create page ClusterManagerListPagePo.navTo(); @@ -202,6 +202,8 @@ describe('Kontainer Drivers', { testIsolation: 'off', tags: ['@manager', '@admin expect(isMatch(request.body, requestData)).to.equal(true); }); + driversPage.list().details(exampleDriver, 1).should('contain', 'Inactive'); + // check options on cluster create page ClusterManagerListPagePo.navTo(); clusterList.waitForPage(); @@ -330,31 +332,22 @@ describe('Kontainer Drivers', { testIsolation: 'off', tags: ['@manager', '@admin body: { } }).as('deleteDriver'); - // Scroll element into view and select with force - driversPage.list().resourceTable().sortableTable().rowElementWithName(exampleDriver) - .scrollIntoView(); - driversPage.list().resourceTable().sortableTable().rowSelectCtlWithName(exampleDriver) - .set(); - driversPage.list().resourceTable().sortableTable().bulkActionDropDownOpen(); - driversPage.list().resourceTable().sortableTable().bulkActionDropDownButton('Delete') - .click({ force: true }); - - driversPage.list().resourceTable().sortableTable().rowNames() - .then((rows: any) => { - const promptRemove = new PromptRemove(); - - promptRemove.remove(); - - cy.wait('@deleteDriver').then(({ response }) => { - expect(response?.statusCode).to.eq(200); - if (response?.statusCode === 200) { - removeDriver = false; - } - driversPage.waitForPage(); - driversPage.list().resourceTable().sortableTable().rowNames() - .should('not.contain', exampleDriver); - }); - }); + driversPage.list().actionMenu(exampleDriver).getMenuItem('Delete').click(); + + const promptRemove = new PromptRemove(); + + promptRemove.remove(); + + cy.wait('@deleteDriver').then(({ response }) => { + expect(response?.statusCode).to.eq(200); + }); + + driversPage.waitForPage(); + driversPage.list().resourceTable().sortableTable().rowElementWithName(exampleDriver, MEDIUM_TIMEOUT_OPT) + .should('not.exist'); + + // only mark removeDriver false once tests assert the driver is actually gone + removeDriver = false; }); after(() => { From 6a4bf541bbb54c0300cfe542ad243856438d4b38 Mon Sep 17 00:00:00 2001 From: Nancy Butler <42977925+mantis-toboggan-md@users.noreply.github.com> Date: Tue, 19 May 2026 16:02:20 -0700 Subject: [PATCH 3/4] fix activate driver test --- .../tests/pages/manager/kontainer-drivers.spec.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts b/cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts index 49f49cff394..ca8e54040e1 100644 --- a/cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts +++ b/cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts @@ -221,6 +221,21 @@ describe('Kontainer Drivers', { testIsolation: 'off', tags: ['@manager', '@admin driversPage.list().resourceTable().sortableTable().checkVisible(); driversPage.list().resourceTable().sortableTable().checkLoadingIndicatorNotVisible(); + // Ensure driver is inactive before attempting to activate + driversPage.list().details(exampleDriver, 1).then(($el) => { + if ($el.text().includes('Active')) { + cy.intercept('POST', `/v3/kontainerDrivers/*?action=deactivate`).as('deactivateForSetup'); + driversPage.list().actionMenu(downloadUrl).getMenuItem('Deactivate').click(); + const deactivateDialog = new DeactivateDriverDialogPo(); + + deactivateDialog.deactivate(); + cy.wait('@deactivateForSetup'); + driversPage.list().details(exampleDriver, 1).should('contain', 'Inactive'); + } + }); + + driversPage.list().details(exampleDriver, 1).should('contain', 'Inactive'); + cy.intercept('POST', `/v3/kontainerDrivers/*?action=activate`).as('activateDriver'); driversPage.list().actionMenu(downloadUrl).getMenuItem('Activate').click(); From 51f356097f37d4f928d395f0958cb0a551a820ef Mon Sep 17 00:00:00 2001 From: Nancy Butler <42977925+mantis-toboggan-md@users.noreply.github.com> Date: Wed, 20 May 2026 09:34:26 -0700 Subject: [PATCH 4/4] remove check for activating in activate driver test --- cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts b/cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts index ca8e54040e1..0d30acb78ea 100644 --- a/cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts +++ b/cypress/e2e/tests/pages/manager/kontainer-drivers.spec.ts @@ -245,8 +245,7 @@ describe('Kontainer Drivers', { testIsolation: 'off', tags: ['@manager', '@admin expect(isMatch(request.body, requestData)).to.equal(true); }); - // wait for driver to be activating then active - driversPage.list().details(exampleDriver, 1).should('contain', 'Activating'); + // wait for driver to be active driversPage.list().details(exampleDriver, 1).should('contain', 'Active'); // check options on cluster create page