From: Patrick Seidensal Date: Mon, 26 Aug 2019 15:39:30 +0000 (+0200) Subject: mgr/dashboard: migrate E2E user management tests X-Git-Tag: v15.1.0~1745^2~15 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=dc9084136fa7f5d129579ad336abc70063f8fa90;p=ceph-ci.git mgr/dashboard: migrate E2E user management tests Signed-off-by: Patrick Seidensal --- diff --git a/src/pybind/mgr/dashboard/frontend/e2e/user-mgmt.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/e2e/user-mgmt.e2e-spec.ts index bd3ecb0853a..bac2068de9f 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/user-mgmt.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/user-mgmt.e2e-spec.ts @@ -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); }); }); }); diff --git a/src/pybind/mgr/dashboard/frontend/e2e/user-mgmt.po.ts b/src/pybind/mgr/dashboard/frontend/e2e/user-mgmt.po.ts index ecd636572b7..48a2fadb166 100644 --- a/src/pybind/mgr/dashboard/frontend/e2e/user-mgmt.po.ts +++ b/src/pybind/mgr/dashboard/frontend/e2e/user-mgmt.po.ts @@ -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 { + 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 { + 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 { + 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 { + 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 { + 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); } }