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);
});
});
});
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);
}
}