From 17d6a993fc17d533460c5f40f3908c708e057c18 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 23 May 2024 18:45:17 +0200 Subject: Merging upstream version 18.2.3. Signed-off-by: Daniel Baumann --- .../frontend/cypress/e2e/rgw/buckets.e2e-spec.ts | 6 ++--- .../frontend/cypress/e2e/rgw/buckets.po.ts | 24 ++++---------------- .../frontend/cypress/e2e/rgw/roles.e2e-spec.ts | 14 ++++++++++-- .../dashboard/frontend/cypress/e2e/rgw/roles.po.ts | 26 ++++++++++++++++++---- 4 files changed, 41 insertions(+), 29 deletions(-) (limited to 'src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw') diff --git a/src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/buckets.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/buckets.e2e-spec.ts index 99c0732fc..8b05c309f 100644 --- a/src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/buckets.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/buckets.e2e-spec.ts @@ -18,7 +18,7 @@ describe('RGW buckets page', () => { describe('create, edit & delete bucket tests', () => { it('should create bucket', () => { buckets.navigateTo('create'); - buckets.create(bucket_name, BucketsPageHelper.USERS[0], 'default-placement'); + buckets.create(bucket_name, BucketsPageHelper.USERS[0]); buckets.getFirstTableCell(bucket_name).should('exist'); }); @@ -38,7 +38,7 @@ describe('RGW buckets page', () => { it('should create bucket with object locking enabled', () => { buckets.navigateTo('create'); - buckets.create(bucket_name, BucketsPageHelper.USERS[0], 'default-placement', true); + buckets.create(bucket_name, BucketsPageHelper.USERS[0], true); buckets.getFirstTableCell(bucket_name).should('exist'); }); @@ -57,7 +57,7 @@ describe('RGW buckets page', () => { it('should test invalid input in edit owner field', () => { buckets.navigateTo('create'); - buckets.create(bucket_name, BucketsPageHelper.USERS[0], 'default-placement'); + buckets.create(bucket_name, BucketsPageHelper.USERS[0]); buckets.testInvalidEdit(bucket_name); buckets.navigateTo(); buckets.delete(bucket_name); diff --git a/src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/buckets.po.ts b/src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/buckets.po.ts index 47b0639bc..91f852024 100644 --- a/src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/buckets.po.ts +++ b/src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/buckets.po.ts @@ -22,16 +22,12 @@ export class BucketsPageHelper extends PageHelper { return this.selectOption('owner', owner); } - private selectPlacementTarget(placementTarget: string) { - return this.selectOption('placement-target', placementTarget); - } - private selectLockMode(lockMode: string) { return this.selectOption('lock_mode', lockMode); } @PageHelper.restrictTo(pages.create.url) - create(name: string, owner: string, placementTarget: string, isLocking = false) { + create(name: string, owner: string, isLocking = false) { // Enter in bucket name cy.get('#bid').type(name); @@ -39,10 +35,6 @@ export class BucketsPageHelper extends PageHelper { this.selectOwner(owner); cy.get('#owner').should('have.class', 'ng-valid'); - // Select bucket placement target: - this.selectPlacementTarget(placementTarget); - cy.get('#placement-target').should('have.class', 'ng-valid'); - if (isLocking) { cy.get('#lock_enabled').click({ force: true }); // Select lock mode: @@ -59,7 +51,6 @@ export class BucketsPageHelper extends PageHelper { @PageHelper.restrictTo(pages.create.url) checkForDefaultEncryption() { - cy.get("cd-helper[aria-label='toggle encryption helper']").click(); cy.get("a[aria-label='click here']").click(); cy.get('cd-modal').within(() => { cy.get('input[id=s3Enabled]').should('be.checked'); @@ -70,7 +61,9 @@ export class BucketsPageHelper extends PageHelper { edit(name: string, new_owner: string, isLocking = false) { this.navigateEdit(name); - cy.get('input[name=placement-target]').should('have.value', 'default-placement'); + // Placement target is not allowed to be edited and should be hidden + cy.get('input[name=placement-target]').should('not.exist'); + this.selectOwner(new_owner); // If object locking is enabled versioning shouldn't be visible @@ -171,15 +164,6 @@ export class BucketsPageHelper extends PageHelper { // Check that error message was printed under owner drop down field cy.get('#owner + .invalid-feedback').should('have.text', 'This field is required.'); - // Check invalid placement target input - this.selectOwner(BucketsPageHelper.USERS[1]); - // The drop down error message will not appear unless a valid option is previsously selected. - this.selectPlacementTarget('default-placement'); - this.selectPlacementTarget('-- Select a placement target --'); - cy.get('@nameInputField').click(); // Trigger validation - cy.get('#placement-target').should('have.class', 'ng-invalid'); - cy.get('#placement-target + .invalid-feedback').should('have.text', 'This field is required.'); - // Clicks the Create Bucket button but the page doesn't move. // Done by testing for the breadcrumb cy.contains('button', 'Create Bucket').click(); // Clicks Create Bucket button diff --git a/src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/roles.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/roles.e2e-spec.ts index 597f7d1be..80a8b0ec9 100644 --- a/src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/roles.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/roles.e2e-spec.ts @@ -9,11 +9,21 @@ describe('RGW roles page', () => { }); describe('Create, Edit & Delete rgw roles', () => { + const roleName = 'testRole'; + it('should create rgw roles', () => { roles.navigateTo('create'); - roles.create('testRole', '/', '{}'); + roles.create(roleName, '/', '{}'); roles.navigateTo(); - roles.checkExist('testRole', true); + roles.checkExist(roleName, true); + }); + + it('should edit rgw role', () => { + roles.edit(roleName, 3); + }); + + it('should delete rgw role', () => { + roles.delete(roleName); }); }); }); diff --git a/src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/roles.po.ts b/src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/roles.po.ts index b72ca5df9..717655b2f 100644 --- a/src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/roles.po.ts +++ b/src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/roles.po.ts @@ -11,18 +11,36 @@ export class RolesPageHelper extends PageHelper { columnIndex = { roleName: 2, path: 3, - arn: 4 + arn: 4, + createDate: 5, + maxSessionDuration: 6 }; @PageHelper.restrictTo(pages.create.url) create(name: string, path: string, policyDocument: string) { - cy.get('#formly_3_string_role_name_0').type(name); - cy.get('#formly_3_textarea_role_assume_policy_doc_2').type(policyDocument); - cy.get('#formly_3_string_role_path_1').type(path); + cy.get('[id$="string_role_name_0"]').type(name); + cy.get('[id$="role_assume_policy_doc_2"]').type(policyDocument); + cy.get('[id$="role_path_1"]').type(path); cy.get("[aria-label='Create Role']").should('exist').click(); cy.get('cd-crud-table').should('exist'); } + edit(name: string, maxSessionDuration: number) { + this.navigateEdit(name); + cy.get('[id$="max_session_duration_1"]').clear().type(maxSessionDuration.toString()); + cy.get("[aria-label='Edit Role']").should('exist').click(); + cy.get('cd-crud-table').should('exist'); + + this.getTableCell(this.columnIndex.roleName, name) + .click() + .parent() + .find(`datatable-body-cell:nth-child(${this.columnIndex.maxSessionDuration})`) + .should(($elements) => { + const roleName = $elements.map((_, el) => el.textContent).get(); + expect(roleName).to.include(`${maxSessionDuration} hours`); + }); + } + @PageHelper.restrictTo(pages.index.url) checkExist(name: string, exist: boolean) { this.getTableCell(this.columnIndex.roleName, name).should(($elements) => { -- cgit v1.2.3