From 4e2edd59ce9dd5af9e329305ba8fd6c7c54dc048 Mon Sep 17 00:00:00 2001 From: Volker Theile Date: Mon, 9 Sep 2019 16:43:13 +0200 Subject: [PATCH] mgr/dashboard: Wait for breadcrumb text is present in e2e tests When the cluster is busy it might take some time until the tested component has loaded it's data and is rendered in the browser. Waiting for the breadcrumb text to be present might help to fix errors in the e2e tests. Signed-off-by: Volker Theile (cherry picked from commit e28d7287bd109b5c1682dc832c4a77ea47505165) Conflicts: src/pybind/mgr/dashboard/frontend/e2e/block/images.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/block/iscsi.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/block/mirroring.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/cluster/alerts.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/cluster/configuration.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/cluster/configuration.po.ts src/pybind/mgr/dashboard/frontend/e2e/cluster/crush-map.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/cluster/hosts.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/cluster/hosts.po.ts src/pybind/mgr/dashboard/frontend/e2e/cluster/logs.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/cluster/mgr-modules.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/cluster/monitors.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/cluster/osds.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/dashboard.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/filesystems/filesystems.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/nfs/nfs.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/page-helper.po.ts src/pybind/mgr/dashboard/frontend/e2e/pools/pools.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/pools/pools.po.ts src/pybind/mgr/dashboard/frontend/e2e/rgw/buckets.po.ts src/pybind/mgr/dashboard/frontend/e2e/rgw/daemons.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/rgw/users.e2e-spec.ts src/pybind/mgr/dashboard/frontend/e2e/rgw/users.po.ts src/pybind/mgr/dashboard/frontend/e2e/user-mgmt.e2e-spec.ts Conflicts are caused by E2E refactoring in master branch. --- .../dashboard/frontend/e2e/block/images.e2e-spec.ts | 2 +- .../mgr/dashboard/frontend/e2e/block/iscsi.e2e-spec.ts | 2 +- .../dashboard/frontend/e2e/block/mirroring.e2e-spec.ts | 2 +- .../dashboard/frontend/e2e/cluster/alerts.e2e-spec.ts | 2 +- .../frontend/e2e/cluster/configuration.e2e-spec.ts | 2 +- .../frontend/e2e/cluster/crush-map.e2e-spec.ts | 2 +- .../dashboard/frontend/e2e/cluster/hosts.e2e-spec.ts | 2 +- .../dashboard/frontend/e2e/cluster/logs.e2e-spec.ts | 2 +- .../frontend/e2e/cluster/mgr-modules.e2e-spec.ts | 2 +- .../frontend/e2e/cluster/monitors.e2e-spec.ts | 2 +- .../dashboard/frontend/e2e/cluster/osds.e2e-spec.ts | 2 +- .../frontend/e2e/filesystems/filesystems.e2e-spec.ts | 2 +- src/pybind/mgr/dashboard/frontend/e2e/helper.po.ts | 10 +++++++--- .../mgr/dashboard/frontend/e2e/nfs/nfs.e2e-spec.ts | 2 +- .../mgr/dashboard/frontend/e2e/pools/pools.e2e-spec.ts | 2 +- 15 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/pybind/mgr/dashboard/frontend/e2e/block/images.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/e2e/block/images.e2e-spec.ts index f962258f502d..10d71fccb709 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/block/images.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/block/images.e2e-spec.ts @@ -18,7 +18,7 @@ describe('Images page', () => { }); it('should open and show breadcrumb', () => { - expect(Helper.getBreadcrumbText()).toEqual('Images'); + Helper.waitTextToBePresent(Helper.getBreadcrumb(), 'Images'); }); it('should show three tabs', () => { diff --git a/src/pybind/mgr/dashboard/frontend/e2e/block/iscsi.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/e2e/block/iscsi.e2e-spec.ts index 8a3a03b06371..b3227fe9c35f 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/block/iscsi.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/block/iscsi.e2e-spec.ts @@ -14,6 +14,6 @@ describe('Iscsi Page', () => { it('should open and show breadcrumb', () => { page.navigateTo(); - expect(Helper.getBreadcrumbText()).toEqual('Overview'); + Helper.waitTextToBePresent(Helper.getBreadcrumb(), 'Overview'); }); }); diff --git a/src/pybind/mgr/dashboard/frontend/e2e/block/mirroring.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/e2e/block/mirroring.e2e-spec.ts index a8f819cc8744..e15cb53efba5 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/block/mirroring.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/block/mirroring.e2e-spec.ts @@ -18,7 +18,7 @@ describe('Mirroring page', () => { }); it('should open and show breadcrumb', () => { - expect(Helper.getBreadcrumbText()).toEqual('Mirroring'); + Helper.waitTextToBePresent(Helper.getBreadcrumb(), 'Mirroring'); }); it('should show three tabs', () => { diff --git a/src/pybind/mgr/dashboard/frontend/e2e/cluster/alerts.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/e2e/cluster/alerts.e2e-spec.ts index 2600a83ab849..2f438f8dd20f 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/cluster/alerts.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/cluster/alerts.e2e-spec.ts @@ -18,7 +18,7 @@ describe('Alerts page', () => { }); it('should open and show breadcrumb', () => { - expect(Helper.getBreadcrumbText()).toEqual('Alerts'); + Helper.waitTextToBePresent(Helper.getBreadcrumb(), 'Alerts'); }); }); }); diff --git a/src/pybind/mgr/dashboard/frontend/e2e/cluster/configuration.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/e2e/cluster/configuration.e2e-spec.ts index 9afe5405ab0b..91303fb3e276 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/cluster/configuration.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/cluster/configuration.e2e-spec.ts @@ -14,6 +14,6 @@ describe('Configuration page', () => { it('should open and show breadcrumb', () => { page.navigateTo(); - expect(Helper.getBreadcrumbText()).toEqual('Configuration'); + Helper.waitTextToBePresent(Helper.getBreadcrumb(), 'Configuration'); }); }); diff --git a/src/pybind/mgr/dashboard/frontend/e2e/cluster/crush-map.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/e2e/cluster/crush-map.e2e-spec.ts index c4335ff62192..d64fdee55276 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/cluster/crush-map.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/cluster/crush-map.e2e-spec.ts @@ -14,6 +14,6 @@ describe('CRUSH map page', () => { it('should open and show breadcrumb', () => { page.navigateTo(); - expect(Helper.getBreadcrumbText()).toEqual('CRUSH map'); + Helper.waitTextToBePresent(Helper.getBreadcrumb(), 'CRUSH map'); }); }); diff --git a/src/pybind/mgr/dashboard/frontend/e2e/cluster/hosts.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/e2e/cluster/hosts.e2e-spec.ts index 605b63d4d96f..913d01bfa98a 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/cluster/hosts.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/cluster/hosts.e2e-spec.ts @@ -14,7 +14,7 @@ describe('Hosts page', () => { it('should open and show breadcrumb', () => { page.navigateTo(); - expect(Helper.getBreadcrumbText()).toEqual('Hosts'); + Helper.waitTextToBePresent(Helper.getBreadcrumb(), 'Hosts'); }); it('should show two tabs', () => { diff --git a/src/pybind/mgr/dashboard/frontend/e2e/cluster/logs.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/e2e/cluster/logs.e2e-spec.ts index 243582ee0cee..13658619d03a 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/cluster/logs.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/cluster/logs.e2e-spec.ts @@ -14,7 +14,7 @@ describe('Logs page', () => { it('should open and show breadcrumb', () => { page.navigateTo(); - expect(Helper.getBreadcrumbText()).toEqual('Logs'); + Helper.waitTextToBePresent(Helper.getBreadcrumb(), 'Logs'); }); it('should show two tabs', () => { diff --git a/src/pybind/mgr/dashboard/frontend/e2e/cluster/mgr-modules.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/e2e/cluster/mgr-modules.e2e-spec.ts index 6bc71747b280..629b791f6217 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/cluster/mgr-modules.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/cluster/mgr-modules.e2e-spec.ts @@ -18,7 +18,7 @@ describe('Manager modules page', () => { }); it('should open and show breadcrumb', () => { - expect(Helper.getBreadcrumbText()).toEqual('Manager modules'); + Helper.waitTextToBePresent(Helper.getBreadcrumb(), 'Manager modules'); }); }); }); diff --git a/src/pybind/mgr/dashboard/frontend/e2e/cluster/monitors.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/e2e/cluster/monitors.e2e-spec.ts index 7eb19f2ecd01..529763b6be2e 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/cluster/monitors.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/cluster/monitors.e2e-spec.ts @@ -14,6 +14,6 @@ describe('Monitors page', () => { it('should open and show breadcrumb', () => { page.navigateTo(); - expect(Helper.getBreadcrumbText()).toEqual('Monitors'); + Helper.waitTextToBePresent(Helper.getBreadcrumb(), 'Monitors'); }); }); diff --git a/src/pybind/mgr/dashboard/frontend/e2e/cluster/osds.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/e2e/cluster/osds.e2e-spec.ts index 41fd52f346e2..330100104183 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/cluster/osds.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/cluster/osds.e2e-spec.ts @@ -14,7 +14,7 @@ describe('OSDs page', () => { it('should open and show breadcrumb', () => { page.navigateTo(); - expect(Helper.getBreadcrumbText()).toEqual('OSDs'); + Helper.waitTextToBePresent(Helper.getBreadcrumb(), 'OSDs'); }); it('should show two tabs', () => { diff --git a/src/pybind/mgr/dashboard/frontend/e2e/filesystems/filesystems.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/e2e/filesystems/filesystems.e2e-spec.ts index d5306858423e..9c39a925b6bb 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/filesystems/filesystems.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/filesystems/filesystems.e2e-spec.ts @@ -18,7 +18,7 @@ describe('Filesystems page', () => { }); it('should open and show breadcrumb', () => { - expect(Helper.getBreadcrumbText()).toEqual('Filesystems'); + Helper.waitTextToBePresent(Helper.getBreadcrumb(), 'Filesystems'); }); }); }); diff --git a/src/pybind/mgr/dashboard/frontend/e2e/helper.po.ts b/src/pybind/mgr/dashboard/frontend/e2e/helper.po.ts index 7ff26b315b94..cd6b8f673383 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/helper.po.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/helper.po.ts @@ -1,4 +1,4 @@ -import { $, $$, browser } from 'protractor'; +import { $, $$, browser, ElementFinder } from 'protractor'; export class Helper { static EC = browser.ExpectedConditions; @@ -28,8 +28,8 @@ export class Helper { }); } - static getBreadcrumbText() { - return $('.breadcrumb-item.active').getText(); + static getBreadcrumb() { + return $('.breadcrumb-item.active'); } static getTabText(idx) { @@ -41,4 +41,8 @@ export class Helper { static getTabsCount() { return $$('.nav.nav-tabs li').count(); } + + static waitTextToBePresent(elem: ElementFinder, text: string, message?: string) { + return browser.wait(Helper.EC.textToBePresentInElement(elem, text), Helper.TIMEOUT, message); + } } diff --git a/src/pybind/mgr/dashboard/frontend/e2e/nfs/nfs.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/e2e/nfs/nfs.e2e-spec.ts index de45daf0a51d..988737a67934 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/nfs/nfs.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/nfs/nfs.e2e-spec.ts @@ -18,7 +18,7 @@ describe('Nfs page', () => { }); it('should open and show breadcrumb', () => { - expect(Helper.getBreadcrumbText()).toEqual('NFS'); + Helper.waitTextToBePresent(Helper.getBreadcrumb(), 'NFS'); }); }); }); 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 3b826eb85830..7ce4c81dce0b 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 @@ -14,7 +14,7 @@ describe('Pools page', () => { it('should open and show breadcrumb', () => { page.navigateTo(); - expect(Helper.getBreadcrumbText()).toEqual('Pools'); + Helper.waitTextToBePresent(Helper.getBreadcrumb(), 'Pools'); }); it('should show two tabs', () => { -- 2.47.3