From: Adam King Date: Tue, 20 Aug 2019 19:03:41 +0000 (-0400) Subject: mgr/dashboard: Edit Pool Placement Group E2E Test X-Git-Tag: v15.1.0~1770^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=380b626704d7fd08fa17a15f085853a872fd1dd0;p=ceph.git mgr/dashboard: Edit Pool Placement Group E2E Test Test that the user can edit a pool's placement group Fixes: https://tracker.ceph.com/issues/41357 Signed-off-by: Adam King Signed-off-by: Rafael Quintero --- diff --git a/src/pybind/mgr/dashboard/frontend/e2e/page-helper.po.ts b/src/pybind/mgr/dashboard/frontend/e2e/page-helper.po.ts index 1e96b55f4ece..ede59c18b68d 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/page-helper.po.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/page-helper.po.ts @@ -59,6 +59,10 @@ export abstract class PageHelper { return element(by.cssContainingText('.datatable-body-cell-label', content)); } + getTableRow(content) { + return element(by.cssContainingText('.datatable-body-row', content)); + } + getTable() { return element.all(by.css('.datatable-body')); } diff --git a/src/pybind/mgr/dashboard/frontend/e2e/pools/pools.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/e2e/pools/pools.e2e-spec.ts index 26166fa2775e..b56ca7ee5cf2 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/pools/pools.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/pools/pools.e2e-spec.ts @@ -41,6 +41,13 @@ describe('Pools page', () => { }); }); + it('should edit a pools placement group', () => { + pools.exist(poolName, true).then(() => { + pools.navigateTo(); + pools.edit_pool_pg(poolName, 32); + }); + }); + it('should delete a pool', () => { pools.exist(poolName); pools.delete(poolName).then(() => { diff --git a/src/pybind/mgr/dashboard/frontend/e2e/pools/pools.po.ts b/src/pybind/mgr/dashboard/frontend/e2e/pools/pools.po.ts index 968bcde019f6..55f1a43b10d0 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/pools/pools.po.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/pools/pools.po.ts @@ -52,6 +52,36 @@ export class PoolPageHelper extends PageHelper { }); } + edit_pool_pg(name: string, new_pg: number): promise.Promise { + if (!this.isPowerOf2(new_pg)) { + return Promise.reject(`Placement groups ${new_pg} are not a power of 2`); + } + return this.getTableCellByContent(name).then((elem) => { + elem.click(); // select pool from the table + element(by.cssContainingText('button', 'Edit')).click(); // click edit button + expect(this.getBreadcrumbText()).toEqual('Edit'); // verify we are now on edit page + $('input[name=pgNum]') + .sendKeys(protractor.Key.CONTROL, 'a', protractor.Key.NULL, new_pg) + .then(() => { + element(by.css('cd-submit-button')).click(); + const str = `${new_pg} active+clean`; + browser + .wait( + EC.visibilityOf(this.getTableRow(name)), + Helper.TIMEOUT, + 'Timed out waiting for table row to load' + ) + .then(() => { + return browser.wait( + EC.textToBePresentInElement(this.getTableRow(name), str), + Helper.TIMEOUT, + 'Timed out waiting for placement group to be updated' + ); + }); + }); + }); + } + private setApplications(apps: string[]) { if (!apps || apps.length === 0) { return;