Skip to content

Commit 5221f84

Browse files
authored
Fix test 155 prevent it for failing (#288)
* Fix test 155 prevent it for failing Signed-off-by: Satyajit Bulage <[email protected]> * Added 2.9 validation to if block as suggested * Updated code based on suggestion --------- Signed-off-by: Satyajit Bulage <[email protected]>
1 parent fa4066b commit 5221f84

File tree

3 files changed

+69
-24
lines changed

3 files changed

+69
-24
lines changed

tests/cypress/e2e/unit_tests/p1_fleet.spec.ts

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1258,23 +1258,34 @@ if (!/\/2\.7/.test(Cypress.env('rancher_version')) && !/\/2\.8/.test(Cypress.env
12581258
describe('Test Fleet Resource Count', { tags: '@p1'}, () => {
12591259
qase(155,
12601260
it("Fleet-155: Test clusters resource count is correct", { tags: '@fleet-155' }, () => {
1261+
12611262
const repoName = 'default-cluster-count-155'
12621263
const branch = "master"
12631264
const path = "simple"
12641265
const repoUrl = "https://github.com/rancher/fleet-examples"
1266+
let resourceCount = '18 / 18'
1267+
let multipliedResourceCount = true
1268+
1269+
if (/\/2\.10/.test(Cypress.env('rancher_version')) || /\/2\.9/.test(Cypress.env('rancher_version'))) {
1270+
resourceCount = '6 / 6'
1271+
multipliedResourceCount = false
1272+
}
1273+
1274+
// Get Default Resources from single cluster before GitRepo.
1275+
cy.currentClusterResourceCount(dsFirstClusterName);
12651276

12661277
cy.addFleetGitRepo({ repoName, repoUrl, branch, path });
12671278
cy.clickButton('Create');
1268-
cy.checkGitRepoStatus(repoName, '1 / 1', '6 / 6');
1279+
cy.checkGitRepoStatus(repoName, '1 / 1', resourceCount);
12691280

12701281
// Get the Resource count from GitRepo and store it.
12711282
cy.gitRepoResourceCountAsInteger(repoName, 'fleet-default');
12721283

1273-
// Compare Resource count from GitRepo(stored)
1274-
// with resource count from each downstream cluster.
1275-
dsAllClusterList.forEach((dsCluster) => {
1276-
cy.compareClusterResourceCount(dsCluster);
1277-
})
1284+
// Get Actual Resources from single cluster by subtracting default resources.
1285+
cy.actualResourceOnCluster(dsFirstClusterName);
1286+
1287+
// Compare Resource count from GitRepo with Cluster resource.
1288+
cy.compareClusterResourceCount(multipliedResourceCount);
12781289

12791290
cy.deleteAllFleetRepos();
12801291
})

tests/cypress/support/commands.ts

Lines changed: 49 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -783,42 +783,74 @@ Cypress.Commands.add('checkGitRepoAfterUpgrade', (repoName, fleetNamespace='flee
783783
cy.verifyTableRow(0, /Active|Modified/, repoName);
784784
});
785785

786+
Cypress.Commands.add('currentClusterResourceCount', (clusterName) => {
787+
cy.accesMenuSelection('Continuous Delivery', 'Clusters');
788+
cy.contains('.title', 'Clusters').should('be.visible');
789+
cy.filterInSearchBox(clusterName);
790+
cy.verifyTableRow(0, 'Active', clusterName);
791+
cy.get('td.col-link-detail > span').contains(clusterName).click();
792+
cy.get("div[primary-color-var='--sizzle-success'] div[class='data compact'] > h1")
793+
.invoke('text')
794+
.then((clusterResourceCountText) => {
795+
// Convert to integer
796+
const clusterCurrentResourceCount = parseInt(clusterResourceCountText.trim(), 10);
797+
cy.log("Resource count on each cluster is: " + clusterCurrentResourceCount);
798+
cy.wrap(clusterCurrentResourceCount).as('clusterCurrentResourceCount');
799+
})
800+
})
801+
786802
Cypress.Commands.add('gitRepoResourceCountAsInteger', (repoName, fleetNamespace='fleet-local') => {
787803
cy.accesMenuSelection('Continuous Delivery', 'Git Repos');
788804
cy.fleetNamespaceToggle(fleetNamespace);
789805
cy.verifyTableRow(0, 'Active', repoName);
790806
cy.contains(repoName).click()
791807
cy.get('.primaryheader > h1').contains(repoName).should('be.visible')
792808

793-
// Get the Resource count text from UI and convert it into integer.
794809
cy.get("div[data-testid='gitrepo-deployment-summary'] div[class='count']")
795810
.invoke('text')
796-
.then((countText) => {
797-
// Add '7' default resource count available on each cluster.
798-
const gitRepoResourceCount = parseInt(countText.trim(), 10) + 7;
799-
cy.log("GitRepo Resource count is: " + gitRepoResourceCount);
800-
cy.wrap(gitRepoResourceCount).as('gitRepoResourceCount');
811+
.then((gitRepoResourceCountText) => {
812+
const gitRepoTotalResourceCount = parseInt(gitRepoResourceCountText.trim(), 10);
813+
cy.log("GitRepo Resource count is: " + gitRepoTotalResourceCount);
814+
cy.wrap(gitRepoTotalResourceCount).as('gitRepoTotalResourceCount');
801815
})
802816
})
803817

804-
Cypress.Commands.add('compareClusterResourceCount', (clusterName) => {
805-
// Check the resource count from each cluster matches with resources created by GitRepo.
818+
Cypress.Commands.add('actualResourceOnCluster', (clusterName) => {
819+
// Get Cluster Resources before GitRepo created.
806820
cy.accesMenuSelection('Continuous Delivery', 'Clusters');
807821
cy.contains('.title', 'Clusters').should('be.visible');
808822
cy.filterInSearchBox(clusterName);
809823
cy.verifyTableRow(0, 'Active', clusterName);
810824
cy.get('td.col-link-detail > span').contains(clusterName).click();
825+
// Get resources from the cluster page after GitRepo install.
826+
cy.get("div[primary-color-var='--sizzle-success'] div[class='data compact'] > h1")
827+
.invoke('text')
828+
.then((clusterResourceCountText) => {
829+
const resourceCountOnCluster = parseInt(clusterResourceCountText.trim(), 10);
830+
cy.log("Resource count on each cluster is: " + resourceCountOnCluster);
831+
cy.get('@clusterCurrentResourceCount').then((clusterCurrentResourceCount) => {
832+
// Remove default 6/7 resources from Total resources available
833+
// on single cluster after GitRepo install it's resources.
834+
const actualResourceOnCluster = resourceCountOnCluster - clusterCurrentResourceCount;
835+
cy.wrap(actualResourceOnCluster).as('actualResourceOnCluster');
836+
})
837+
})
838+
})
811839

840+
Cypress.Commands.add('compareClusterResourceCount', (multipliedResourceCount=true) => {
812841
// Get the stored 'gitRepoResourceCount' value and
813-
// compare with existing resource count from cluster.
814-
cy.get('@gitRepoResourceCount').then((gitRepoResourceCount) => {
815-
cy.get("div[primary-color-var='--sizzle-success'] div[class='data compact'] > h1")
816-
.invoke('text')
817-
.then((clusterResourceCountText) => {
818-
// Covert it into integer and then compare with resources created via GitRepo.
819-
const resourceCountOnCluster = parseInt(clusterResourceCountText.trim(), 10);
820-
cy.log("Resource count on each cluster is: " + resourceCountOnCluster);
821-
expect(gitRepoResourceCount).to.equal(resourceCountOnCluster);
842+
// Multipy 'actualResourceOnCluster' 3 times because 3 clusters.
843+
// Compare final result with the 'gitRepoTotalResourceCount'.
844+
cy.get('@actualResourceOnCluster').then((actualResourceOnCluster) => {
845+
cy.get('@gitRepoTotalResourceCount').then((gitRepoTotalResourceCount) => {
846+
// When 'sameResourceEachCluster' is true then each cluster has
847+
// 'actualResourceOnCluster' is equal to 'gitRepoResourceCount'
848+
if (multipliedResourceCount) {
849+
expect(gitRepoTotalResourceCount).to.equal(actualResourceOnCluster * 3);
850+
}
851+
else {
852+
expect(gitRepoTotalResourceCount).to.equal(actualResourceOnCluster);
853+
}
822854
})
823855
})
824856
})

tests/cypress/support/e2e.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,11 @@ declare global {
5454
typeIntoCanvasTermnal(textToType: string): Chainable<Element>;
5555
checkGitRepoAfterUpgrade(repoName: string, fleetNamespace?: string): Chainable<Element>;
5656
gitRepoResourceCountAsInteger(repoName: string, fleetNamespace?: string): Chainable<Element>;
57-
compareClusterResourceCount(clusterName: string): Chainable<Element>;
57+
compareClusterResourceCount(multipliedResourceCount: boolean): Chainable<Element>;
5858
createNewUser(username: string, password: string, role: string, uncheckStandardUser?: boolean): Chainable<Element>;
5959
addFleetGitRepoNew(repoName: string, repoUrl?: string, branch?: string, path?: string, path2?: string, fleetNamespace?: string, editConfig?: boolean, helmUrlRegex?: string, deployToTarget?: string, tlsOption?: string, tlsCertificate?: string, allowedTargetNamespace?: string): Chainable<Element>;
60+
currentClusterResourceCount(clusterName: string): Chainable<Element>;
61+
actualResourceOnCluster(clusterName: string): Chainable<Element>;
6062
}
6163
}
6264
}

0 commit comments

Comments
 (0)