| /* |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| */ |
| var helper = require('../helper.js'); |
| var Login = require('../Pages/Login.js'); |
| var Employees = require('../Pages/Employees.js'); |
| var Common = require('../Pages/Common.js'); |
| var Offices = require('../Pages/Offices'); |
| var Roles = require('../Pages/Roles'); |
| var Teller = require('../Pages/Teller'); |
| var Customers = require('../Pages/Customers'); |
| var Deposits = require('../Pages/Deposits'); |
| var Accounting = require('../Pages/Accounting'); |
| var Loans = require('../Pages/Loans'); |
| var CustomerLoans = require('../Pages/CustomerLoans'); |
| |
| |
| describe('Loans 3', function() { |
| var EC = protractor.ExpectedConditions; |
| employeeIdentifier = helper.getRandomString(6); |
| employeeIdentifier2 = helper.getRandomString(6); |
| officeIdentifier = helper.getRandomString(6); |
| tellerIdentifier = helper.getRandomString(4); |
| customerAccount = helper.getRandomString(5); |
| depositIdentifier = helper.getRandomString(4); |
| depositName = helper.getRandomString(8); |
| chequeReceivablesAccount = helper.getRandomString(4); |
| cashOverShortAccount = helper.getRandomString(4); |
| tellerAccount = helper.getRandomString(4); |
| revenueAccount = helper.getRandomString(4); |
| loanShortName = helper.getRandomString(6); |
| taskIdentifier = helper.getRandomString(3); |
| loanAccountShortName = helper.getRandomString(4); |
| |
| it('should create a new administrator role', function () { |
| Common.waitForThePageToFinishLoading(); |
| Roles.clickCreateNewRoleFromQuickAccess(); |
| Roles.enterTextIntoRoleIdentifierInput("Administrator"); |
| Common.verifyCardHasTitle("Create new role"); |
| Roles.selectCheckboxToGiveUserAllPermissions(); |
| Roles.clickEnabledSaveRoleButton(); |
| Common.verifyMessagePopupIsDisplayed("Role is going to be saved"); |
| Common.verifyCardHasTitle("Manage roles"); |
| }); |
| it('should create two new employees with administrator permissions', function () { |
| Employees.goToManageEmployeesViaSidePanel(); |
| Employees.createEmployee(employeeIdentifier, "Ian", "McEwan", "Administrator", "abc123!!"); |
| Employees.createEmployee(employeeIdentifier2, "Martin", "Amis", "Administrator", "abc123!!"); |
| Login.signOut(); |
| Login.logInForFirstTimeWithTenantUserAndPassword("playground", employeeIdentifier, "abc123!!", "abc123??"); |
| }); |
| it('should create new accounts', function () { |
| Accounting.goToAccountingViaSidePanel(); |
| Common.clickLinkShowForRowWithId("7000"); |
| Common.clickLinkShowForRowWithId("7200"); |
| Accounting.clickCreateNewAccountInLedger("7200"); |
| Accounting.enterTextIntoAccountIdentifierInputField(chequeReceivablesAccount); |
| Accounting.verifyRadioAssetToBeSelected(); |
| Accounting.verifyRadioAssetToBeDisabled(); |
| Accounting.enterTextIntoAccountNameInputField("Cheques Receivables"); |
| Accounting.clickButtonCreateAccount(); |
| Common.verifyMessagePopupIsDisplayed("Account is going to be saved"); |
| Accounting.goToAccountingViaSidePanel(); |
| Common.clickLinkShowForRowWithId("7000"); |
| Common.clickLinkShowForRowWithId("7300"); |
| Accounting.clickCreateNewAccountInLedger("7300"); |
| Accounting.enterTextIntoAccountIdentifierInputField(tellerAccount); |
| Accounting.verifyRadioAssetToBeSelected(); |
| Accounting.verifyRadioAssetToBeDisabled(); |
| Accounting.enterTextIntoAccountNameInputField("My teller"); |
| Accounting.clickButtonCreateAccount(); |
| Common.verifyMessagePopupIsDisplayed("Account is going to be saved"); |
| Accounting.goToAccountingViaSidePanel(); |
| Common.clickLinkShowForRowWithId("1000"); |
| Common.clickLinkShowForRowWithId("1300"); |
| Accounting.clickCreateNewAccountInLedger("1300"); |
| Accounting.enterTextIntoAccountIdentifierInputField(revenueAccount); |
| Accounting.verifyRadioRevenueToBeSelected(); |
| Accounting.enterTextIntoAccountNameInputField("Revenue from deposit charges"); |
| Accounting.clickButtonCreateAccount(); |
| Common.verifyMessagePopupIsDisplayed("Account is going to be saved"); |
| Accounting.goToAccountingViaSidePanel(); |
| Common.clickLinkShowForRowWithId("2000"); |
| Common.clickLinkShowForRowWithId("3300"); |
| Accounting.clickCreateNewAccountInLedger("3300"); |
| Accounting.enterTextIntoAccountIdentifierInputField(cashOverShortAccount); |
| Accounting.enterTextIntoAccountNameInputField("Cash over short account"); |
| Accounting.clickButtonCreateAccount(); |
| Common.verifyMessagePopupIsDisplayed("Account is going to be saved"); |
| }); |
| it('should create a headquarter office', function () { |
| Offices.goToManageOfficesViaSidePanel(); |
| Offices.verifyNoHeadquarterExistingYet(); |
| Offices.clickButtonCreateHeadquarter(); |
| Common.verifyCardHasTitle("Create new office"); |
| Offices.enterTextIntoOfficeIdentifierInputField("hqo1"); |
| Offices.enterTextIntoOfficeNameInputField("Headquarter Office Playground"); |
| Offices.clickEnabledContinueButtonForOfficeDetails(); |
| Offices.clickCreateOfficeButton(); |
| Common.verifyMessagePopupIsDisplayed("Office is going to be saved"); |
| }); |
| it('should create a new branch office', function () { |
| Offices.clickButtonCreateNewOffice(); |
| Common.verifyCardHasTitle("Create new office"); |
| Offices.enterTextIntoOfficeIdentifierInputField(officeIdentifier); |
| Offices.enterTextIntoOfficeNameInputField("Branch " + officeIdentifier); |
| Offices.clickEnabledContinueButtonForOfficeDetails(); |
| Offices.clickCreateOfficeButton(); |
| Common.verifyMessagePopupIsDisplayed("Office is going to be saved"); |
| Common.clickSearchButtonToMakeSearchInputFieldAppear(); |
| Common.enterTextInSearchInputFieldAndApplySearch(officeIdentifier); |
| Common.verifyFirstRowOfSearchResultHasTextAsId(officeIdentifier); |
| }); |
| it('should create a new teller for the branch office', function () { |
| Common.clickLinkShowForFirstRowInTable(); |
| Offices.goToManageTellersForOfficeByIdentifier(officeIdentifier); |
| Offices.clickCreateTellerForOfficeByIdentifier(officeIdentifier); |
| Offices.enterTextIntoTellerNumberInputField(tellerIdentifier); |
| Offices.enterTextIntoPasswordInputField("qazwsx123!!"); |
| Offices.enterTextIntoCashWithdrawalLimitInputField("1000"); |
| Offices.enterTextIntoTellerAccountInputFieldAndSelectMatchingEntry(tellerAccount); |
| Offices.enterTextIntoVaultAccountInputFieldAndSelectMatchingEntry("7351"); |
| Offices.enterTextIntoChequesReceivableAccountInputFieldAndSelectMatchingEntry(chequeReceivablesAccount); |
| Offices.enterTextIntoCashOverShortInputFieldAndSelectMatchingEntry(cashOverShortAccount); |
| Offices.clickCreateTellerButton(); |
| Common.verifyMessagePopupIsDisplayed("Teller is going to be saved"); |
| //workaround for current bug that teller is not always listed immediately |
| Common.clickBackButtonInTitleBar(); |
| Offices.goToManageTellersForOfficeByIdentifier(officeIdentifier); |
| Common.clickLinkShowForFirstRowInTable(); |
| }); |
| it('should open the teller and assign it to an employee', function () { |
| Offices.clickActionOpenForTellerOfOffice(tellerIdentifier, officeIdentifier); |
| Offices.enterTextIntoAssignedEmployeeInputField(employeeIdentifier); |
| Offices.selectOptionInListByName("McEwan, Ian"); |
| Offices.clickEnabledOpenTellerButton(); |
| Common.verifyMessagePopupIsDisplayed("Teller is going to be updated"); |
| Offices.verifyTellerStatusIs("OPEN"); |
| }); |
| it('should be able to create customer', function () { |
| Customers.goToManageCustomersViaSidePanel(); |
| Common.verifyCardHasTitle("Manage members"); |
| Customers.clickButtonOrLinkCreateNewMember(); |
| Common.verifyCardHasTitle("Create new member"); |
| Customers.enterTextIntoAccountInputField(customerAccount); |
| Customers.enterTextIntoFirstNameInputField("Thomas"); |
| Customers.enterTextIntoLastNameInputField("Pynchon"); |
| Customers.enterTextIntoDayOfBirthInputField("9211978"); |
| Customers.verifyIsMemberCheckboxSelected(); |
| Customers.clickEnabledContinueButtonForMemberDetails(); |
| Customers.enterTextIntoStreetInputField("800 Chatham Road #326"); |
| Customers.enterTextIntoCityInputField("Winston-Salem"); |
| Customers.selectCountryByName("Germany"); |
| Customers.clickEnabledContinueButtonForMemberAddress(); |
| Customers.clickEnabledCreateMemberButton(); |
| Common.verifyMessagePopupIsDisplayed("Member is going to be saved"); |
| Common.verifyCardHasTitle("Manage members"); |
| Common.clickSearchButtonToMakeSearchInputFieldAppear(); |
| Common.enterTextInSearchInputFieldAndApplySearch(customerAccount); |
| Common.verifyFirstRowOfSearchResultHasTextAsId(customerAccount); |
| }); |
| it('should activate the customer', function () { |
| Common.clickLinkShowForFirstRowInTable(); |
| Customers.verifyMemberHasStatusInactive(); |
| Customers.clickButtonGoToTasks(); |
| Customers.clickButtonActivate(); |
| Common.verifyMessagePopupIsDisplayed("Command is going to be executed"); |
| Customers.verifyMemberHasStatusActive(); |
| }); |
| it('should create a deposit account - Share', function () { |
| Deposits.goToDepositsViaSidePanel(); |
| Common.verifyCardHasTitle("Manage deposit products"); |
| Deposits.clickButtonCreateDepositAccount(); |
| Common.verifyCardHasTitle("Create new deposit product"); |
| Deposits.enterTextIntoShortNameInputField(depositIdentifier); |
| Deposits.verifyRadioCheckingIsSelected(); |
| Deposits.selectRadioButtonShare(); |
| Deposits.enterTextIntoNameInputField(depositName); |
| Deposits.enterTextIntoMinimumBalanceInputField("100"); |
| Deposits.verifyRadioAnnuallyIsSelected(); |
| Deposits.verifyCheckboxFlexibleInterestNotChecked(); |
| Deposits.enterTextIntoInterestInputField("0.05"); |
| Deposits.enterTextIntoCashAccountInputField("7352"); |
| Deposits.enterTextIntoExpenseAccountInputField("2820"); |
| Deposits.enterTextIntoEquityLedgerInputField("9100"); |
| Deposits.clickEnabledContinueButtonForProductDetails(); |
| Deposits.clickButtonAddCharge(); |
| Deposits.enterTextIntoChargeNameInputField("Account opening charge"); |
| Deposits.enterTextIntoIncomeAccountInputField(revenueAccount); |
| Deposits.enterTextIntoChargeAmountInputField("0"); |
| Deposits.selectTypeOfCharge("Account Opening"); |
| Deposits.clickEnabledCreateProductButton(); |
| Common.verifyMessagePopupIsDisplayed("Product is going to be saved"); |
| Common.verifyCardHasTitle("Manage deposit products"); |
| }); |
| it('should enable deposit product', function () { |
| Common.clickLinkShowForRowWithId(depositIdentifier); |
| Deposits.verifyProductHasStatusDisabled(); |
| Deposits.clickButtonEnableProduct(); |
| Common.verifyMessagePopupIsDisplayed("Product is going to be updated"); |
| Deposits.verifyProductHasStatusEnabled(); |
| }); |
| it('should assign deposit product to customer', function () { |
| Customers.goToManageCustomersViaSidePanel(); |
| Common.clickSearchButtonToMakeSearchInputFieldAppear(); |
| Common.enterTextInSearchInputFieldAndApplySearch(customerAccount); |
| Common.verifyFirstRowOfSearchResultHasTextAsId(customerAccount); |
| Common.clickLinkShowForRowWithId(customerAccount); |
| Customers.clickManageDepositAccountsForMember(customerAccount); |
| Customers.clickCreateDepositAccountForMember(customerAccount); |
| Customers.selectProduct(depositName); |
| Customers.clickEnabledButtonCreateDepositAccount(); |
| Common.verifyMessagePopupIsDisplayed("Deposit account is going to be saved"); |
| }); |
| it('create first loan product', function () { |
| Loans.goToLoanProductsViaSidePanel(); |
| Loans.clickButtonCreateLoanProduct(); |
| Loans.enterTextIntoShortNameInputField(loanShortName); |
| Loans.enterTextIntoNameInputField("My loan " + loanShortName); |
| Loans.enterTextIntoDescriptionInputField("My loan " + loanShortName); |
| Loans.enterTextIntoMinimumPrincipalInputField("10000"); |
| Loans.enterTextIntoMaximumPrincipalInputField("50000"); |
| //maximum term: 5 years |
| Loans.enterTextIntoTermInputField("5"); |
| Loans.selectRadioButtonYears(); |
| Loans.clickEnabledContinueButtonForProductDetails(); |
| Loans.enterTextIntoCashAccountInputField(tellerAccount); |
| Loans.enterTextIntoCustomerLoanLedgerInputField("7900"); |
| Loans.clickEnabledContinueButtonForLedgerAndAccountSettings(); |
| //interest settings |
| Loans.toggleInterestRangeToOn(); |
| Loans.enterTextIntoInterestRangeMinInputField("5.00"); |
| Loans.enterTextIntoInterestRangeMaxInputField("50.00"); |
| Loans.enterTextIntoIncomeAccountAccountInputField(revenueAccount); |
| Loans.enterTextIntoAccrualAccountInputField("7015"); |
| Loans.clickEnabledContinueButtonForInterestSettings(); |
| //fees |
| Loans.enterTextIntoProcessingFeeIncomeAccountInputField("1313"); |
| Loans.enterTextIntoOriginatingFeeIncomeAccountInputField("1313"); |
| Loans.enterTextIntoDisbursementFeeIncomeAccountInputField("1313"); |
| Loans.enterTextIntoLateFeeIncomeAccountInputField("1311"); |
| Loans.enterTextIntoLateFeeAccrualAccountInputField("7810"); |
| Loans.clickEnabledContinueButtonForFeeIncomeAccounts(); |
| Loans.enterTextIntoArrearsAllowanceAccountInputField("3040"); |
| Loans.clickEnabledCreateProductButton(); |
| Common.verifyMessagePopupIsDisplayed("Product is going to be saved"); |
| }); |
| it('should enable the loan product', function () { |
| Common.clickLinkShowForRowWithId(loanShortName); |
| Loans.clickButtonEnableProduct(); |
| Common.verifyMessagePopupIsDisplayed("Product is going to be enabled"); |
| }); |
| it('should create tasks for loan product', function () { |
| Loans.clickLinkManageTasksForLoanProduct(loanShortName); |
| Loans.clickButtonCreateTaskForLoanProduct(loanShortName); |
| //create task to be executed on opening loan - mandatory |
| Loans.enterTextIntoTaskIdentifierInputField("MyFirstTask"); |
| Loans.enterTextIntoTaskNameInputField("My first task"); |
| Loans.enterTextIntoTaskDescriptionInputField("Mandatory task on opening loan"); |
| Loans.checkMandatoryCheckbox(); |
| Loans.clickEnabledCreateTaskButton(); |
| Common.verifyMessagePopupIsDisplayed("Task is going to be created"); |
| //details |
| Loans.verifyNameForTaskInRow("My first task", 1); |
| Common.clickLinkShowForFirstRowInTable(); |
| Loans.verifyActionsForTask("OPEN"); |
| Loans.verifyMandatoryForTask("true"); |
| Loans.verifyFourEyesForTask("false"); |
| Common.clickBackButtonInTitleBar(); |
| //create task to be executed on approving loan - mandatory & four- eyes |
| Loans.clickButtonCreateTaskForLoanProduct(loanShortName); |
| Loans.enterTextIntoTaskIdentifierInputField("MySecondTask"); |
| Loans.enterTextIntoTaskNameInputField("My second task"); |
| Loans.enterTextIntoTaskDescriptionInputField("Mandatory four-eyes task on approving loan"); |
| Loans.checkMandatoryCheckbox(); |
| Loans.checkFourEyesCheckbox(); |
| Loans.selectFirstAction("can be approved"); |
| Loans.clickEnabledCreateTaskButton(); |
| Common.verifyMessagePopupIsDisplayed("Task is going to be created"); |
| //details |
| Loans.verifyNameForTaskInRow("My second task", 2); |
| Common.clickLinkShowForRowWithId("MySecondTask"); |
| Loans.verifyActionsForTask("APPROVE"); |
| Loans.verifyMandatoryForTask("true"); |
| Loans.verifyFourEyesForTask("true"); |
| Common.clickBackButtonInTitleBar(); |
| //create option task to be executed on opening and on approving loan |
| Loans.clickButtonCreateTaskForLoanProduct(loanShortName); |
| Loans.enterTextIntoTaskIdentifierInputField("MyThirdTask"); |
| Loans.enterTextIntoTaskNameInputField("My third task"); |
| Loans.enterTextIntoTaskDescriptionInputField("Optional task on approving and disbursing loan"); |
| Loans.selectFirstAction("can be approved"); |
| Loans.clickButtonAddAction(); |
| Loans.selectSecondAction("can be disbursed"); |
| Loans.clickEnabledCreateTaskButton(); |
| Common.verifyMessagePopupIsDisplayed("Task is going to be created"); |
| //details |
| Loans.verifyNameForTaskInRow("My third task", 3); |
| Common.clickLinkShowForRowWithId("MyThirdTask"); |
| Loans.verifyActionsForTask("DISBURSE,APPROVE"); |
| Loans.verifyMandatoryForTask("false"); |
| Loans.verifyFourEyesForTask("false"); |
| Common.clickBackButtonInTitleBar(); |
| //create task to be executed on denying/closing loan |
| Loans.clickButtonCreateTaskForLoanProduct(loanShortName); |
| Loans.enterTextIntoTaskIdentifierInputField("MyFourthTask"); |
| Loans.enterTextIntoTaskNameInputField("My fourth task"); |
| Loans.enterTextIntoTaskDescriptionInputField("Mandatory task on denying and closing loan"); |
| Loans.checkMandatoryCheckbox(); |
| Loans.selectFirstAction("can be denied"); |
| Loans.clickButtonAddAction(); |
| Loans.selectSecondAction("can be closed"); |
| Loans.clickEnabledCreateTaskButton(); |
| Common.verifyMessagePopupIsDisplayed("Task is going to be created"); |
| //details |
| Loans.verifyNameForTaskInRow("My fourth task", 2); |
| Common.clickLinkShowForRowWithId("MyFourthTask"); |
| Loans.verifyActionsForTask("DENY,CLOSE"); |
| Loans.verifyMandatoryForTask("true"); |
| Loans.verifyFourEyesForTask("false"); |
| Common.clickBackButtonInTitleBar(); |
| //create task to be executed for all five actions |
| Loans.clickButtonCreateTaskForLoanProduct(loanShortName); |
| Loans.enterTextIntoTaskIdentifierInputField("MyFifthTask"); |
| Loans.enterTextIntoTaskNameInputField("My fifth task"); |
| Loans.enterTextIntoTaskDescriptionInputField("Optional task on everything"); |
| Loans.clickButtonAddAction(); |
| Loans.selectSecondAction("can be approved"); |
| Loans.clickButtonAddAction(); |
| Loans.selectThirdAction("can be disbursed"); |
| Loans.clickButtonAddAction(); |
| Loans.selectFourthAction("can be denied"); |
| Loans.clickButtonAddAction(); |
| Loans.selectFifthAction("can be closed"); |
| Loans.clickEnabledCreateTaskButton(); |
| Common.verifyMessagePopupIsDisplayed("Task is going to be created"); |
| //details |
| Loans.verifyNameForTaskInRow("My fifth task", 1); |
| Common.clickLinkShowForRowWithId("MyFifthTask"); |
| Loans.verifyActionsForTask("DISBURSE,DENY,APPROVE,CLOSE,OPEN"); |
| Loans.verifyMandatoryForTask("false"); |
| Loans.verifyFourEyesForTask("false"); |
| Loans.clickButtonEditTaskForLoanProduct(); |
| Loans.checkFourEyesCheckbox(); |
| Loans.clickEnabledUpdateTaskButton(); |
| Common.verifyMessagePopupIsDisplayed("Task is going to be created"); |
| Common.clickBackButtonInTitleBar(); |
| }); |
| it('add another task, edit and delete it', function () { |
| Loans.clickButtonCreateTaskForLoanProduct(loanShortName); |
| //create task to be executed on opening loan - mandatory |
| Loans.enterTextIntoTaskIdentifierInputField("MyLastTask"); |
| Loans.enterTextIntoTaskNameInputField("My last task"); |
| Loans.enterTextIntoTaskDescriptionInputField("xxx"); |
| Loans.checkMandatoryCheckbox(); |
| Loans.clickButtonAddAction(); |
| Loans.selectSecondAction("can be approved"); |
| Loans.clickButtonAddAction(); |
| Loans.selectThirdAction("can be disbursed"); |
| Loans.clickButtonAddAction(); |
| Loans.selectFourthAction("can be denied"); |
| Loans.clickButtonAddAction(); |
| Loans.selectFifthAction("can be closed"); |
| Loans.clickEnabledCreateTaskButton(); |
| Common.verifyMessagePopupIsDisplayed("Task is going to be created"); |
| Common.clickLinkShowForRowWithId("MyLastTask"); |
| Loans.clickButtonEditTaskForLoanProduct(); |
| Loans.enterTextIntoTaskNameInputField("To Be Deleted"); |
| Loans.enterTextIntoTaskDescriptionInputField("Not mandatory but four eyes"); |
| Loans.uncheckMandatoryCheckbox(); |
| Loans.checkFourEyesCheckbox(); |
| //remove actions |
| Loans.clickFirstRemoveButton(); |
| Loans.clickFirstRemoveButton(); |
| Loans.clickEnabledUpdateTaskButton(); |
| Common.verifyMessagePopupIsDisplayed("Task is going to be created"); |
| Loans.verifyActionsForTask("APPROVE,CLOSE,OPEN"); |
| Loans.verifyMandatoryForTask("false"); |
| Loans.verifyFourEyesForTask("true"); |
| Loans.clickButtonDeleteTaskForLoanProduct(); |
| Common.confirmAction(); |
| Common.verifyMessagePopupIsDisplayed("Task is going to be deleted"); |
| }); |
| it('should open deposit account', function () { |
| Teller.goToTellerManagementViaSidePanel(); |
| Teller.enterTextIntoTellerNumberInputField(tellerIdentifier); |
| Teller.enterTextIntoPasswordInputField("qazwsx123!!"); |
| Teller.clickEnabledUnlockTellerButton(); |
| Common.verifyMessagePopupIsDisplayed("Teller drawer unlocked"); |
| Teller.enterTextIntoSearchInputField(customerAccount); |
| //will be successful even if the customer does not exist, clicks one of the buttons too quickly: need to fix |
| Teller.clickButtonShowAtIndex(0); |
| Teller.verifyCardTitleHasNameOfCustomer("Thomas Pynchon"); |
| Teller.clickOnOpenAccountForCustomer(customerAccount); |
| Common.verifyCardHasTitle("Teller transaction"); |
| Teller.selectAccountToBeAffected(customerAccount + ".9100.00001(" + depositIdentifier +")"); |
| Teller.enterTextIntoAmountInputField("100"); |
| Teller.clickEnabledCreateTransactionButton(); |
| Teller.verifyTransactionAmount("100"); |
| Teller.verifyChargesPayedInCashCheckboxChecked(); |
| Teller.clickEnabledConfirmTransactionButton(); |
| Common.verifyMessagePopupIsDisplayed("Transaction successfully confirmed"); |
| }); |
| it('should assign loan product to customer', function () { |
| Customers.goToManageCustomersViaSidePanel(); |
| Common.clickSearchButtonToMakeSearchInputFieldAppear(); |
| Common.enterTextInSearchInputFieldAndApplySearch(customerAccount); |
| Common.verifyFirstRowOfSearchResultHasTextAsId(customerAccount); |
| Common.clickLinkShowForRowWithId(customerAccount); |
| Customers.clickManageLoanAccountsForMember(customerAccount); |
| Customers.clickCreateLoanAccountForMember(customerAccount); |
| Customers.selectProduct("My loan " + loanShortName); |
| Customers.enterTextIntoShortNameInputField(loanAccountShortName); |
| CustomerLoans.enterTextIntoPrincipalAmountInputField("10000"); |
| CustomerLoans.enterTextIntoInterestRateInputField("50.00") |
| CustomerLoans.enterTextIntoTermInputField("12"); |
| CustomerLoans.selectDayForMonthlyRepayment("3."); |
| CustomerLoans.selectDepositAccount(customerAccount + ".9100.00001(" + depositIdentifier + ")"); |
| CustomerLoans.clickEnabledCreateMemberLoanButton(); |
| Common.verifyMessagePopupIsDisplayed("Case is going to be saved"); |
| Customers.verifyStateOfLoanAccountWithIdIs(loanAccountShortName, "CREATED"); |
| }); |
| it('verify tasks are as expected on executing actions OPEN, APPROVE and DENY', function () { |
| Common.clickLinkShowForRowWithId(loanAccountShortName); |
| CustomerLoans.goToTasksForCustomerLoan(customerAccount, loanShortName, loanAccountShortName); |
| //button OPEN disabled since there is mandatory task |
| CustomerLoans.verifyButtonForTaskDisabled("OPEN"); |
| //verify there are two tasks, one mandatory and one optional |
| CustomerLoans.verifyMandatoryTaskIsPresentAtPosition("My first task", "Mandatory task on opening loan", 1); |
| CustomerLoans.verifyOptionalTaskIsPresent("My fifth task", "Optional task on everything", 2); |
| //execute optional task |
| CustomerLoans.selectExecuteTaskCheckboxForTaskAtPosition(2); |
| Common.verifyMessagePopupIsDisplayed("Task executed successfully"); |
| CustomerLoans.verifyTaskAtPositionExecutedBy(2, employeeIdentifier); |
| CustomerLoans.verifyButtonForTaskDisabled("OPEN"); |
| //leave tasks and verify task remains executed |
| Common.clickBackButtonInTitleBar(); |
| CustomerLoans.goToTasksForCustomerLoan(customerAccount, loanShortName, loanAccountShortName); |
| CustomerLoans.verifyExecuteTaskCheckboxSelectedAtPosition(2); |
| CustomerLoans.verifyTaskAtPositionExecutedBy(2, employeeIdentifier); |
| CustomerLoans.verifyButtonForTaskDisabled("OPEN"); |
| //execute mandatory task |
| CustomerLoans.selectExecuteTaskCheckboxForTaskAtPosition(1); |
| Common.verifyMessagePopupIsDisplayed("Task executed successfully"); |
| CustomerLoans.verifyTaskAtPositionExecutedBy(1, employeeIdentifier); |
| CustomerLoans.verifyButtonForTaskEnabled("OPEN"); |
| //leave tasks and verify task remains executed |
| Common.clickBackButtonInTitleBar(); |
| CustomerLoans.goToTasksForCustomerLoan(customerAccount, loanShortName, loanAccountShortName); |
| CustomerLoans.verifyExecuteTaskCheckboxSelectedAtPosition(1); |
| CustomerLoans.verifyTaskAtPositionExecutedBy(1, employeeIdentifier); |
| CustomerLoans.verifyButtonForTaskEnabled("OPEN"); |
| CustomerLoans.clickButtonForTask("OPEN"); |
| CustomerLoans.clickButtonForTask("OPEN"); |
| Common.verifyMessagePopupIsDisplayed("Case is going to be updated"); |
| CustomerLoans.goToTasksForCustomerLoan(customerAccount, loanShortName, loanAccountShortName); |
| //actions APPROVE (three tasks) and DENY (two tasks) |
| //approve; mandatory four-eyes task |
| CustomerLoans.verifyButtonForTaskDisabled("APPROVE"); |
| CustomerLoans.verifyMandatoryTaskIsPresentAtPosition("My second task", "Mandatory four-eyes task on approving loan", 1); |
| //verify checkbox is disabled for four-eyes task |
| //ToDo: CustomerLoans.verifyExecuteTaskCheckboxDisabledAtPosition(1); |
| CustomerLoans.verifyOptionalTaskIsPresent("My third task", "Optional task on approving and disbursing loan", 2); |
| //verify checkbox is not selected, select and deselect |
| CustomerLoans.verifyExecuteTaskCheckboxNotSelectedAtPosition(2); |
| CustomerLoans.selectExecuteTaskCheckboxForTaskAtPosition(2); |
| Common.verifyMessagePopupIsDisplayed("Task executed successfully"); |
| CustomerLoans.verifyTaskAtPositionExecutedBy(2, employeeIdentifier); |
| CustomerLoans.deselectExecuteTaskCheckboxForTaskAtPosition(2); |
| Common.verifyMessagePopupIsDisplayed("Task executed successfully"); |
| CustomerLoans.verifyTaskAtPositionReversedBy(2, employeeIdentifier); |
| //verify checkbox is selected and task already executed |
| CustomerLoans.verifyOptionalTaskIsPresent("My fifth task", "Optional task on everything", 3); |
| CustomerLoans.verifyExecuteTaskCheckboxSelectedAtPosition(3); |
| CustomerLoans.verifyTaskAtPositionExecutedBy(3, employeeIdentifier); |
| //deny; mandatory task and optional task (already executed) |
| CustomerLoans.verifyButtonForTaskDisabled("DENY"); |
| CustomerLoans.verifyMandatoryTaskIsPresentAtPosition("My fourth task", "Mandatory task on denying and closing loan", 4); |
| CustomerLoans.selectExecuteTaskCheckboxForTaskAtPosition(4); |
| Common.verifyMessagePopupIsDisplayed("Task executed successfully"); |
| CustomerLoans.verifyButtonForTaskEnabled("DENY"); |
| CustomerLoans.verifyOptionalTaskIsPresent("My fifth task", "Optional task on everything", 5); |
| CustomerLoans.deselectExecuteTaskCheckboxForTaskAtPosition(5); |
| CustomerLoans.verifyButtonForTaskEnabled("DENY"); |
| }); |
| it('should be able to approve loan as a different employee', function () { |
| //ToDo: workaround for logout bug |
| Customers.goToManageCustomersViaSidePanel(); |
| Login.signOut(); |
| Login.logInForFirstTimeWithTenantUserAndPassword("playground", employeeIdentifier2, "abc123!!", "abc123??"); |
| Customers.goToManageCustomersViaSidePanel(); |
| Common.clickSearchButtonToMakeSearchInputFieldAppear(); |
| Common.enterTextInSearchInputFieldAndApplySearch(customerAccount); |
| Common.clickLinkShowForRowWithId(customerAccount); |
| Customers.clickManageLoanAccountsForMember(customerAccount); |
| Common.clickLinkShowForRowWithId(loanAccountShortName); |
| CustomerLoans.goToTasksForCustomerLoan(customerAccount, loanShortName, loanAccountShortName); |
| CustomerLoans.verifyButtonForTaskDisabled("APPROVE"); |
| CustomerLoans.selectExecuteTaskCheckboxForTaskAtPosition(1); |
| Common.verifyMessagePopupIsDisplayed("Task executed successfully"); |
| CustomerLoans.verifyButtonForTaskEnabled("APPROVE"); |
| CustomerLoans.verifyExecuteTaskCheckboxNotSelectedAtPosition(2); |
| CustomerLoans.verifyExecuteTaskCheckboxNotSelectedAtPosition(3); |
| CustomerLoans.verifyExecuteTaskCheckboxSelectedAtPosition(4); |
| CustomerLoans.verifyExecuteTaskCheckboxNotSelectedAtPosition(5); |
| CustomerLoans.verifyButtonForTaskEnabled("DENY"); |
| CustomerLoans.clickButtonForTask("APPROVE"); |
| CustomerLoans.clickButtonForTask("APPROVE"); |
| Common.verifyMessagePopupIsDisplayed("Case is going to be updated"); |
| }); |
| it('should be able to close loan - tasks as expected for actions DISBURSE and CLOSE', function () { |
| //currently error if this is done too quickly; workaround |
| browser.sleep("10000"); |
| CustomerLoans.goToTasksForCustomerLoan(customerAccount, loanShortName, loanAccountShortName); |
| CustomerLoans.verifyButtonForTaskEnabled("CLOSE"); |
| CustomerLoans.verifyButtonForTaskEnabled("DISBURSE"); |
| //mandatory task on close already executed |
| CustomerLoans.verifyExecuteTaskCheckboxSelectedAtPosition(1); |
| //optional tasks not executed |
| CustomerLoans.verifyExecuteTaskCheckboxNotSelectedAtPosition(2); |
| CustomerLoans.verifyExecuteTaskCheckboxNotSelectedAtPosition(3); |
| CustomerLoans.verifyExecuteTaskCheckboxNotSelectedAtPosition(4); |
| CustomerLoans.clickButtonForTask("CLOSE"); |
| CustomerLoans.clickButtonForTask("CLOSE"); |
| Common.verifyMessagePopupIsDisplayed("Case is going to be updated"); |
| CustomerLoans.verifyLoanHasStatus("CLOSED"); |
| Common.clickBackButtonInTitleBar(); |
| CustomerLoans.verifyCurrentStatusForLoanAccountInRow("CLOSED", 1); |
| browser.pause(); |
| }); |
| it('can task be added/edited/deleted once product assigned to customer', function () { |
| //??? |
| //not sure if this should be possible, currently bug |
| //actions available but nothing happens, UI breaks |
| }); |
| }); |