blob: 66dd30b50ea348564466df2a3c0387441e4d362d [file] [log] [blame]
//login_specs.js
var helper = require('../helper.js');
var Login = require('../Pages/Login.js');
var Employees = require('../Pages/Employees.js');
var Common = require('../Pages/Common.js');
describe('Login suite', function() {
var EC = protractor.ExpectedConditions;
tenant = 'playground';
username = 'operator';
employeeIdentifier = helper.getRandomString(6);
afterAll(function() {
//delete employee created by the test again
browser.get("http://pilot.kuelap.io/index.html");
browser.waitForAngularEnabled(false);
Common.waitForThePageToFinishLoading();
$(".mat-toolbar-row .mat-icon-button").click();
//Login.logInWithTenantUserAndPassword(tenant, username, "init1@l");
Employees.clickViewEmployeesFromQuickAccess();
Common.clickSearchButtonToMakeSearchInputFieldAppear();
Common.enterTextInSearchInputFieldAndApplySearch(employeeIdentifier);
Common.verifyFirstRowOfSearchResultHasTextAsId(employeeIdentifier);
Common.clickLinkShowForFirstRowInTable();
Employees.deleteEmployee();
});
it(' should be on the page Quick Access ', function() {
browser.waitForAngularEnabled(false);
Common.waitForThePageToFinishLoading();
//verify browser title
expect(browser.getTitle()).toEqual('Quick Access');
//verify some other elements are present
});
it('should be logged in as user "operator"', function() {
//verify logged in as user
Login.clickButtonToOpenUserAccountMenu();
Login.verifyUserIsLoggedIn(username);
Login.closeOpenUserAccountMenu();
});
it('should be able to create a new employee', function() {
//switch to the Employees tab
Employees.goToManageEmployeesViaSidePanel();
Employees.verifyCardHasTitleManageEmployees();
//verify browser title changes to Manage Employees
expect(browser.getTitle()).toEqual('Manage Employees');
//create a new employee
Employees.clickButtonOrLinkCreateNewEmployee();
//verify form title is Create new employee
Employees.verifyCardHasTitleCreateEmployee();
//verify browser title changes to Create Employee
expect(browser.getTitle()).toEqual('Create Employee');
//enter only valid and required input
Employees.enterTextIntoUsernameInputField(employeeIdentifier);
Employees.enterTextIntoLastNameInputField("Angela");
Employees.enterTextIntoFirstNameInputField("Carter");
//selects role by index, should be by name
Employees.selectRoleByName("Admin");
Employees.enterTextIntoPasswordInputField("abc123!!");
Employees.clickEnabledContinueButtonForEmployeeDetails();
Employees.clickEnabledContinueButtonForAssignEmployeeToOffice();
Employees.clickEnabledCreateEmployeeButton();
Employees.verifyCardHasTitleManageEmployees();
Common.clickSearchButtonToMakeSearchInputFieldAppear();
Common.enterTextInSearchInputFieldAndApplySearch(employeeIdentifier);
Common.verifyFirstRowOfSearchResultHasTextAsId(employeeIdentifier);
});
it('should be able to log out and be brought back to the log-in page', function() {
Login.clickButtonToOpenUserAccountMenu();
Login.clickMenuItemSignOut();
//user should be back on the log in page
Login.enterTextInInputFieldForTenant(tenant);
});
it('should not be able to log in on entering the wrong tenant, username or password', function() {
//wrong password
Login.enterTextInInputFieldForUsername(employeeIdentifier);
Login.enterTextInInputFieldForPassword("abc123!");
Login.clickEnabledSignInOrChangePasswordButton();
Login.verifyMessageForUnsuccessfulLoginIsDisplayed();
//wrong username
Login.enterTextInInputFieldForUsername(employeeIdentifier + "1");
Login.enterTextInInputFieldForPassword("!");
Login.clickEnabledSignInOrChangePasswordButton();
Login.verifyMessageForUnsuccessfulLoginIsDisplayed();
//wrong tenant
Login.enterTextInInputFieldForTenant("client12345");
Login.clearInputFieldForUsername();
Login.enterTextInInputFieldForUsername(employeeIdentifier);
Login.clickEnabledSignInOrChangePasswordButton();
Login.verifyMessageForUnsuccessfulLoginIsDisplayed();
Login.clearInputFieldForTenant();
});
it('should be able to log in as the new employee and initially set a new password', function() {
Login.enterTextInInputFieldForTenant(tenant);
Login.clickEnabledSignInOrChangePasswordButton();
Login.verifyUserIsOnChangePasswordPage();
Login.enterTextInInputFieldForNewPassword("xyz456?");
Login.enterTextInInputFieldForConfirmNewPassword("xyz456?");
Login.clickEnabledSignInOrChangePasswordButton();
// sign in with password just created
Login.enterTextInInputFieldForTenant(tenant);
Login.enterTextInInputFieldForUsername(employeeIdentifier);
Login.enterTextInInputFieldForPassword("xyz456?");
Login.clickEnabledSignInOrChangePasswordButton();
Login.clickButtonToOpenUserAccountMenu();
Login.verifyUserIsLoggedIn(employeeIdentifier);
Login.clickMenuItemSettings();
Login.verifyUserIsOnChangePasswordPage();
});
it('should not be able to change password if input in new password and confirm new password fields does not match', function(){
//new password and confirm password not matching
Login.enterTextInInputFieldForNewPassword("abc123?!");
Login.enterTextInInputFieldForConfirmNewPassword("abc123!?");
Login.verifyMessageThatPasswordsMustMatchIsDisplayed();
Login.verifySignInOrChangePasswordButtonIsDisabled();
});
it('should not be able to change password if password requirements are not met', function(){
//new password not according to requirements (too short)
Login.clearInputFieldForNewPassword();
Login.enterTextInInputFieldForNewPassword("abc");
Login.clearInputFieldForConfirmNewPassword();
Login.enterTextInInputFieldForConfirmNewPassword("abc");
//verify message that password has to have at least 8 chars is displayed
Login.verifySignInOrChangePasswordButtonIsDisabled();
});
it('button Change Password should be disabled if required input missing and input field should be marked as required', function() {
Login.enterTextInInputFieldForNewPassword("123!!");
Login.enterTextInInputFieldForConfirmNewPassword("123!!");
Login.verifySignInOrChangePasswordButtonIsEnabled();
Login.clearInputFieldForNewPassword();
Login.enterTextInInputFieldForNewPassword("");
Login.verifySignInOrChangePasswordButtonIsDisabled();
Login.verifyNewPasswordInputFieldMarkedAsRequired();
});
it('should be able to change password if all input is correct', function() {
});
});