| //Employees.js |
| |
| //Actions specific to the Employees section |
| var Common = require('./Common.js'); |
| |
| var EC = protractor.ExpectedConditions; |
| var usernameInput = $("fims-id-input[controlname='identifier'] input"); |
| var firstNameInput = $("fims-text-input[controlname='firstName'] input"); |
| var lastNameInput = $("fims-text-input[controlname='lastName'] input"); |
| var passwordInput = $("input[formcontrolname='password']"); |
| var middleNameInput = $("fims-text-input[controlname='middleName'] input"); |
| var emailInput = $("fims-text-input[controlname='email'] input"); |
| var phoneInput = $("fims-text-input[controlname='phone'] input"); |
| var mobileInput = $("fims-text-input[controlname='mobile'] input"); |
| var createEmployee = $("a[href='/employees/create']"); |
| var primaryButton = $$(".mat-raised-button.mat-primary"); |
| |
| module.exports = { |
| verifyCardHasTitleManageEmployees: function() { |
| browser.wait(EC.visibilityOf($("fims-employee md-toolbar-row span")), 5000); |
| expect($("fims-employee md-toolbar-row div").getText()).toEqual("Manage employees"); |
| }, |
| verifyCardHasTitleCreateEmployee: function() { |
| form_title=$("fims-layout-card-over .mat-toolbar-row span").getText(); |
| expect(form_title).toEqual("Create new employee"); |
| }, |
| enterTextIntoUsernameInputField: function(text) { |
| browser.wait(EC.visibilityOf(usernameInput), 5000); |
| usernameInput.click().sendKeys(text); |
| }, |
| enterTextIntoFirstNameInputField: function(text) { |
| firstNameInput.click().sendKeys(text); |
| }, |
| enterTextIntoMiddleNameInputField: function(text){ |
| middleNameInput.click().sendKeys(text); |
| }, |
| enterTextIntoLastNameInputField: function(text) { |
| lastNameInput.click().sendKeys(text); |
| }, |
| enterTextIntoPasswordInputField: function(text) { |
| passwordInput.click().sendKeys(text); |
| }, |
| clickEnabledContinueButtonForEmployeeDetails: function(){ |
| browser.executeScript("arguments[0].scrollIntoView();", $$(".mat-raised-button").get(0).getWebElement()); |
| browser.wait(EC.elementToBeClickable($$(".mat-raised-button").get(0)),2000); |
| $$(".mat-raised-button").get(0).click(); |
| }, |
| clickEnabledContinueButtonForAssignEmployeeToOffice: function(){ |
| browser.sleep(100); |
| browser.executeScript("arguments[0].scrollIntoView();", $$(".mat-raised-button").get(1).getWebElement()); |
| browser.wait(EC.elementToBeClickable($$(".mat-raised-button").get(1)),2000); |
| $$(".mat-raised-button").get(1).click(); |
| }, |
| clickEnabledCreateEmployeeButton: function(){ |
| browser.sleep(100); |
| browser.executeScript("arguments[0].scrollIntoView();", $$("td-step-body").last().getWebElement()); |
| primaryButton.filter(function(elem, index) { |
| return elem.$("span").getText().then(function(text) { |
| return text === "CREATE EMPLOYEE"; |
| }); |
| }).click(); |
| }, |
| clickButtonOrLinkCreateNewEmployee: function(){ |
| browser.wait(EC.visibilityOf(createEmployee), 5000); |
| createEmployee.click(); |
| }, |
| selectRoleByName: function(name){ |
| browser.sleep(100); |
| roleSelection = $("mat-select[formcontrolname='role'] .mat-select-trigger"); |
| browser.wait(EC.elementToBeClickable(roleSelection), 3000); |
| roleSelection.click(); |
| browser.wait(EC.visibilityOf($(".mat-option")), 5000); |
| element(by.cssContainingText('.mat-option',name)).click(); |
| }, |
| goToManageEmployeesViaSidePanel: function() { |
| browser.wait(EC.elementToBeClickable($$("a[href='/employees']").first()), 5000); |
| $$("a[href='/employees']").first().click(); |
| }, |
| clickViewEmployeesFromQuickAccess: function() { |
| browser.wait(EC.visibilityOf($$("a[href='/employees']").get(1)), 5000); |
| $$("a[href='/employees']").get(1).click(); |
| }, |
| createEmployee: function(username, firstName, lastName, role, password){ |
| this.clickButtonOrLinkCreateNewEmployee(); |
| this.enterTextIntoUsernameInputField(username); |
| this.enterTextIntoFirstNameInputField(firstName); |
| this.enterTextIntoLastNameInputField(lastName); |
| this.selectRoleByName(role); |
| this.enterTextIntoPasswordInputField(password); |
| this.clickEnabledContinueButtonForEmployeeDetails(); |
| this.clickEnabledContinueButtonForAssignEmployeeToOffice(); |
| this.clickEnabledCreateEmployeeButton(); |
| Common.verifyMessagePopupIsDisplayed("Employee is going to be saved"); |
| }, |
| deleteEmployee: function() { |
| browser.wait(EC.visibilityOf($("button[title='Delete this employee']")), 3000); |
| $("button[title='Delete this employee']").click(); |
| browser.wait(EC.visibilityOf($(".mat-button.mat-accent")), 5000); |
| $(".mat-button.mat-accent").click(); |
| } |
| }; |