]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/dashboard: migrate E2E user management tests
authorPatrick Seidensal <pseidensal@suse.com>
Mon, 26 Aug 2019 15:39:30 +0000 (17:39 +0200)
committerPatrick Seidensal <pseidensal@suse.com>
Wed, 28 Aug 2019 07:38:48 +0000 (09:38 +0200)
Signed-off-by: Patrick Seidensal <pseidensal@suse.com>
src/pybind/mgr/dashboard/frontend/e2e/user-mgmt.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/e2e/user-mgmt.po.ts

index bd3ecb0853aa2ddcd9e5eeb7064f5296c8e94320..bac2068de9fa5af8e902a51d546b6b9a0a1bf492 100644 (file)
@@ -1,65 +1,71 @@
 import { Helper } from './helper.po';
+import { UserMgmtPageHelper } from './user-mgmt.po';
 
 describe('User Management page', () => {
-  let usermgmt: Helper['usermgmt'];
+  let userManagement: UserMgmtPageHelper;
   const user_name = 'user_mgmt_create_edit_delete_user';
   const role_name = 'user_mgmt_create_edit_delete_role';
 
   beforeAll(() => {
-    usermgmt = new Helper().usermgmt;
+    userManagement = new UserMgmtPageHelper();
   });
 
-  afterEach(() => {
-    Helper.checkConsole();
+  afterEach(async () => {
+    await Helper.checkConsole();
   });
 
   describe('breadcrumb tests', () => {
-    it('should check breadcrumb on users tab of user management page', () => {
-      usermgmt.navigateTo('users');
-      expect(usermgmt.getBreadcrumbText()).toEqual('Users');
+    it('should check breadcrumb on users tab of user management page', async () => {
+      await userManagement.navigateTo('users');
+      expect(await userManagement.getBreadcrumbText()).toEqual('Users');
     });
 
-    it('should check breadcrumb on roles tab of user management page', () => {
-      usermgmt.navigateTo('roles');
-      expect(usermgmt.getBreadcrumbText()).toEqual('Roles');
+    it('should check breadcrumb on roles tab of user management page', async () => {
+      await userManagement.navigateTo('roles');
+      expect(await userManagement.getBreadcrumbText()).toEqual('Roles');
     });
 
-    it('should check breadcrumb on user creation page', () => {
-      usermgmt.navigateTo('userCreate');
-      expect(usermgmt.getBreadcrumbText()).toEqual('Create');
+    it('should check breadcrumb on user creation page', async () => {
+      await userManagement.navigateTo('userCreate');
+      expect(await userManagement.getBreadcrumbText()).toEqual('Create');
     });
 
-    it('should check breadcrumb on role creation page', () => {
-      usermgmt.navigateTo('roleCreate');
-      expect(usermgmt.getBreadcrumbText()).toEqual('Create');
+    it('should check breadcrumb on role creation page', async () => {
+      await userManagement.navigateTo('roleCreate');
+      expect(await userManagement.getBreadcrumbText()).toEqual('Create');
     });
   });
 
   describe('user create, edit & delete test', () => {
-    it('should create a user', () => {
-      usermgmt.userCreate(user_name, 'cool_password', 'Jeff', 'realemail@realwebsite.com');
+    it('should create a user', async () => {
+      await userManagement.userCreate(
+        user_name,
+        'cool_password',
+        'Jeff',
+        'realemail@realwebsite.com'
+      );
     });
 
-    it('should edit a user', () => {
-      usermgmt.userEdit(user_name, 'cool_password_number_2', 'Geoff', 'w@m');
+    it('should edit a user', async () => {
+      await userManagement.userEdit(user_name, 'cool_password_number_2', 'Geoff', 'w@m');
     });
 
-    it('should delete a user', () => {
-      usermgmt.userDelete(user_name);
+    it('should delete a user', async () => {
+      await userManagement.userDelete(user_name);
     });
   });
 
   describe('role create, edit & delete test', () => {
-    it('should create a role', () => {
-      usermgmt.roleCreate(role_name, 'An interesting description');
+    it('should create a role', async () => {
+      await userManagement.roleCreate(role_name, 'An interesting description');
     });
 
-    it('should edit a role', () => {
-      usermgmt.roleEdit(role_name, 'A far more interesting description');
+    it('should edit a role', async () => {
+      await userManagement.roleEdit(role_name, 'A far more interesting description');
     });
 
-    it('should delete a role', () => {
-      usermgmt.roleDelete(role_name);
+    it('should delete a role', async () => {
+      await userManagement.roleDelete(role_name);
     });
   });
 });
index ecd636572b72f5fdbdb9f6481960bb3f54b2f7b8..48a2fadb1664c2abd7c1018b20c32763515bb327 100644 (file)
@@ -11,111 +11,102 @@ export class UserMgmtPageHelper extends PageHelper {
     roleCreate: '/#/user-management/roles/create'
   };
 
-  userCreate(username, password, name, email) {
-    this.navigateTo('userCreate');
+  async userCreate(username, password, name, email): Promise<void> {
+    await this.navigateTo('userCreate');
 
     // fill in fields
-    element(by.id('username')).sendKeys(username);
-    element(by.id('password')).sendKeys(password);
-    element(by.id('confirmpassword')).sendKeys(password);
-    element(by.id('name')).sendKeys(name);
-    element(by.id('email')).sendKeys(email);
+    await element(by.id('username')).sendKeys(username);
+    await element(by.id('password')).sendKeys(password);
+    await element(by.id('confirmpassword')).sendKeys(password);
+    await element(by.id('name')).sendKeys(name);
+    await element(by.id('email')).sendKeys(email);
 
     // Click the create button and wait for user to be made
     const createButton = element(by.cssContainingText('button', 'Create User'));
-    this.moveClick(createButton).then(() => {
-      browser.wait(Helper.EC.presenceOf(this.getTableCell(username)), Helper.TIMEOUT);
-    });
+    await createButton.click();
+    await browser.wait(Helper.EC.presenceOf(this.getTableCell(username)), Helper.TIMEOUT);
   }
 
-  userEdit(username, password, name, email) {
-    this.navigateTo('users');
+  async userEdit(username, password, name, email): Promise<void> {
+    await this.navigateTo('users');
 
-    this.getTableCell(username).click(); // select user from table
-    element(by.cssContainingText('button', 'Edit')).click(); // click button to move to edit page
+    await this.getTableCell(username).click(); // select user from table
+    await element(by.cssContainingText('button', 'Edit')).click(); // click button to move to edit page
 
     // fill in fields with new values
-    element(by.id('password')).clear();
-    element(by.id('password')).sendKeys(password);
-    element(by.id('confirmpassword')).clear();
-    element(by.id('confirmpassword')).sendKeys(password);
-    element(by.id('name')).clear();
-    element(by.id('name')).sendKeys(name);
-    element(by.id('email')).clear();
-    element(by.id('email')).sendKeys(email);
+    await element(by.id('password')).clear();
+    await element(by.id('password')).sendKeys(password);
+    await element(by.id('confirmpassword')).clear();
+    await element(by.id('confirmpassword')).sendKeys(password);
+    await element(by.id('name')).clear();
+    await element(by.id('name')).sendKeys(name);
+    await element(by.id('email')).clear();
+    await element(by.id('email')).sendKeys(email);
 
     // Click the edit button and check new values are present in table
     const editButton = element(by.cssContainingText('button', 'Edit User'));
-    this.moveClick(editButton).then(() => {
-      browser.wait(Helper.EC.presenceOf(this.getTableCell(email)), Helper.TIMEOUT);
-      browser.wait(Helper.EC.presenceOf(this.getTableCell(name)), Helper.TIMEOUT);
-    });
+    await editButton.click();
+    await browser.wait(Helper.EC.presenceOf(this.getTableCell(email)), Helper.TIMEOUT);
+    await browser.wait(Helper.EC.presenceOf(this.getTableCell(name)), Helper.TIMEOUT);
   }
 
-  userDelete(username) {
-    this.navigateTo('users');
-
-    this.getTableCell(username).click(); // select user from table
-    $('.table-actions button.dropdown-toggle').click(); // click toggle menu
-    $('li.delete a').click(); // click delete
-
-    browser.wait(Helper.EC.visibilityOf($('.custom-control-label')), Helper.TIMEOUT);
-    $('.custom-control-label').click(); // click confirmation checkbox
-    element(by.cssContainingText('button', 'Delete User')) // click delete user button
-      .click()
-      .then(() => {
-        browser.wait(
-          Helper.EC.stalenessOf(this.getFirstTableCellWithText(username)),
-          Helper.TIMEOUT
-        );
-      });
+  async userDelete(username): Promise<void> {
+    await this.navigateTo('users');
+
+    await this.getTableCell(username).click(); // select user from table
+    await $('.table-actions button.dropdown-toggle').click(); // click toggle menu
+    await $('li.delete a').click(); // click delete
+
+    await browser.wait(Helper.EC.visibilityOf($('.custom-control-label')), Helper.TIMEOUT);
+    await $('.custom-control-label').click(); // click confirmation checkbox
+    await element(by.cssContainingText('button', 'Delete User')).click();
+    await browser.wait(
+      Helper.EC.stalenessOf(this.getFirstTableCellWithText(username)),
+      Helper.TIMEOUT
+    );
   }
 
-  roleCreate(name, description) {
-    this.navigateTo('roleCreate');
+  async roleCreate(name, description): Promise<void> {
+    await this.navigateTo('roleCreate');
 
     // fill in fields
-    element(by.id('name')).sendKeys(name);
-    element(by.id('description')).sendKeys(description);
+    await element(by.id('name')).sendKeys(name);
+    await element(by.id('description')).sendKeys(description);
 
     // Click the create button and wait for user to be made
     const createButton = element(by.cssContainingText('button', 'Create Role'));
-    this.moveClick(createButton).then(() => {
-      browser.wait(Helper.EC.presenceOf(this.getTableCell(name)), Helper.TIMEOUT);
-    });
+    await createButton.click();
+    await browser.wait(Helper.EC.presenceOf(this.getTableCell(name)), Helper.TIMEOUT);
   }
 
-  roleEdit(name, description) {
-    this.navigateTo('roles');
+  async roleEdit(name, description): Promise<void> {
+    await this.navigateTo('roles');
 
-    this.getTableCell(name).click(); // select role from table
-    element(by.cssContainingText('button', 'Edit')).click(); // click button to move to edit page
+    await this.getTableCell(name).click(); // select role from table
+    await element(by.cssContainingText('button', 'Edit')).click(); // click button to move to edit page
 
     // fill in fields with new values
-    element(by.id('description')).clear();
-    element(by.id('description')).sendKeys(description);
+    await element(by.id('description')).clear();
+    await element(by.id('description')).sendKeys(description);
 
     // Click the edit button and check new values are present in table
     const editButton = element(by.cssContainingText('button', 'Edit Role'));
-    this.moveClick(editButton).then(() => {
-      browser.wait(Helper.EC.presenceOf(this.getTableCell(name)), Helper.TIMEOUT);
-      browser.wait(Helper.EC.presenceOf(this.getTableCell(description)), Helper.TIMEOUT);
-    });
+    await editButton.click();
+
+    await browser.wait(Helper.EC.presenceOf(this.getTableCell(name)), Helper.TIMEOUT);
+    await browser.wait(Helper.EC.presenceOf(this.getTableCell(description)), Helper.TIMEOUT);
   }
 
-  roleDelete(name) {
-    this.navigateTo('roles');
+  async roleDelete(name) {
+    await this.navigateTo('roles');
 
-    this.getTableCell(name).click(); // select role from table
-    $('.table-actions button.dropdown-toggle').click(); // click toggle menu
-    $('li.delete a').click(); // click delete
+    await this.getTableCell(name).click(); // select role from table
+    await $('.table-actions button.dropdown-toggle').click(); // click toggle menu
+    await $('li.delete a').click(); // click delete
 
-    browser.wait(Helper.EC.visibilityOf($('.custom-control-label')), Helper.TIMEOUT);
-    $('.custom-control-label').click(); // click confirmation checkbox
-    element(by.cssContainingText('button', 'Delete Role')) // click delete user button
-      .click()
-      .then(() => {
-        browser.wait(Helper.EC.stalenessOf(this.getFirstTableCellWithText(name)), Helper.TIMEOUT);
-      });
+    await browser.wait(Helper.EC.visibilityOf($('.custom-control-label')), Helper.TIMEOUT);
+    await $('.custom-control-label').click(); // click confirmation checkbox
+    await element(by.cssContainingText('button', 'Delete Role')).click();
+    await browser.wait(Helper.EC.stalenessOf(this.getFirstTableCellWithText(name)), Helper.TIMEOUT);
   }
 }