From 7ec75da3508425f465d27a91bf5b75787cd4947b Mon Sep 17 00:00:00 2001 From: Patrick Seidensal Date: Mon, 19 Aug 2019 12:36:14 +0200 Subject: [PATCH] mgr/dashboard: migrate E2E monitors to async/await Fixes: https://tracker.ceph.com/issues/40693 Signed-off-by: Patrick Seidensal --- .../frontend/e2e/cluster/monitors.e2e-spec.ts | 56 +++++++++---------- .../mgr/dashboard/frontend/e2e/helper.po.ts | 3 + .../dashboard/frontend/e2e/page-helper.po.ts | 55 +++++++++++------- 3 files changed, 66 insertions(+), 48 deletions(-) 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 e9b47bd16ab..f1146b5ac32 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 @@ -7,51 +7,51 @@ describe('Monitors page', () => { monitors = new Helper().monitors; }); - afterEach(() => { - Helper.checkConsole(); + afterEach(async () => { + await Helper.checkConsole(); }); describe('breadcrumb test', () => { - beforeAll(() => { - monitors.navigateTo(); + beforeAll(async () => { + await monitors.navigateTo(); }); - it('should open and show breadcrumb', () => { - expect(monitors.getBreadcrumbText()).toEqual('Monitors'); + it('should open and show breadcrumb', async () => { + expect(await monitors.getBreadcrumbText()).toEqual('Monitors'); }); }); describe('fields check', () => { - beforeAll(() => { - monitors.navigateTo(); + beforeAll(async () => { + await monitors.navigateTo(); }); - it('should check status table is present', () => { + it('should check status table is present', async () => { // check for table header 'Status' expect( - monitors + await monitors .getLegends() .get(0) .getText() ).toMatch('Status'); // check for fields in table - expect(monitors.getStatusTable().getText()).toMatch('Cluster ID'); - expect(monitors.getStatusTable().getText()).toMatch('monmap modified'); - expect(monitors.getStatusTable().getText()).toMatch('monmap epoch'); - expect(monitors.getStatusTable().getText()).toMatch('quorum con'); - expect(monitors.getStatusTable().getText()).toMatch('quorum mon'); - expect(monitors.getStatusTable().getText()).toMatch('required con'); - expect(monitors.getStatusTable().getText()).toMatch('required mon'); + expect(await monitors.getStatusTable().getText()).toMatch('Cluster ID'); + expect(await monitors.getStatusTable().getText()).toMatch('monmap modified'); + expect(await monitors.getStatusTable().getText()).toMatch('monmap epoch'); + expect(await monitors.getStatusTable().getText()).toMatch('quorum con'); + expect(await monitors.getStatusTable().getText()).toMatch('quorum mon'); + expect(await monitors.getStatusTable().getText()).toMatch('required con'); + expect(await monitors.getStatusTable().getText()).toMatch('required mon'); }); - it('should check In Quorum and Not In Quorum tables are present', () => { + it('should check In Quorum and Not In Quorum tables are present', async () => { // check for there to be two tables - expect(monitors.getDataTable().count()).toEqual(2); + expect(await monitors.getDataTable().count()).toEqual(2); // check for table header 'In Quorum' expect( - monitors + await monitors .getLegends() .get(1) .getText() @@ -59,7 +59,7 @@ describe('Monitors page', () => { // check for table header 'Not In Quorum' expect( - monitors + await monitors .getLegends() .get(2) .getText() @@ -67,25 +67,25 @@ describe('Monitors page', () => { // verify correct columns on In Quorum table expect( - monitors + await monitors .getDataTableHeaders() .get(0) .getText() ).toMatch('Name'); expect( - monitors + await monitors .getDataTableHeaders() .get(0) .getText() ).toMatch('Rank'); expect( - monitors + await monitors .getDataTableHeaders() .get(0) .getText() ).toMatch('Public Address'); expect( - monitors + await monitors .getDataTableHeaders() .get(0) .getText() @@ -93,19 +93,19 @@ describe('Monitors page', () => { // verify correct columns on Not In Quorum table expect( - monitors + await monitors .getDataTableHeaders() .get(1) .getText() ).toMatch('Name'); expect( - monitors + await monitors .getDataTableHeaders() .get(1) .getText() ).toMatch('Rank'); expect( - monitors + await monitors .getDataTableHeaders() .get(1) .getText() diff --git a/src/pybind/mgr/dashboard/frontend/e2e/helper.po.ts b/src/pybind/mgr/dashboard/frontend/e2e/helper.po.ts index 4b76fdc3a76..38ea45b457a 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/helper.po.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/helper.po.ts @@ -1,5 +1,6 @@ import { browser } from 'protractor'; import { ImagesPageHelper } from './block/images.po'; +import { MonitorsPageHelper } from './cluster/monitors.po'; import { OSDsPageHelper } from './cluster/osds.po'; import { FilesystemsPageHelper } from './filesystems/filesystems.po'; import { NfsPageHelper } from './nfs/nfs.po'; @@ -25,6 +26,7 @@ export class Helper { nfs: NfsPageHelper; filesystems: FilesystemsPageHelper; osds: OSDsPageHelper; + monitors: MonitorsPageHelper; constructor() { this.pools = new PoolPageHelper(); @@ -39,6 +41,7 @@ export class Helper { this.nfs = new NfsPageHelper(); this.filesystems = new FilesystemsPageHelper(); this.osds = new OSDsPageHelper(); + this.monitors = new MonitorsPageHelper(); } /** 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 2649cf5d3d2..6e2067e8139 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/page-helper.po.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/page-helper.po.ts @@ -1,4 +1,13 @@ -import { $, $$, browser, by, element, ElementFinder, protractor } from 'protractor'; +import { + $, + $$, + browser, + by, + element, + ElementArrayFinder, + ElementFinder, + protractor +} from 'protractor'; interface Pages { index: string; @@ -156,23 +165,29 @@ export abstract class PageHelper { const url = this.pages[page]; return browser.get(url); } - // - // getDataTable() { - // return $$('cd-table'); - // } - // - // getStatusTable() { - // // Grabs striped tables - // return $$('.table.table-striped'); - // } - // - // getLegends() { - // // Grabs legends above tables - // return $$('legend'); - // } - // - // getDataTableHeaders() { - // // Gets column headers of table - // return $$('.datatable-header'); - // } + + getDataTable(): ElementArrayFinder { + return $$('cd-table'); + } + + /** + * Grabs striped tables + */ + getStatusTable(): ElementArrayFinder { + return $$('.table.table-striped'); + } + + /** + * Grabs legends above tables + */ + getLegends(): ElementArrayFinder { + return $$('legend'); + } + + /** + * Gets column headers of table + */ + getDataTableHeaders(): ElementArrayFinder { + return $$('.datatable-header'); + } } -- 2.39.5