]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: Update formatting for dashboard e2e test files 29070/head
authorAdam King <adking@redhat.com>
Tue, 16 Jul 2019 15:29:37 +0000 (11:29 -0400)
committerAdam King <kingamk3@gmail.com>
Mon, 22 Jul 2019 14:01:02 +0000 (10:01 -0400)
Fixes: https://tracker.ceph.com/issues/40789
Signed-off-by: Adam King <adking@redhat.com>
Signed-off-by: Rafael Quintero <rquinter@redhat.com>
36 files changed:
src/pybind/mgr/dashboard/frontend/e2e/block/images.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/e2e/block/images.po.ts
src/pybind/mgr/dashboard/frontend/e2e/block/iscsi.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/e2e/block/iscsi.po.ts
src/pybind/mgr/dashboard/frontend/e2e/block/mirroring.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/e2e/block/mirroring.po.ts
src/pybind/mgr/dashboard/frontend/e2e/cluster/alerts.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/e2e/cluster/alerts.po.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/crush-map.po.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/logs.po.ts
src/pybind/mgr/dashboard/frontend/e2e/cluster/mgr-modules.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/e2e/cluster/mgr-modules.po.ts
src/pybind/mgr/dashboard/frontend/e2e/cluster/monitors.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/e2e/cluster/monitors.po.ts
src/pybind/mgr/dashboard/frontend/e2e/cluster/osds.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/e2e/cluster/osds.po.ts
src/pybind/mgr/dashboard/frontend/e2e/filesystems/filesystems.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/e2e/filesystems/filesystems.po.ts
src/pybind/mgr/dashboard/frontend/e2e/helper.po.ts
src/pybind/mgr/dashboard/frontend/e2e/nfs/nfs.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/e2e/nfs/nfs.po.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.e2e-spec.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/daemons.po.ts
src/pybind/mgr/dashboard/frontend/e2e/rgw/users.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/e2e/rgw/users.po.ts

index 8eb434120c410e0e3131328fa8dcf174c355b2a2..8af22236410e22be0b36ebb8b9d2bdc1b1f64af4 100644 (file)
@@ -1,11 +1,10 @@
 import { Helper } from '../helper.po';
-import { ImagesPage } from './images.po';
 
 describe('Images page', () => {
-  let page: ImagesPage;
+  let images;
 
   beforeAll(() => {
-    page = new ImagesPage();
+    images = new Helper().images;
   });
 
   afterEach(() => {
@@ -14,21 +13,21 @@ describe('Images page', () => {
 
   describe('breadcrumb and tab tests', () => {
     beforeAll(() => {
-      page.navigateTo();
+      images.navigateTo();
     });
 
     it('should open and show breadcrumb', () => {
-      expect(ImagesPage.getBreadcrumbText()).toEqual('Images');
+      expect(images.getBreadcrumbText()).toEqual('Images');
     });
 
     it('should show three tabs', () => {
-      expect(ImagesPage.getTabsCount()).toEqual(3);
+      expect(images.getTabsCount()).toEqual(3);
     });
 
     it('should show text for all tabs', () => {
-      expect(ImagesPage.getTabText(0)).toEqual('Images');
-      expect(ImagesPage.getTabText(1)).toEqual('Trash');
-      expect(ImagesPage.getTabText(2)).toEqual('Overall Performance');
+      expect(images.getTabText(0)).toEqual('Images');
+      expect(images.getTabText(1)).toEqual('Trash');
+      expect(images.getTabText(2)).toEqual('Overall Performance');
     });
   });
 });
index 6f9fb5aff9a493f16289424bd4b4e011868a179b..ad659ed33accdae6ce4527aa0dae109a482a16d0 100644 (file)
@@ -1,5 +1,5 @@
 import { PageHelper } from '../page-helper.po';
 
-export class ImagesPage extends PageHelper {
+export class ImagesPageHelper extends PageHelper {
   pages = { index: '/#/block/rbd' };
 }
index 194f87efb42775552e3627e6ee2d7db1dc72e6b9..f088eeac63da8b079e86539b7dea8620ba5f68ad 100644 (file)
@@ -1,11 +1,10 @@
 import { Helper } from '../helper.po';
-import { IscsiPage } from './iscsi.po';
 
 describe('Iscsi Page', () => {
-  let page: IscsiPage;
+  let iscsi;
 
   beforeAll(() => {
-    page = new IscsiPage();
+    iscsi = new Helper().iscsi;
   });
 
   afterEach(() => {
@@ -14,11 +13,11 @@ describe('Iscsi Page', () => {
 
   describe('breadcrumb test', () => {
     beforeAll(() => {
-      page.navigateTo();
+      iscsi.navigateTo();
     });
 
     it('should open and show breadcrumb', () => {
-      expect(IscsiPage.getBreadcrumbText()).toEqual('Overview');
+      expect(iscsi.getBreadcrumbText()).toEqual('Overview');
     });
   });
 });
index 9cba79b21eba943c527294e740bd07b0de9b76a3..e2621f0451aab132aa8f0e144b53a728ce7e2470 100644 (file)
@@ -1,5 +1,5 @@
 import { PageHelper } from '../page-helper.po';
 
-export class IscsiPage extends PageHelper {
+export class IscsiPageHelper extends PageHelper {
   pages = { index: '/#/block/iscsi/overview' };
 }
index 536b0881f3b8ec75e6fea8917d4fbb0ba645aeef..60dd992bc53b4e021cbdecb0305d1be71580afba 100644 (file)
@@ -1,11 +1,10 @@
 import { Helper } from '../helper.po';
-import { MirroringPage } from './mirroring.po';
 
 describe('Mirroring page', () => {
-  let page: MirroringPage;
+  let mirroring;
 
   beforeAll(() => {
-    page = new MirroringPage();
+    mirroring = new Helper().mirroring;
   });
 
   afterEach(() => {
@@ -14,21 +13,21 @@ describe('Mirroring page', () => {
 
   describe('breadcrumb and tab tests', () => {
     beforeAll(() => {
-      page.navigateTo();
+      mirroring.navigateTo();
     });
 
     it('should open and show breadcrumb', () => {
-      expect(MirroringPage.getBreadcrumbText()).toEqual('Mirroring');
+      expect(mirroring.getBreadcrumbText()).toEqual('Mirroring');
     });
 
     it('should show three tabs', () => {
-      expect(MirroringPage.getTabsCount()).toEqual(3);
+      expect(mirroring.getTabsCount()).toEqual(3);
     });
 
     it('should show text for all tabs', () => {
-      expect(MirroringPage.getTabText(0)).toEqual('Issues');
-      expect(MirroringPage.getTabText(1)).toEqual('Syncing');
-      expect(MirroringPage.getTabText(2)).toEqual('Ready');
+      expect(mirroring.getTabText(0)).toEqual('Issues');
+      expect(mirroring.getTabText(1)).toEqual('Syncing');
+      expect(mirroring.getTabText(2)).toEqual('Ready');
     });
   });
 });
index 875a51b1fc8cd756ce1deb5a4f00e768615cd920..f1d562ca4c4c1d20dc908ccab7c21b4a4e8a1e6d 100644 (file)
@@ -1,5 +1,5 @@
 import { PageHelper } from '../page-helper.po';
 
-export class MirroringPage extends PageHelper {
+export class MirroringPageHelper extends PageHelper {
   pages = { index: '/#/block/mirroring' };
 }
index bf139cb85566c323c193df88a69378a574d38ed0..038453a06be3f1e99e41c21ad1de801a3ea76890 100644 (file)
@@ -1,11 +1,10 @@
 import { Helper } from '../helper.po';
-import { AlertsPage } from './alerts.po';
 
 describe('Alerts page', () => {
-  let page: AlertsPage;
+  let alerts;
 
   beforeAll(() => {
-    page = new AlertsPage();
+    alerts = new Helper().alerts;
   });
 
   afterEach(() => {
@@ -14,11 +13,11 @@ describe('Alerts page', () => {
 
   describe('breadcrumb test', () => {
     beforeAll(() => {
-      page.navigateTo();
+      alerts.navigateTo();
     });
 
     it('should open and show breadcrumb', () => {
-      expect(AlertsPage.getBreadcrumbText()).toEqual('Alerts');
+      expect(alerts.getBreadcrumbText()).toEqual('Alerts');
     });
   });
 });
index 02cf70a429a72c68822bac786defe1297b023df2..8a50662b26d1adfa77851e7e6137cf76973b0055 100644 (file)
@@ -1,5 +1,5 @@
 import { PageHelper } from '../page-helper.po';
 
-export class AlertsPage extends PageHelper {
+export class AlertsPageHelper extends PageHelper {
   pages = { index: '/#/alerts' };
 }
index 56f4c293f8ad4f1c436a1fdb9011461c8477134c..29a348f45348853f81ea5a2ed887e9ff1ffa5ec0 100644 (file)
@@ -1,11 +1,10 @@
 import { Helper } from '../helper.po';
-import { ConfigurationPage } from './configuration.po';
 
 describe('Configuration page', () => {
-  let page: ConfigurationPage;
+  let configuration;
 
   beforeAll(() => {
-    page = new ConfigurationPage();
+    configuration = new Helper().configuration;
   });
 
   afterEach(() => {
@@ -14,11 +13,11 @@ describe('Configuration page', () => {
 
   describe('breadcrumb test', () => {
     beforeAll(() => {
-      page.navigateTo();
+      configuration.navigateTo();
     });
 
     it('should open and show breadcrumb', () => {
-      expect(ConfigurationPage.getBreadcrumbText()).toEqual('Configuration');
+      expect(configuration.getBreadcrumbText()).toEqual('Configuration');
     });
   });
 });
index 47d000629fc5493673c3a9f6007797a5f314e13a..1e21d19552a73f819cd3ee1cfdf37edbd3a0310d 100644 (file)
@@ -1,5 +1,5 @@
 import { PageHelper } from '../page-helper.po';
 
-export class ConfigurationPage extends PageHelper {
+export class ConfigurationPageHelper extends PageHelper {
   pages = { index: '/#/configuration' };
 }
index 54243cafa6b742131fbc4a4ac16c0cfd51f7a638..47d5493ea95fee5000b2feba52d9ba5f58d45ce7 100644 (file)
@@ -1,11 +1,10 @@
 import { Helper } from '../helper.po';
-import { CrushMapPage } from './crush-map.po';
 
 describe('CRUSH map page', () => {
-  let page: CrushMapPage;
+  let crushmap;
 
   beforeAll(() => {
-    page = new CrushMapPage();
+    crushmap = new Helper().crushmap;
   });
 
   afterEach(() => {
@@ -14,11 +13,11 @@ describe('CRUSH map page', () => {
 
   describe('breadcrumb test', () => {
     beforeAll(() => {
-      page.navigateTo();
+      crushmap.navigateTo();
     });
 
     it('should open and show breadcrumb', () => {
-      expect(CrushMapPage.getBreadcrumbText()).toEqual('CRUSH map');
+      expect(crushmap.getBreadcrumbText()).toEqual('CRUSH map');
     });
   });
 });
index 16992b84a9f4f1f92404ffa4d73d08cc27cafce4..b1b3e8f4fc9fec9cbb01cd21c87cba88c043c733 100644 (file)
@@ -1,5 +1,5 @@
 import { PageHelper } from '../page-helper.po';
 
-export class CrushMapPage extends PageHelper {
+export class CrushMapPageHelper extends PageHelper {
   pages = { index: '/#/crush-map' };
 }
index db5690cc0b7a5068d9dc5a7c294715a31477b20b..094c7771d2935d2bb16a88658339b1264fa8eac4 100644 (file)
@@ -1,11 +1,10 @@
 import { Helper } from '../helper.po';
-import { HostsPage } from './hosts.po';
 
 describe('Hosts page', () => {
-  let page: HostsPage;
+  let hosts;
 
   beforeAll(() => {
-    page = new HostsPage();
+    hosts = new Helper().hosts;
   });
 
   afterEach(() => {
@@ -14,23 +13,23 @@ describe('Hosts page', () => {
 
   describe('breadcrumb and tab tests', () => {
     beforeAll(() => {
-      page.navigateTo();
+      hosts.navigateTo();
     });
 
     it('should open and show breadcrumb', () => {
-      expect(HostsPage.getBreadcrumbText()).toEqual('Hosts');
+      expect(hosts.getBreadcrumbText()).toEqual('Hosts');
     });
 
     it('should show two tabs', () => {
-      expect(HostsPage.getTabsCount()).toEqual(2);
+      expect(hosts.getTabsCount()).toEqual(2);
     });
 
     it('should show hosts list tab at first', () => {
-      expect(HostsPage.getTabText(0)).toEqual('Hosts List');
+      expect(hosts.getTabText(0)).toEqual('Hosts List');
     });
 
     it('should show overall performance as a second tab', () => {
-      expect(HostsPage.getTabText(1)).toEqual('Overall Performance');
+      expect(hosts.getTabText(1)).toEqual('Overall Performance');
     });
   });
 });
index 53c664019cfedc60bf1b60137dc3f9df2c798a86..9d9a76716349060ce048f474374415e435b5fa94 100644 (file)
@@ -1,5 +1,5 @@
 import { PageHelper } from '../page-helper.po';
 
-export class HostsPage extends PageHelper {
+export class HostsPageHelper extends PageHelper {
   pages = { index: '/#/hosts' };
 }
index 5548eb1341b5fbf18bf8332bb3dd282a2abb0abb..8202744c5146ecf4ee520e25cf372dd7183a9e19 100644 (file)
@@ -1,11 +1,10 @@
 import { Helper } from '../helper.po';
-import { LogsPage } from './logs.po';
 
 describe('Logs page', () => {
-  let page: LogsPage;
+  let logs;
 
   beforeAll(() => {
-    page = new LogsPage();
+    logs = new Helper().logs;
   });
 
   afterEach(() => {
@@ -14,23 +13,23 @@ describe('Logs page', () => {
 
   describe('breadcrumb and tab tests', () => {
     beforeAll(() => {
-      page.navigateTo();
+      logs.navigateTo();
     });
 
     it('should open and show breadcrumb', () => {
-      expect(LogsPage.getBreadcrumbText()).toEqual('Logs');
+      expect(logs.getBreadcrumbText()).toEqual('Logs');
     });
 
     it('should show two tabs', () => {
-      expect(LogsPage.getTabsCount()).toEqual(2);
+      expect(logs.getTabsCount()).toEqual(2);
     });
 
     it('should show cluster logs tab at first', () => {
-      expect(LogsPage.getTabText(0)).toEqual('Cluster Logs');
+      expect(logs.getTabText(0)).toEqual('Cluster Logs');
     });
 
     it('should show audit logs as a second tab', () => {
-      expect(LogsPage.getTabText(1)).toEqual('Audit Logs');
+      expect(logs.getTabText(1)).toEqual('Audit Logs');
     });
   });
 });
index 9d61c8263853fd77051f601406de696173edc9db..863612c8f4c55ceebced26baa45d74f2ebb08615 100644 (file)
@@ -3,6 +3,6 @@ import { PageHelper } from '../page-helper.po';
 
 browser.ignoreSynchronization = true;
 
-export class LogsPage extends PageHelper {
+export class LogsPageHelper extends PageHelper {
   pages = { index: '/#/logs' };
 }
index a45baf8c4a08ab0f50d72b90925c561a44533114..5f786b08eceb279bbaf6b15d6a54392eef579f04 100644 (file)
@@ -1,11 +1,10 @@
 import { Helper } from '../helper.po';
-import { ManagerModulesPage } from './mgr-modules.po';
 
 describe('Manager modules page', () => {
-  let page: ManagerModulesPage;
+  let mgrmodules;
 
   beforeAll(() => {
-    page = new ManagerModulesPage();
+    mgrmodules = new Helper().mgrmodules;
   });
 
   afterEach(() => {
@@ -14,11 +13,11 @@ describe('Manager modules page', () => {
 
   describe('breadcrumb test', () => {
     beforeAll(() => {
-      page.navigateTo();
+      mgrmodules.navigateTo();
     });
 
     it('should open and show breadcrumb', () => {
-      expect(ManagerModulesPage.getBreadcrumbText()).toEqual('Manager modules');
+      expect(mgrmodules.getBreadcrumbText()).toEqual('Manager modules');
     });
   });
 });
index 72db6a429d979f72b7cb70c7217dfc7c82df6603..63306c3e214080c33ab585822f6492727e9db629 100644 (file)
@@ -1,5 +1,5 @@
 import { PageHelper } from '../page-helper.po';
 
-export class ManagerModulesPage extends PageHelper {
+export class ManagerModulesPageHelper extends PageHelper {
   pages = { index: '/#/mgr-modules' };
 }
index 7ff2e06e23cff62809995f63d3d32e9587f0ac4d..596b4492180806c7b61814d1944fb9c926eb67eb 100644 (file)
@@ -1,11 +1,10 @@
 import { Helper } from '../helper.po';
-import { MonitorsPage } from './monitors.po';
 
 describe('Monitors page', () => {
-  let page: MonitorsPage;
+  let monitors;
 
   beforeAll(() => {
-    page = new MonitorsPage();
+    monitors = new Helper().monitors;
   });
 
   afterEach(() => {
@@ -14,11 +13,11 @@ describe('Monitors page', () => {
 
   describe('breadcrumb test', () => {
     beforeAll(() => {
-      page.navigateTo();
+      monitors.navigateTo();
     });
 
     it('should open and show breadcrumb', () => {
-      expect(MonitorsPage.getBreadcrumbText()).toEqual('Monitors');
+      expect(monitors.getBreadcrumbText()).toEqual('Monitors');
     });
   });
 });
index 256ddf77dea50b6f8bf78d9406a79e2f2847af4d..c935eba1e860aeb3f1e25e78b9ddb4b319495416 100644 (file)
@@ -1,5 +1,5 @@
 import { PageHelper } from '../page-helper.po';
 
-export class MonitorsPage extends PageHelper {
+export class MonitorsPageHelper extends PageHelper {
   pages = { index: '/#/monitor' };
 }
index 57ae67da268ae6c3ae7a26d000ddb0585cdf8e0d..bb8216e434f2e85db6152e0bae2052d96aea47fe 100644 (file)
@@ -1,11 +1,10 @@
 import { Helper } from '../helper.po';
-import { OSDsPage } from './osds.po';
 
 describe('OSDs page', () => {
-  let page: OSDsPage;
+  let osds;
 
   beforeAll(() => {
-    page = new OSDsPage();
+    osds = new Helper().osds;
   });
 
   afterEach(() => {
@@ -14,23 +13,23 @@ describe('OSDs page', () => {
 
   describe('breadcrumb and tab tests', () => {
     beforeAll(() => {
-      page.navigateTo();
+      osds.navigateTo();
     });
 
     it('should open and show breadcrumb', () => {
-      expect(OSDsPage.getBreadcrumbText()).toEqual('OSDs');
+      expect(osds.getBreadcrumbText()).toEqual('OSDs');
     });
 
     it('should show two tabs', () => {
-      expect(OSDsPage.getTabsCount()).toEqual(2);
+      expect(osds.getTabsCount()).toEqual(2);
     });
 
     it('should show OSDs list tab at first', () => {
-      expect(OSDsPage.getTabText(0)).toEqual('OSDs List');
+      expect(osds.getTabText(0)).toEqual('OSDs List');
     });
 
     it('should show overall performance as a second tab', () => {
-      expect(OSDsPage.getTabText(1)).toEqual('Overall Performance');
+      expect(osds.getTabText(1)).toEqual('Overall Performance');
     });
   });
 });
index df84c8d490e7243f521e9cf58d3ac1fe4f2c07f1..a968989207273187b93507200591e122afa563c9 100644 (file)
@@ -1,5 +1,5 @@
 import { PageHelper } from '../page-helper.po';
 
-export class OSDsPage extends PageHelper {
+export class OSDsPageHelper extends PageHelper {
   pages = { index: '/#/osd' };
 }
index 13266645d7e9cf7fd1b792cb9881569526c20f2e..1146dad3571628d0d33b314a14150968793bbb1b 100644 (file)
@@ -1,11 +1,10 @@
 import { Helper } from '../helper.po';
-import { FilesystemsPage } from './filesystems.po';
 
 describe('Filesystems page', () => {
-  let page: FilesystemsPage;
+  let filesystems;
 
   beforeAll(() => {
-    page = new FilesystemsPage();
+    filesystems = new Helper().filesystems;
   });
 
   afterEach(() => {
@@ -14,11 +13,11 @@ describe('Filesystems page', () => {
 
   describe('breadcrumb test', () => {
     beforeAll(() => {
-      page.navigateTo();
+      filesystems.navigateTo();
     });
 
     it('should open and show breadcrumb', () => {
-      expect(FilesystemsPage.getBreadcrumbText()).toEqual('Filesystems');
+      expect(filesystems.getBreadcrumbText()).toEqual('Filesystems');
     });
   });
 });
index 821cf00faf0ccb128accd45a2e40d4acfe731c01..eedbd855c634c8077733deaef918ccb9e74165c3 100644 (file)
@@ -1,5 +1,5 @@
 import { PageHelper } from '../page-helper.po';
 
-export class FilesystemsPage extends PageHelper {
+export class FilesystemsPageHelper extends PageHelper {
   pages = { index: '/#/cephfs' };
 }
index c0aa7f5d79a5013a1ac547d2faba32510f765e5d..eadafac966b8ac1eb86a98af5959f262467de3a4 100644 (file)
@@ -1,17 +1,62 @@
 import { browser } from 'protractor';
+import { ImagesPageHelper } from './block/images.po';
+import { IscsiPageHelper } from './block/iscsi.po';
+import { MirroringPageHelper } from './block/mirroring.po';
+import { AlertsPageHelper } from './cluster/alerts.po';
+import { ConfigurationPageHelper } from './cluster/configuration.po';
+import { CrushMapPageHelper } from './cluster/crush-map.po';
+import { HostsPageHelper } from './cluster/hosts.po';
+import { LogsPageHelper } from './cluster/logs.po';
+import { ManagerModulesPageHelper } from './cluster/mgr-modules.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';
 import { PoolPageHelper } from './pools/pools.po';
 import { BucketsPageHelper } from './rgw/buckets.po';
+import { DaemonsPageHelper } from './rgw/daemons.po';
+import { UsersPageHelper } from './rgw/users.po';
 
 export class Helper {
   static EC = browser.ExpectedConditions;
-  static TIMEOUT = 30000;
+  static TIMEOUT = 10000;
 
   buckets: BucketsPageHelper;
+  daemons: DaemonsPageHelper;
+  users: UsersPageHelper;
   pools: PoolPageHelper;
+  nfs: NfsPageHelper;
+  filesystems: FilesystemsPageHelper;
+  alerts: AlertsPageHelper;
+  configuration: ConfigurationPageHelper;
+  crushmap: CrushMapPageHelper;
+  hosts: HostsPageHelper;
+  logs: LogsPageHelper;
+  mgrmodules: ManagerModulesPageHelper;
+  monitors: MonitorsPageHelper;
+  osds: OSDsPageHelper;
+  images: ImagesPageHelper;
+  iscsi: IscsiPageHelper;
+  mirroring: MirroringPageHelper;
 
   constructor() {
     this.buckets = new BucketsPageHelper();
+    this.daemons = new DaemonsPageHelper();
+    this.users = new UsersPageHelper();
     this.pools = new PoolPageHelper();
+    this.nfs = new NfsPageHelper();
+    this.filesystems = new FilesystemsPageHelper();
+    this.alerts = new AlertsPageHelper();
+    this.configuration = new ConfigurationPageHelper();
+    this.crushmap = new CrushMapPageHelper();
+    this.hosts = new HostsPageHelper();
+    this.logs = new LogsPageHelper();
+    this.mgrmodules = new ManagerModulesPageHelper();
+    this.monitors = new MonitorsPageHelper();
+    this.osds = new OSDsPageHelper();
+    this.images = new ImagesPageHelper();
+    this.iscsi = new IscsiPageHelper();
+    this.mirroring = new MirroringPageHelper();
   }
 
   /**
index 23a29952772f09ab851c6db10df9dd04455463ae..803c8ea5abca1780d8d936e023a434ca7edacc25 100644 (file)
@@ -1,11 +1,10 @@
 import { Helper } from '../helper.po';
-import { NfsPage } from './nfs.po';
 
 describe('Nfs page', () => {
-  let page: NfsPage;
+  let nfs;
 
   beforeAll(() => {
-    page = new NfsPage();
+    nfs = new Helper().nfs;
   });
 
   afterEach(() => {
@@ -14,11 +13,11 @@ describe('Nfs page', () => {
 
   describe('breadcrumb test', () => {
     beforeAll(() => {
-      page.navigateTo();
+      nfs.navigateTo();
     });
 
     it('should open and show breadcrumb', () => {
-      expect(NfsPage.getBreadcrumbText()).toEqual('NFS');
+      expect(nfs.getBreadcrumbText()).toEqual('NFS');
     });
   });
 });
index 5909cafa42a6ee2815025e41b8035278abfd2773..d3db8ecca6034e086832b0cada22379dda0184a8 100644 (file)
@@ -1,5 +1,5 @@
 import { PageHelper } from '../page-helper.po';
 
-export class NfsPage extends PageHelper {
+export class NfsPageHelper extends PageHelper {
   pages = { index: '/#/nfs' };
 }
index 72a93b4955a0166d3ee2ccbb7cdf86fa532eb650..37dbc9668cd113970a13dd58d77e282e6aafbdda 100644 (file)
@@ -7,21 +7,45 @@ interface Pages {
 export abstract class PageHelper {
   pages: Pages;
 
-  static getBreadcrumbText() {
+  /**
+   * Decorator to be used on Helper methods to restrict access to one
+   * particular URL.  This shall help developers to prevent and highlight
+   * mistakes.  It also reduces boilerplate code and by thus, increases
+   * readability.
+   */
+  static restrictTo(page): any {
+    return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {
+      const fn: Function = descriptor.value;
+      descriptor.value = function(...args) {
+        return browser
+          .getCurrentUrl()
+          .then((url) =>
+            url.endsWith(page)
+              ? fn.apply(this, args)
+              : promise.Promise.reject(
+                  `Method ${target.constructor.name}::${propertyKey} is supposed to be ` +
+                    `run on path "${page}", but was run on URL "${url}"`
+                )
+          );
+      };
+    };
+  }
+
+  getBreadcrumbText() {
     return $('.breadcrumb-item.active').getText();
   }
 
-  static getTabText(idx) {
+  getTabText(idx) {
     return $$('.nav.nav-tabs li')
       .get(idx)
       .getText();
   }
 
-  static getTableCount() {
+  getTableCount() {
     return $('.datatable-footer-inner.selected-count');
   }
 
-  static getTitleText() {
+  getTitleText() {
     let title;
     return browser
       .wait(() => {
@@ -31,19 +55,19 @@ export abstract class PageHelper {
       .then(() => title.getText());
   }
 
-  static getTableCell(content) {
+  getTableCell(content) {
     return element(by.cssContainingText('.datatable-body-cell-label', content));
   }
 
-  static getTable() {
+  getTable() {
     return element.all(by.css('.datatable-body'));
   }
 
-  static getTabsCount() {
+  getTabsCount() {
     return $$('.nav.nav-tabs li').count();
   }
 
-  static getFirstTableCellWithText(content) {
+  getFirstTableCellWithText(content) {
     return element.all(by.cssContainingText('.datatable-body-cell-label', content)).first();
   }
 
@@ -52,7 +76,7 @@ export abstract class PageHelper {
    *
    * https://stackoverflow.com/questions/26211751/protractor-chrome-driver-element-is-not-clickable-at-point
    */
-  static moveClick(object) {
+  moveClick(object) {
     return browser
       .actions()
       .mouseMove(object)
@@ -70,7 +94,7 @@ export abstract class PageHelper {
    * means if after the search for content has been completed, but more than a
    * single row is shown in the data table.
    */
-  static getTableCellByContent(content: string): promise.Promise<ElementFinder> {
+  getTableCellByContent(content: string): promise.Promise<ElementFinder> {
     const searchInput = $('#pool-list > div .search input');
     const rowAmountInput = $('#pool-list > div > div > .dataTables_paginate input');
     const footer = $('#pool-list > div datatable-footer');
@@ -92,30 +116,6 @@ export abstract class PageHelper {
     });
   }
 
-  /**
-   * Decorator to be used on Helper methods to restrict access to one
-   * particular URL.  This shall help developers to prevent and highlight
-   * mistakes.  It also reduces boilerplate code and by thus, increases
-   * readability.
-   */
-  static restrictTo(page): any {
-    return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {
-      const fn: Function = descriptor.value;
-      descriptor.value = function(...args) {
-        return browser
-          .getCurrentUrl()
-          .then((url) =>
-            url.endsWith(page)
-              ? fn.apply(this, args)
-              : promise.Promise.reject(
-                  `Method ${target.constructor.name}::${propertyKey} is supposed to be ` +
-                    `run on path "${page}", but was run on URL "${url}"`
-                )
-          );
-      };
-    };
-  }
-
   navigateTo(page = null) {
     page = page || 'index';
     const url = this.pages[page];
index 302ff8255a9b5fec8191ccd383ee7a1907d43a03..e30a872912553cb69f1f82bea6d8b89cb9dfb18a 100644 (file)
@@ -1,15 +1,12 @@
 import { Helper } from '../helper.po';
-import { PoolPageHelper } from './pools.po';
 
 describe('Pools page', () => {
-  let page: PoolPageHelper;
-  let helper: Helper;
+  let pools;
   const poolName = 'pool_e2e_pool_test';
 
   beforeAll(() => {
-    page = new PoolPageHelper();
-    helper = new Helper();
-    page.navigateTo();
+    pools = new Helper().pools;
+    pools.navigateTo();
   });
 
   afterEach(() => {
@@ -18,37 +15,37 @@ describe('Pools page', () => {
 
   describe('breadcrumb and tab tests', () => {
     it('should open and show breadcrumb', () => {
-      expect(PoolPageHelper.getBreadcrumbText()).toEqual('Pools');
+      expect(pools.getBreadcrumbText()).toEqual('Pools');
     });
 
     it('should show two tabs', () => {
-      expect(PoolPageHelper.getTabsCount()).toEqual(2);
+      expect(pools.getTabsCount()).toEqual(2);
     });
 
     it('should show pools list tab at first', () => {
-      expect(PoolPageHelper.getTabText(0)).toEqual('Pools List');
+      expect(pools.getTabText(0)).toEqual('Pools List');
     });
 
     it('should show overall performance as a second tab', () => {
-      expect(PoolPageHelper.getTabText(1)).toEqual('Overall Performance');
+      expect(pools.getTabText(1)).toEqual('Overall Performance');
     });
   });
 
   it('should create a pool', () => {
-    helper.pools.exist(poolName, false).then(() => {
-      helper.pools.navigateTo('create');
-      helper.pools.create(poolName, 8).then(() => {
-        helper.pools.navigateTo();
-        helper.pools.exist(poolName, true);
+    pools.exist(poolName, false).then(() => {
+      pools.navigateTo('create');
+      pools.create(poolName, 8).then(() => {
+        pools.navigateTo();
+        pools.exist(poolName, true);
       });
     });
   });
 
   it('should delete a pool', () => {
-    helper.pools.exist(poolName);
-    helper.pools.delete(poolName).then(() => {
-      helper.pools.navigateTo();
-      helper.pools.exist(poolName, false);
+    pools.exist(poolName);
+    pools.delete(poolName).then(() => {
+      pools.navigateTo();
+      pools.exist(poolName, false);
     });
   });
 });
index 9f110a79133f431a2a390eec388930b28d672482..535542fcc841c29ed39eb71c89ddf64772b3e8b8 100644 (file)
@@ -18,7 +18,7 @@ export class PoolPageHelper extends PageHelper {
 
   @PageHelper.restrictTo(pages.index)
   exist(name: string, oughtToBePresent = true): promise.Promise<any> {
-    return PageHelper.getTableCellByContent(name).then((elem) => {
+    return this.getTableCellByContent(name).then((elem) => {
       const waitFn = oughtToBePresent ? EC.visibilityOf(elem) : EC.invisibilityOf(elem);
       return browser.wait(waitFn, Helper.TIMEOUT).catch(() => {
         const visibility = oughtToBePresent ? 'invisible' : 'visible';
@@ -53,7 +53,7 @@ export class PoolPageHelper extends PageHelper {
 
   @PageHelper.restrictTo(pages.index)
   delete(name: string): promise.Promise<any> {
-    return PoolPageHelper.getTableCellByContent(name).then((tableCell: ElementFinder) => {
+    return this.getTableCellByContent(name).then((tableCell: ElementFinder) => {
       return tableCell.click().then(() => {
         return $('.table-actions button.dropdown-toggle') // open submenu
           .click()
@@ -65,7 +65,7 @@ export class PoolPageHelper extends PageHelper {
                 browser
                   .wait(() => EC.visibilityOf(getConfirmationCheckbox()), Helper.TIMEOUT)
                   .then(() => {
-                    PageHelper.moveClick(getConfirmationCheckbox()).then(() => {
+                    this.moveClick(getConfirmationCheckbox()).then(() => {
                       return element(by.cssContainingText('button', 'Delete Pool')).click(); // Click Delete item
                     });
                   });
index 0f5e6b707f38fc6f88124d275722d67074ede6a6..d3d87b9cf6c939343ea1f9dba0136b08567c09e6 100644 (file)
@@ -1,9 +1,7 @@
 import { Helper } from '../helper.po';
-import { PageHelper } from '../page-helper.po';
-import { BucketsPageHelper } from './buckets.po';
 
 describe('RGW buckets page', () => {
-  let buckets: BucketsPageHelper;
+  let buckets;
 
   beforeAll(() => {
     buckets = new Helper().buckets;
@@ -16,7 +14,7 @@ describe('RGW buckets page', () => {
 
   describe('breadcrumb test', () => {
     it('should open and show breadcrumb', () => {
-      expect(PageHelper.getBreadcrumbText()).toEqual('Buckets');
+      expect(buckets.getBreadcrumbText()).toEqual('Buckets');
     });
   });
 
@@ -27,17 +25,17 @@ describe('RGW buckets page', () => {
         '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef',
         'default-placement'
       );
-      expect(PageHelper.getTableCell('000test').isPresent()).toBe(true);
+      expect(buckets.getTableCell('000test').isPresent()).toBe(true);
     });
 
     it('should edit bucket', () => {
       buckets.edit('000test', 'dev');
-      expect(PageHelper.getTable().getText()).toMatch('dev');
+      expect(buckets.getTable().getText()).toMatch('dev');
     });
 
     it('should delete bucket', () => {
       buckets.delete('000test');
-      expect(PageHelper.getTableCell('000test').isPresent()).toBe(false);
+      expect(buckets.getTableCell('000test').isPresent()).toBe(false);
     });
   });
 
index 834c501f792e94bc9092ce4cd95b6889b3b4f76f..ae7f9af6e63c60afb5c65130f9b2c6c805f374be 100644 (file)
@@ -28,7 +28,7 @@ export class BucketsPageHelper extends PageHelper {
     const createButton = element(by.cssContainingText('button', 'Create Bucket'));
     createButton.click().then(() => {
       browser.wait(
-        Helper.EC.presenceOf(PageHelper.getTableCell(name)),
+        Helper.EC.presenceOf(this.getTableCell(name)),
         Helper.TIMEOUT,
         'Timed out waiting for bucket creation'
       );
@@ -38,11 +38,11 @@ export class BucketsPageHelper extends PageHelper {
   edit(name, new_owner) {
     this.navigateTo();
 
-    browser.wait(Helper.EC.elementToBeClickable(PageHelper.getTableCell(name)), 10000); // wait for table to load
-    PageHelper.getTableCell(name).click(); // click on the bucket you want to edit in the table
+    browser.wait(Helper.EC.elementToBeClickable(this.getTableCell(name)), 10000); // wait for table to load
+    this.getTableCell(name).click(); // click on the bucket you want to edit in the table
     element(by.cssContainingText('button', 'Edit')).click(); // click button to move to edit page
 
-    expect(PageHelper.getBreadcrumbText()).toEqual('Edit');
+    expect(this.getBreadcrumbText()).toEqual('Edit');
 
     expect(element(by.css('input[name=placement-target]')).getAttribute('value')).toBe(
       'default-placement'
@@ -56,13 +56,13 @@ export class BucketsPageHelper extends PageHelper {
     editbutton.click().then(() => {
       // wait to be back on buckets page with table visible
       browser.wait(
-        Helper.EC.elementToBeClickable(PageHelper.getTableCell(name)),
+        Helper.EC.elementToBeClickable(this.getTableCell(name)),
         10000,
         'Could not return to buckets page and load table after editing bucket'
       );
 
       // click on edited bucket and check its details table for edited owner field
-      PageHelper.getTableCell(name).click();
+      this.getTableCell(name).click();
       const element_details_table = element
         .all(by.css('.table.table-striped.table-bordered'))
         .first();
@@ -74,9 +74,9 @@ export class BucketsPageHelper extends PageHelper {
     this.navigateTo();
 
     // wait for table to load
-    browser.wait(Helper.EC.elementToBeClickable(PageHelper.getTableCell(name)), 10000);
+    browser.wait(Helper.EC.elementToBeClickable(this.getTableCell(name)), 10000);
 
-    PageHelper.getTableCell(name).click(); // click on the bucket you want to delete in the table
+    this.getTableCell(name).click(); // click on the bucket you want to delete in the table
     $('.table-actions button.dropdown-toggle').click(); // click toggle menu
     $('li.delete a').click(); // click delete
     // wait for pop-up to be visible (checks for title of pop-up)
@@ -87,14 +87,14 @@ export class BucketsPageHelper extends PageHelper {
         .click()
         .then(() => {
           this.navigateTo();
-          browser.wait(Helper.EC.not(Helper.EC.presenceOf(PageHelper.getTableCell(name))), 10000);
+          browser.wait(Helper.EC.not(Helper.EC.presenceOf(this.getTableCell(name))), 10000);
         });
     });
   }
 
   invalidCreate() {
     this.navigateTo('create');
-    expect(PageHelper.getBreadcrumbText()).toEqual('Create');
+    expect(this.getBreadcrumbText()).toEqual('Create');
 
     const nameInputField = element(by.id('bid')); // Grabs name box field
     const ownerDropDown = element(by.id('owner')); // Grab owner field
@@ -102,7 +102,7 @@ export class BucketsPageHelper extends PageHelper {
     // Gives an invalid name (too short), then waits for dashboard to determine validity
     nameInputField.sendKeys('rq');
 
-    PageHelper.moveClick(ownerDropDown); // To trigger a validation
+    this.moveClick(ownerDropDown); // To trigger a validation
 
     browser.wait(
       function() {
@@ -124,16 +124,16 @@ export class BucketsPageHelper extends PageHelper {
     );
 
     // Test invalid owner input
-    PageHelper.moveClick(ownerDropDown); // Clicks the Owner drop down on the Create Bucket page
+    this.moveClick(ownerDropDown); // Clicks the Owner drop down on the Create Bucket page
     // select some valid option. The owner drop down error message will not appear unless a valid user was selected at
     // one point before the invalid placeholder user is selected.
     element(by.cssContainingText('select[name=owner] option', 'dev')).click();
 
-    PageHelper.moveClick(ownerDropDown); // Clicks the Owner drop down on the Create Bucket page
+    this.moveClick(ownerDropDown); // Clicks the Owner drop down on the Create Bucket page
     // select the first option, which is invalid because it is a placeholder
     element(by.cssContainingText('select[name=owner] option', 'Select a user')).click();
 
-    PageHelper.moveClick(nameInputField); // To trigger a validation
+    this.moveClick(nameInputField); // To trigger a validation
 
     // Check that owner drop down field was marked invalid in the css
     expect(element(by.id('owner')).getAttribute('class')).toContain('ng-invalid');
@@ -144,7 +144,7 @@ export class BucketsPageHelper extends PageHelper {
     );
 
     // Check invalid placement target input
-    PageHelper.moveClick(ownerDropDown);
+    this.moveClick(ownerDropDown);
     element(by.cssContainingText('select[name=owner] option', 'dev')).click();
     // The drop down error message will not appear unless a valid option is previsously selected.
     element(
@@ -153,7 +153,7 @@ export class BucketsPageHelper extends PageHelper {
     element(
       by.cssContainingText('select[name=placement-target] option', 'Select a placement target')
     ).click();
-    PageHelper.moveClick(nameInputField); // To trigger a validation
+    this.moveClick(nameInputField); // To trigger a validation
     expect(element(by.id('placement-target')).getAttribute('class')).toContain('ng-invalid');
     expect(element(by.css('#placement-target + .invalid-feedback')).getText()).toMatch(
       'This field is required.'
@@ -161,8 +161,8 @@ export class BucketsPageHelper extends PageHelper {
 
     // Clicks the Create Bucket button but the page doesn't move. Done by testing
     // for the breadcrumb
-    PageHelper.moveClick(element(by.cssContainingText('button', 'Create Bucket'))); // Clicks Create Bucket button
-    expect(PageHelper.getBreadcrumbText()).toEqual('Create');
+    this.moveClick(element(by.cssContainingText('button', 'Create Bucket'))); // Clicks Create Bucket button
+    expect(this.getBreadcrumbText()).toEqual('Create');
     // content in fields seems to subsist through tests if not cleared, so it is cleared
     nameInputField.clear().then(() => {
       element(by.cssContainingText('button', 'Cancel')).click();
@@ -173,21 +173,21 @@ export class BucketsPageHelper extends PageHelper {
     this.navigateTo();
 
     browser.wait(
-      Helper.EC.elementToBeClickable(PageHelper.getTableCell(name)),
+      Helper.EC.elementToBeClickable(this.getTableCell(name)),
       10000,
       'Failed waiting for bucket to be present in table'
     ); // wait for table to load
-    PageHelper.getTableCell(name).click(); // click on the bucket you want to edit in the table
+    this.getTableCell(name).click(); // click on the bucket you want to edit in the table
     element(by.cssContainingText('button', 'Edit')).click(); // click button to move to edit page
 
-    expect(PageHelper.getBreadcrumbText()).toEqual('Edit');
+    expect(this.getBreadcrumbText()).toEqual('Edit');
 
     // Chooses 'Select a user' rather than a valid owner on Edit Bucket page
     // and checks if it's an invalid input
     const ownerDropDown = element(by.id('owner'));
     browser.wait(Helper.EC.elementToBeClickable(ownerDropDown), 5000);
 
-    PageHelper.moveClick(ownerDropDown); // Clicks the Owner drop down on the Create Bucket page
+    this.moveClick(ownerDropDown); // Clicks the Owner drop down on the Create Bucket page
     // select the first option, which is invalid because it is a placeholder
     element(by.cssContainingText('select[name=owner] option', 'Select a user')).click();
 
@@ -206,6 +206,6 @@ export class BucketsPageHelper extends PageHelper {
     // Clicks the Edit Bucket button but the page doesn't move. Done by testing for
     // breadcrumb
     element(by.cssContainingText('button', 'Edit Bucket')).click(); // Gets the Edit button and clicks it
-    expect(PageHelper.getBreadcrumbText()).toEqual('Edit');
+    expect(this.getBreadcrumbText()).toEqual('Edit');
   }
 }
index 70553c9a06e44cfc35c89c07e0cb3802bd651e70..484379309246ef07944f22d242412a4817e86813 100644 (file)
@@ -1,11 +1,10 @@
 import { Helper } from '../helper.po';
-import { DaemonsPage } from './daemons.po';
 
 describe('RGW daemons page', () => {
-  let page: DaemonsPage;
+  let daemons;
 
   beforeAll(() => {
-    page = new DaemonsPage();
+    daemons = new Helper().daemons;
   });
 
   afterEach(() => {
@@ -14,23 +13,23 @@ describe('RGW daemons page', () => {
 
   describe('breadcrumb and tab tests', () => {
     beforeAll(() => {
-      page.navigateTo();
+      daemons.navigateTo();
     });
 
     it('should open and show breadcrumb', () => {
-      expect(DaemonsPage.getBreadcrumbText()).toEqual('Daemons');
+      expect(daemons.getBreadcrumbText()).toEqual('Daemons');
     });
 
     it('should show two tabs', () => {
-      expect(DaemonsPage.getTabsCount()).toEqual(2);
+      expect(daemons.getTabsCount()).toEqual(2);
     });
 
     it('should show daemons list tab at first', () => {
-      expect(DaemonsPage.getTabText(0)).toEqual('Daemons List');
+      expect(daemons.getTabText(0)).toEqual('Daemons List');
     });
 
     it('should show overall performance as a second tab', () => {
-      expect(DaemonsPage.getTabText(1)).toEqual('Overall Performance');
+      expect(daemons.getTabText(1)).toEqual('Overall Performance');
     });
   });
 });
index 0f6c8363a5e0cc26267f0c3a040490b8b3a327e8..fa44c0875c8a412e4fd03ebf0c439bae7f0bfce2 100644 (file)
@@ -1,5 +1,5 @@
 import { PageHelper } from '../page-helper.po';
 
-export class DaemonsPage extends PageHelper {
+export class DaemonsPageHelper extends PageHelper {
   pages = { index: '/#/rgw/daemon' };
 }
index 3c6487acd869699967f6b63f00c39fbed5fa0b73..29baee7313b47b03d0c8da3a320fe9ac8d0fb336 100644 (file)
@@ -1,11 +1,10 @@
 import { Helper } from '../helper.po';
-import { UsersPage } from './users.po';
 
 describe('RGW users page', () => {
-  let page: UsersPage;
+  let users;
 
   beforeAll(() => {
-    page = new UsersPage();
+    users = new Helper().users;
   });
 
   afterEach(() => {
@@ -14,11 +13,11 @@ describe('RGW users page', () => {
 
   describe('breadcrumb test', () => {
     beforeAll(() => {
-      page.navigateTo();
+      users.navigateTo();
     });
 
     it('should open and show breadcrumb', () => {
-      expect(UsersPage.getBreadcrumbText()).toEqual('Users');
+      expect(users.getBreadcrumbText()).toEqual('Users');
     });
   });
 });
index 7c21688ccb01bc4bced4831100c058a76c37d4a7..2ded62dbf77190a4ca2b03019bc24458d1ec8835 100644 (file)
@@ -1,5 +1,5 @@
 import { PageHelper } from '../page-helper.po';
 
-export class UsersPage extends PageHelper {
+export class UsersPageHelper extends PageHelper {
   pages = { index: '/#/rgw/user' };
 }