ATEN-384: Protractor tests - Cheque management
diff --git a/Pages/Accounting b/Pages/Accounting
index d9f11f1..204176e 100644
--- a/Pages/Accounting
+++ b/Pages/Accounting
@@ -153,6 +153,7 @@
}).click();
},
verifyFirstJournalEntry: function(transactionType, transactionAmount){
+ browser.sleep(500);
expect($$("fims-layout-card-over .mat-list-item .mat-list-text p").first().getText().then(function(text){
return text === transactionType;
})).toBe(true);
@@ -175,5 +176,14 @@
expect($$("fims-layout-card-over .mat-list-item .mat-list-text p").get(5).getText().then(function(text){
return text === transactionAmount;
})).toBe(true);
+ },
+ verifyFourthJournalEntry: function(transactionType, transactionAmount){
+ browser.sleep(500);
+ expect($$("fims-layout-card-over .mat-list-item .mat-list-text p").get(6).getText().then(function(text){
+ return text === transactionType;
+ })).toBe(true);
+ expect($$("fims-layout-card-over .mat-list-item .mat-list-text p").get(7).getText().then(function(text){
+ return text === transactionAmount;
+ })).toBe(true);
}
};
\ No newline at end of file
diff --git a/Pages/Cheques.js b/Pages/Cheques.js
index 283cd58..3dbd536 100644
--- a/Pages/Cheques.js
+++ b/Pages/Cheques.js
@@ -21,6 +21,7 @@
module.exports = {
enterTextIntoChequeNumberInputField: function(text) {
+ browser.executeScript("arguments[0].scrollIntoView();", chequeNumberInput.getWebElement());
browser.wait(EC.visibilityOf(chequeNumberInput), 5000);
chequeNumberInput.click().sendKeys(text);
},
@@ -70,6 +71,9 @@
verifyWarningIsDisplayedIfIssuingBankCouldNotBeDetermined: function(){
browser.wait(EC.visibilityOf(warningIssuingBankIssuerCouldNotBeDetermined), 2000);
},
+ verifyWarningIsNotDisplayedIfIssuingBankCouldBeDetermined: function(){
+ browser.wait(EC.invisibilityOf(warningIssuingBankIssuerCouldNotBeDetermined), 2000);
+ },
verifyPayeeHasTextAndCannotBeChanged: function(customerName){
expect(payeeInput.getAttribute("value")).toEqual(customerName);
expect(payeeInput.isEnabled()).toBe(false);
@@ -79,6 +83,18 @@
dateIssuedInput.sendKeys(protractor.Key.ARROW_LEFT);
dateIssuedInput.sendKeys(date);
},
+ verifyIssuingBankHasText: function(issuingBank){
+ expect(issuingBankInput.getAttribute("value")).toEqual(issuingBank);
+ },
+ verifyIssuingBankHasError: function(){
+ expect(issuingBankInput.element(by.xpath("..")).element(by.xpath("..")).element(by.xpath("..")).$("md-error").getText()).toEqual("Required");
+ },
+ verifyIssuerHasText: function(issuer){
+ expect(issuerInput.getAttribute("value")).toEqual(issuer);
+ },
+ verifyIssuerHasError: function(){
+ expect(issuerInput.element(by.xpath("..")).element(by.xpath("..")).element(by.xpath("..")).$("md-error").getText()).toEqual("Required");
+ },
checkCheckboxIsChequeOpen: function(){
checkboxIsChequeOpen.click();
},
@@ -227,4 +243,12 @@
});
}).click();
},
+ verifyErrorMessageDisplayedWithTitleAndText: function(title, message){
+ browser.wait(EC.visibilityOf($("td-alert-dialog")), 2000);
+ expect($("td-dialog-title").getText()).toEqual(title);
+ expect($("td-dialog-content").getText()).toEqual(message);
+ },
+ clickButtonOKInErrorMessage: function(){
+ $("td-dialog-actions button").click();
+ }
};
\ No newline at end of file
diff --git a/Specs/cheque_management.js b/Specs/cheque_management.js
index d4a80d5..7855b0d 100644
--- a/Specs/cheque_management.js
+++ b/Specs/cheque_management.js
@@ -1,3 +1,8 @@
+//Prerequisites:
+//Role "Administrator" and headquarter office already exist
+//No tasks need to be executed in order to activate a customer
+//ToDo: Figure out which roles best to use for which kind of actions instead of using employee with "Administrator" role
+
var helper = require('../helper.js');
var Login = require('../Pages/Login.js');
var Employees = require('../Pages/Employees.js');
@@ -30,21 +35,6 @@
branchSortCode = helper.getRandomString(11);
branchSortCode2 = helper.getRandomString(11);
- //what role would be best in order to clear cheques and verify correctness of bookings?
-
- it('should create a new administrator role', function () {
- Common.waitForThePageToFinishLoading();
- Roles.clickCreateNewRoleFromQuickAccess();
- Roles.enterTextIntoRoleIdentifierInput("Administrator");
- Roles.verifyCardHasTitleCreateRole();
- Roles.selectCheckboxToGiveUserAllPermissions();
- Roles.clickEnabledSaveRoleButton();
- Common.verifyMessagePopupIsDisplayed("Role is going to be saved");
- Roles.verifyCardHasTitleManageRoles();
- });
- it('should create a new teller role', function () {
- //TBD
- });
it('should create new accounts', function () {
Accounting.goToAccountingViaSidePanel();
Common.clickLinkShowForRowWithId("7000");
@@ -81,19 +71,8 @@
Login.signOut();
Login.logInForFirstTimeWithTenantUserAndPassword("playground", employeeIdentifier, "abc123!!", "abc123??");
});
-
- it('should create a headquarter office', function () {
+ it('should create a new branch office and a teller for the branch office', function () {
Offices.goToManageOfficesViaSidePanel();
- Offices.verifyNoHeadquarterExistingYet();
- Offices.clickButtonCreateHeadquarter();
- Offices.verifyCardHasTitleCreateOffice();
- Offices.enterTextIntoOfficeIdentifierInputField("hqo1");
- Offices.enterTextIntoOfficeNameInputField("Headquarter Office Playground");
- Offices.clickEnabledContinueButtonForOfficeDetails();
- Offices.clickEnabledCreateOfficeButton();
- Common.verifyMessagePopupIsDisplayed("Office is going to be saved");
- });
- it('should create a new branch office', function () {
Offices.clickButtonCreateNewOffice();
Offices.verifyCardHasTitleCreateOffice();
Offices.enterTextIntoOfficeIdentifierInputField(officeIdentifier);
@@ -104,8 +83,6 @@
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);
@@ -131,7 +108,7 @@
Common.verifyMessagePopupIsDisplayed("Teller is going to be updated");
Offices.verifyTellerStatusIs("OPEN");
});
- it('should be able to create customer', function () {
+ it('should create customer and activate customer', function () {
Customers.goToManageCustomersViaSidePanel();
Customers.verifyCardHasTitleManageMembers();
Customers.clickButtonOrLinkCreateNewCustomer();
@@ -152,8 +129,6 @@
Common.clickSearchButtonToMakeSearchInputFieldAppear();
Common.enterTextInSearchInputFieldAndApplySearch(customerAccount);
Common.verifyFirstRowOfSearchResultHasTextAsId(customerAccount);
- });
- it('should activate the customer', function () {
Common.clickLinkShowForFirstRowInTable();
Customers.verifyMemberHasStatusInactive();
Customers.clickButtonGoToTasks();
@@ -161,7 +136,7 @@
Common.verifyMessagePopupIsDisplayed("Command is going to be executed");
Customers.verifyMemberHasStatusActive();
});
- it('should create a deposit account - Checking with opening charge', function () {
+ it('should create a deposit product and enable the product', function () {
Deposits.goToDepositsViaSidePanel();
Deposits.verifyCardHasTitle("Manage deposit products");
Deposits.clickButtonCreateDepositAccount();
@@ -190,15 +165,13 @@
Deposits.clickEnabledCreateProductButton();
Common.verifyMessagePopupIsDisplayed("Product is going to be saved");
Deposits.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 () {
+ it('should assign deposit product to the customer and open the account', function () {
Customers.goToManageCustomersViaSidePanel();
Common.clickSearchButtonToMakeSearchInputFieldAppear();
Common.enterTextInSearchInputFieldAndApplySearch(customerAccount);
@@ -215,15 +188,12 @@
Common.clickLinkShowForRowWithId(depositIdentifier);
Customers.verifyDepositAccountHasStatus("PENDING");
Customers.verifyDepositAccountBalanceIs("0.00");
- });
- it('should be able to open 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);
@@ -243,6 +213,8 @@
Cheques.clickButtonDetermineFromMICR();
Cheques.verifyWarningIsDisplayedIfIssuingBankCouldNotBeDetermined();
//Issuing Bank/Issuer show error
+ Cheques.verifyIssuingBankHasError();
+ Cheques.verifyIssuerHasError();
Cheques.enterTextIntoIssuingBankInputField("BoA");
Cheques.enterTextIntoIssuerInputField("Paul Auster");
Cheques.verifyPayeeHasTextAndCannotBeChanged("Thomas Pynchon");
@@ -282,8 +254,8 @@
Accounting.enterTextIntoSearchAccountInputField(customerAccount + ".9100.00001");
Accounting.clickSearchButton();
Accounting.verifyFirstJournalEntry("Account Opening", "Amount: 500.00");
- Accounting.verifySecondJournalEntry("Order Cheque", "Amount: 5000.00");
- //Accounting.verifyThirdJournalEntry("Order Cheque", "Amount: 300.00");
+ Accounting.verifySecondJournalEntry("Order Cheque", "Amount: 5,000.00");
+ Accounting.verifyThirdJournalEntry("Open Cheque", "Amount: 300.00");
Common.clickBackButtonInTitleBar();
Common.clickLinkShowForRowWithId("7000");
Common.clickLinkShowForRowWithId("7200");
@@ -293,10 +265,10 @@
Accounting.verifyTransactionMessageForRow("ORCQ", 1);
Accounting.verifyTransactionAmountForRow("5000", 1);
Accounting.verifyTransactionBalanceForRow("5000", 1);
- //Accounting.verifyTransactionTypeForRow("DEBIT", 2);
- //Accounting.verifyTransactionMessageForRow("ORCQ", 2);
- //Accounting.verifyTransactionAmountForRow("300", 1);
- //Accounting.verifyTransactionBalanceForRow("5300", 1);
+ Accounting.verifyTransactionTypeForRow("DEBIT", 2);
+ Accounting.verifyTransactionMessageForRow("OPCQ", 2);
+ Accounting.verifyTransactionAmountForRow("300", 2);
+ Accounting.verifyTransactionBalanceForRow("5300", 2);
Common.clickBackButtonInTitleBar();
Common.clickBackButtonInTitleBar();
Common.clickBackButtonInTitleBar();
@@ -309,27 +281,53 @@
Accounting.verifyTransactionMessageForRow("ORCQ", 2);
Accounting.verifyTransactionAmountForRow("5000", 2);
Accounting.verifyTransactionBalanceForRow("5500", 2);
- //Accounting.verifyTransactionTypeForRow("CREDIT", 3);
- //Accounting.verifyTransactionMessageForRow("ORCQ", 3);
- //Accounting.verifyTransactionAmountForRow("300", 3);
- //Accounting.verifyTransactionBalanceForRow("5800", 3);
+ Accounting.verifyTransactionTypeForRow("CREDIT", 3);
+ Accounting.verifyTransactionMessageForRow("OPCQ", 3);
+ Accounting.verifyTransactionAmountForRow("300", 3);
+ Accounting.verifyTransactionBalanceForRow("5800", 3);
});
- //verify transactions
it('cheques should be pending clearance - approve first cheque/cancel second cheque', function () {
Accounting.goToAccountingViaSidePanel();
Accounting.goToChequeClearing();
Cheques.verifyStateForChequeInRow("PENDING", 1);
//open cheque still not appearing
- //Cheques.verifyStateForChequeInRow("PENDING", 2);
+ Cheques.verifyStateForChequeInRow("PENDING", 2);
Cheques.clickButtonApproveForChequeWithIdentifier("123456~" + branchSortCode + "~789789");
Cheques.cancelAction();
Cheques.clickButtonApproveForChequeWithIdentifier("123456~" + branchSortCode + "~789789");
Cheques.confirmAction();
- Cheques.verifyStateForChequeInRow("PROCESSED");
+ //Cheques.verifyStateForChequeInRow("PROCESSED", 1);
Cheques.clickButtonCancelForChequeWithIdentifier("123456~" + branchSortCode2 + "~789789");
Cheques.confirmAction();
- Cheques.verifyStateForChequeInRow("CANCELED");
- browser.pause();
+ //Cheques.verifyStateForChequeInRow("CANCELED", 2);
+ });
+ it('cheque should have been reverted as expected', function () {
+ Accounting.goToAccountingViaSidePanel();
+ Accounting.goToJournalEntries();
+ Accounting.enterTextIntoSearchAccountInputField(customerAccount + ".9100.00001");
+ Accounting.clickSearchButton();
+ Accounting.verifyFourthJournalEntry("Cheque Reversal", "Amount: 300.00");
+ Common.clickBackButtonInTitleBar();
+ Common.clickLinkShowForRowWithId("7000");
+ Common.clickLinkShowForRowWithId("7200");
+ Common.clickLinkShowForRowWithId(chequesReceivableAccount);
+ Accounting.viewAccountEntriesForAccount(chequesReceivableAccount);
+ Accounting.verifyTransactionTypeForRow("CREDIT", 3);
+ Accounting.verifyTransactionMessageForRow("CQRV", 3);
+ Accounting.verifyTransactionAmountForRow("300", 3);
+ Accounting.verifyTransactionBalanceForRow("5000", 3);
+ Common.clickBackButtonInTitleBar();
+ Common.clickBackButtonInTitleBar();
+ Common.clickBackButtonInTitleBar();
+ Common.clickBackButtonInTitleBar();
+ Common.clickLinkShowForRowWithId("9000");
+ Common.clickLinkShowForRowWithId("9100");
+ Common.clickLinkShowForRowWithId(customerAccount + ".9100.00001");
+ Accounting.viewAccountEntriesForAccount(customerAccount + ".9100.00001");
+ Accounting.verifyTransactionTypeForRow("DEBIT", 4);
+ Accounting.verifyTransactionMessageForRow("CQRV", 4);
+ Accounting.verifyTransactionAmountForRow("300", 4);
+ Accounting.verifyTransactionBalanceForRow("5500", 4);
});
it('should create another customer', function () {
Customers.goToManageCustomersViaSidePanel();
@@ -378,5 +376,90 @@
Cheques.clickIssueChequesButton();
Common.verifyMessagePopupIsDisplayed("Cheques are going to be issued");
});
+ it('customer should be able to cash cheque - cheque is not open/on us', function () {
+ Teller.goToTellerManagementViaSidePanel();
+ Teller.enterTextIntoSearchInputField(customerAccount);
+ Teller.clickButtonShowAtIndex(0);
+ Teller.verifyCardTitleHasNameOfCustomer("Thomas Pynchon");
+ Teller.clickOnCashChequeForCustomer(customerAccount);
+ Cheques.enterTextIntoChequeNumberInputField("200");
+ Cheques.enterTextIntoBranchSortCodeInputField(officeIdentifier);
+ Cheques.enterTextIntoAccountNumberInputField(customerAccount2 + ".9100.00001");
+ Cheques.clickButtonDetermineFromMICR();
+ Cheques.verifyWarningIsNotDisplayedIfIssuingBankCouldBeDetermined();
+ Cheques.verifyPayeeHasTextAndCannotBeChanged("Thomas Pynchon");
+ Cheques.enterTextIntoDateIssuedInputField("992017");
+ Cheques.verifyWarningIsDisplayedIfChequeIsNotOpen();
+ Cheques.verifyIssuingBankHasText("Branch " + officeIdentifier);
+ Cheques.verifyIssuerHasText("Cormac McCarthy");
+ Cheques.enterTextIntoAmountInputField("250.54");
+ Cheques.selectAccountToTransferTo(customerAccount + ".9100.00001(" + depositIdentifier +")");
+ Cheques.clickCreateTransactionButton();
+ Cheques.verifyTransactionAmount("250.54");
+ Cheques.clickConfirmTransactionButton();
+ Common.verifyMessagePopupIsDisplayed("Transaction successfully confirmed");
+ });
+ it('customer should not be able to cash same cheque', function () {
+ //try and cash the same cheque again: determining from MICR should not be successful
+ Teller.clickOnCashChequeForCustomer(customerAccount);
+ Cheques.enterTextIntoChequeNumberInputField("200");
+ Cheques.enterTextIntoBranchSortCodeInputField(officeIdentifier);
+ Cheques.enterTextIntoAccountNumberInputField(customerAccount2 + ".9100.00001");
+ Cheques.clickButtonDetermineFromMICR();
+ Cheques.verifyWarningIsDisplayedIfIssuingBankCouldNotBeDetermined();
+ Cheques.verifyPayeeHasTextAndCannotBeChanged("Thomas Pynchon");
+ Cheques.enterTextIntoDateIssuedInputField("992017");
+ Cheques.verifyWarningIsDisplayedIfChequeIsNotOpen();
+ //Issuing Bank/Issuer have error
+ Cheques.verifyIssuingBankHasError();
+ Cheques.verifyIssuerHasError();
+ //Manually enter information and try to cash check anyways
+ Cheques.enterTextIntoIssuingBankInputField("Branch " + officeIdentifier);
+ Cheques.enterTextIntoIssuerInputField("Cormac McCarthy");
+ Cheques.enterTextIntoAmountInputField("33");
+ Cheques.selectAccountToTransferTo(customerAccount + ".9100.00001(" + depositIdentifier +")");
+ Cheques.clickCreateTransactionButton();
+ Cheques.verifyErrorMessageDisplayedWithTitleAndText("Invalid transaction", "Cheque 200~" + officeIdentifier + "~" + customerAccount2 + ".9100.00001 already used.");
+ Cheques.clickButtonOKInErrorMessage();
+ //open issue: transaction is created anyways, should not be created
+ //change cheque number to a number that has not yet been issued for the customer
+ // Cheques.enterTextIntoChequeNumberInputField("201");
+ // Cheques.clickButtonDetermineFromMICR();
+ // Cheques.verifyWarningIsDisplayedIfIssuingBankCouldNotBeDetermined();
+ // Cheques.verifyIssuingBankHasError();
+ // Cheques.verifyIssuerHasError();
+ //change back to cheque number that has been issued for the customer and that has not yet been used
+ // Cheques.enterTextIntoChequeNumberInputField("199");
+ // Cheques.clickButtonDetermineFromMICR();
+ // Cheques.verifyWarningIsNotDisplayedIfIssuingBankCouldBeDetermined();
+ // Cheques.verifyIssuingBankHasText("Branch " + officeIdentifier);
+ // Cheques.verifyIssuerHasText("Cormac McCarthy");
+ });
+ it('journal entries for the transaction should be listed as expected', function () {
+ Accounting.goToAccountingViaSidePanel();
+ Accounting.goToJournalEntries();
+ Accounting.enterTextIntoSearchAccountInputField(customerAccount2 + ".9100.00001");
+ Accounting.clickSearchButton();
+ Accounting.verifyFirstJournalEntry("Order Cheque", "Amount: 250.54");
+ Common.clickBackButtonInTitleBar();
+ Common.clickLinkShowForRowWithId("9000");
+ Common.clickLinkShowForRowWithId("9100");
+ Common.clickLinkShowForRowWithId(customerAccount2 + ".9100.00001");
+ Accounting.viewAccountEntriesForAccount(customerAccount2 + ".9100.00001");
+ Accounting.verifyTransactionTypeForRow("DEBIT", 1);
+ Accounting.verifyTransactionMessageForRow("ORCQ", 1);
+ Accounting.verifyTransactionAmountForRow("250.54", 1);
+ Accounting.verifyTransactionBalanceForRow("-250.54", 1);
+ Common.clickBackButtonInTitleBar();
+ Common.clickBackButtonInTitleBar();
+ Common.clickLinkShowForRowWithId(customerAccount + ".9100.00001");
+ Accounting.verifyTransactionTypeForRow("CREDIT", 5);
+ Accounting.verifyTransactionMessageForRow("ORCQ", 5);
+ Accounting.verifyTransactionAmountForRow("250.54", 5);
+ Accounting.verifyTransactionBalanceForRow("5750.54", 5);
+ });
+ //invalid input: amount 0 or less, cheque number not a number, office identifier too long
+ //special char input in issuing bank/issuer field
+
});
\ No newline at end of file
diff --git a/Specs/cheque_management_from_scratch.js b/Specs/cheque_management_from_scratch.js
new file mode 100644
index 0000000..470e34b
--- /dev/null
+++ b/Specs/cheque_management_from_scratch.js
@@ -0,0 +1,481 @@
+//From scratch: Will create a role "Administrator" and a headquarter office
+
+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 Cheques = require('../Pages/Cheques');
+
+
+describe('cheque_management', function() {
+ var EC = protractor.ExpectedConditions;
+ employeeIdentifier = helper.getRandomString(6);
+ officeIdentifier = helper.getRandomString(6);
+ tellerIdentifier = helper.getRandomString(4);
+ customerAccount = helper.getRandomString(5);
+ customerAccount2 = helper.getRandomString(5);
+ depositIdentifier = helper.getRandomString(5);
+ depositName = helper.getRandomString(8);
+ tellerAccount = helper.getRandomString(4);
+ chequesReceivableAccount = helper.getRandomString(4);
+ revenueAccount = helper.getRandomString(4);
+ loanShortName = helper.getRandomString(6);
+ taskIdentifier = helper.getRandomString(3);
+ loanAccountShortName = helper.getRandomString(4);
+ branchSortCode = helper.getRandomString(11);
+ branchSortCode2 = helper.getRandomString(11);
+
+ //what role would be best in order to clear cheques and verify correctness of bookings?
+
+ it('should create a new administrator role', function () {
+ Common.waitForThePageToFinishLoading();
+ Roles.clickCreateNewRoleFromQuickAccess();
+ Roles.enterTextIntoRoleIdentifierInput("Administrator");
+ Roles.verifyCardHasTitleCreateRole();
+ Roles.selectCheckboxToGiveUserAllPermissions();
+ Roles.clickEnabledSaveRoleButton();
+ Common.verifyMessagePopupIsDisplayed("Role is going to be saved");
+ Roles.verifyCardHasTitleManageRoles();
+ });
+ it('should create a new teller role', function () {
+ //TBD: teller transaction should be executed by employee with role teller
+ });
+ it('should create new accounts', function () {
+ 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");
+ Common.clickBackButtonInTitleBar();
+ Common.clickLinkShowForRowWithId("7200");
+ Accounting.clickCreateNewAccountInLedger("7200");
+ Accounting.enterTextIntoAccountIdentifierInputField(chequesReceivableAccount);
+ Accounting.verifyRadioAssetToBeSelected();
+ Accounting.verifyRadioAssetToBeDisabled();
+ Accounting.enterTextIntoAccountNameInputField("Cheques Receivable");
+ 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");
+ });
+ it('should create a new employee with administrator permissions', function () {
+ Employees.goToManageEmployeesViaSidePanel();
+ Employees.createEmployee(employeeIdentifier, "Kate", "Atkinson", "Administrator", "abc123!!");
+ Login.signOut();
+ Login.logInForFirstTimeWithTenantUserAndPassword("playground", employeeIdentifier, "abc123!!", "abc123??");
+ });
+
+ it('should create a headquarter office', function () {
+ Offices.goToManageOfficesViaSidePanel();
+ Offices.verifyNoHeadquarterExistingYet();
+ Offices.clickButtonCreateHeadquarter();
+ Offices.verifyCardHasTitleCreateOffice();
+ Offices.enterTextIntoOfficeIdentifierInputField("hqo1");
+ Offices.enterTextIntoOfficeNameInputField("Headquarter Office Playground");
+ Offices.clickEnabledContinueButtonForOfficeDetails();
+ Offices.clickEnabledCreateOfficeButton();
+ Common.verifyMessagePopupIsDisplayed("Office is going to be saved");
+ });
+ it('should create a new branch office and a teller for the branch office', function () {
+ Offices.clickButtonCreateNewOffice();
+ Offices.verifyCardHasTitleCreateOffice();
+ Offices.enterTextIntoOfficeIdentifierInputField(officeIdentifier);
+ Offices.enterTextIntoOfficeNameInputField("Branch " + officeIdentifier);
+ Offices.clickEnabledContinueButtonForOfficeDetails();
+ Offices.clickEnabledCreateOfficeButton();
+ Common.verifyMessagePopupIsDisplayed("Office is going to be saved");
+ Common.clickSearchButtonToMakeSearchInputFieldAppear();
+ Common.enterTextInSearchInputFieldAndApplySearch(officeIdentifier);
+ Common.verifyFirstRowOfSearchResultHasTextAsId(officeIdentifier);
+ 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(chequesReceivableAccount);
+ Offices.clickEnabledCreateTellerButton();
+ Common.verifyMessagePopupIsDisplayed("Teller is going to be saved");
+ //workaround for current bug that teller is not always listed immediately
+ Common.clickBackButtonInTitleBar();
+ Offices.goToManageTellersForOfficeByIdentifier(officeIdentifier);
+ //Offices.verifyTellerStatusIs("CLOSED");
+ Common.clickLinkShowForFirstRowInTable();
+ });
+ it('should open the teller and assign it to an employee', function () {
+ Offices.clickActionOpenForTellerOfOffice(tellerIdentifier, officeIdentifier);
+ Offices.enterTextIntoAssignedEmployeeInputField(employeeIdentifier);
+ Offices.selectOptionInListByName("Atkinson, Kate");
+ Offices.clickEnabledOpenTellerButton();
+ Common.verifyMessagePopupIsDisplayed("Teller is going to be updated");
+ Offices.verifyTellerStatusIs("OPEN");
+ });
+ it('should create customer and activate customer', function () {
+ Customers.goToManageCustomersViaSidePanel();
+ Customers.verifyCardHasTitleManageMembers();
+ Customers.clickButtonOrLinkCreateNewCustomer();
+ Customers.verifyCardHasTitleCreateMember();
+ Customers.enterTextIntoAccountInputField(customerAccount);
+ Customers.enterTextIntoFirstNameInputField("Thomas");
+ Customers.enterTextIntoLastNameInputField("Pynchon");
+ Customers.enterTextIntoDayOfBirthInputField("9211978");
+ Customers.verifyIsMemberCheckboxSelected();
+ Customers.clickEnabledContinueButtonForCustomerDetails();
+ Customers.enterTextIntoStreetInputField("800 Chatham Road #326");
+ Customers.enterTextIntoCityInputField("Winston-Salem");
+ Customers.selectCountryByName("Germany");
+ Customers.clickEnabledContinueButtonForCustomerAddress();
+ Customers.clickEnabledCreateCustomerButton();
+ Common.verifyMessagePopupIsDisplayed("Member is going to be saved")
+ Customers.verifyCardHasTitleManageMembers();
+ Common.clickSearchButtonToMakeSearchInputFieldAppear();
+ Common.enterTextInSearchInputFieldAndApplySearch(customerAccount);
+ Common.verifyFirstRowOfSearchResultHasTextAsId(customerAccount);
+ Common.clickLinkShowForFirstRowInTable();
+ Customers.verifyMemberHasStatusInactive();
+ Customers.clickButtonGoToTasks();
+ Customers.clickButtonActivate();
+ Common.verifyMessagePopupIsDisplayed("Command is going to be executed");
+ Customers.verifyMemberHasStatusActive();
+ });
+ it('should create a deposit product and enable the product', function () {
+ Deposits.goToDepositsViaSidePanel();
+ Deposits.verifyCardHasTitle("Manage deposit products");
+ Deposits.clickButtonCreateDepositAccount();
+ Deposits.verifyCardHasTitle("Create new deposit product");
+ Deposits.enterTextIntoShortNameInputField(depositIdentifier);
+ Deposits.verifyRadioCheckingIsSelected();
+ Deposits.enterTextIntoNameInputField(depositName);
+ Deposits.enterTextIntoMinimumBalanceInputField("100");
+ Deposits.verifyRadioAnnuallyIsSelected();
+ Deposits.verifyCheckboxFlexibleInterestNotChecked();
+ Deposits.enterTextIntoInterestInputField("3");
+ Deposits.verifyFixedTermToggleSetToOff();
+ Deposits.verifyTermPeriodInputFieldIsDisabled();
+ Deposits.verifyRadioButtonsMonthAndYearDisabled();
+ Deposits.toggleFixedTermToOn();
+ Deposits.verifyTermPeriodInputFieldIsEnabled();
+ Deposits.verifyRadioButtonsMonthAndYearEnabled();
+ Deposits.selectRadioButtonYear();
+ Deposits.enterTextIntoCashAccountInputField("7352");
+ Deposits.enterTextIntoExpenseAccountInputField("2820");
+ Deposits.enterTextIntoAccrueAccountInputField("8202");
+ Deposits.enterTextIntoEquityLedgerInputField("9100");
+ Deposits.enterTextIntoTermPeriodInputField("5");
+ Deposits.selectRadioButtonYear();
+ Deposits.clickEnabledContinueButtonForProductDetails();
+ Deposits.clickEnabledCreateProductButton();
+ Common.verifyMessagePopupIsDisplayed("Product is going to be saved");
+ Deposits.verifyCardHasTitle("Manage deposit products");
+ Common.clickLinkShowForRowWithId(depositIdentifier);
+ Deposits.verifyProductHasStatusDisabled();
+ Deposits.clickButtonEnableProduct();
+ Common.verifyMessagePopupIsDisplayed("Product is going to be updated");
+ Deposits.verifyProductHasStatusEnabled();
+ });
+ it('should assign deposit product to the customer and open the account', 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");
+ //might not be in list immediately always
+ Common.clickBackButtonInTitleBar();
+ Customers.clickManageDepositAccountsForMember(customerAccount);
+ Common.clickLinkShowForRowWithId(depositIdentifier);
+ Customers.verifyDepositAccountHasStatus("PENDING");
+ Customers.verifyDepositAccountBalanceIs("0.00");
+ Teller.goToTellerManagementViaSidePanel();
+ Teller.enterTextIntoTellerNumberInputField(tellerIdentifier);
+ Teller.enterTextIntoPasswordInputField("qazwsx123!!");
+ Teller.clickEnabledUnlockTellerButton();
+ Common.verifyMessagePopupIsDisplayed("Teller drawer unlocked");
+ Teller.enterTextIntoSearchInputField(customerAccount);
+ Teller.clickButtonShowAtIndex(0);
+ Teller.verifyCardTitleHasNameOfCustomer("Thomas Pynchon");
+ Teller.clickOnOpenAccountForCustomer(customerAccount);
+ Teller.verifyCardTitleIs("Teller transaction");
+ Teller.selectAccountToBeAffected(customerAccount + ".9100.00001(" + depositIdentifier +")");
+ Teller.enterTextIntoAmountInputField("500");
+ Teller.clickEnabledCreateTransactionButton();
+ Teller.verifyTransactionAmount("500");
+ Teller.clickEnabledConfirmTransactionButton();
+ Common.verifyMessagePopupIsDisplayed("Transaction successfully confirmed");
+ });
+ it('customer should be able to cash cheque - cheque is not open/not on us', function () {
+ Teller.clickOnCashChequeForCustomer(customerAccount);
+ Cheques.enterTextIntoChequeNumberInputField("123456");
+ Cheques.enterTextIntoBranchSortCodeInputField(branchSortCode);
+ Cheques.enterTextIntoAccountNumberInputField("789789");
+ Cheques.clickButtonDetermineFromMICR();
+ Cheques.verifyWarningIsDisplayedIfIssuingBankCouldNotBeDetermined();
+ //Issuing Bank/Issuer show error
+ Cheques.enterTextIntoIssuingBankInputField("BoA");
+ Cheques.enterTextIntoIssuerInputField("Paul Auster");
+ Cheques.verifyPayeeHasTextAndCannotBeChanged("Thomas Pynchon");
+ Cheques.enterTextIntoDateIssuedInputField("992017");
+ Cheques.verifyWarningIsDisplayedIfChequeIsNotOpen();
+ Cheques.enterTextIntoAmountInputField("5000");
+ Cheques.selectAccountToTransferTo(customerAccount + ".9100.00001(" + depositIdentifier +")");
+ Cheques.clickCreateTransactionButton();
+ Cheques.verifyTransactionAmount("5000");
+ Cheques.clickConfirmTransactionButton();
+ Common.verifyMessagePopupIsDisplayed("Transaction successfully confirmed");
+ });
+ it('customer should be able to cash cheque - cheque is open/not on us', function () {
+ Teller.clickOnCashChequeForCustomer(customerAccount);
+ Cheques.enterTextIntoChequeNumberInputField("123456");
+ Cheques.enterTextIntoBranchSortCodeInputField(branchSortCode2);
+ Cheques.enterTextIntoAccountNumberInputField("789789");
+ Cheques.clickButtonDetermineFromMICR();
+ Cheques.verifyWarningIsDisplayedIfIssuingBankCouldNotBeDetermined();
+ //Issuing Bank/Issuer show error
+ Cheques.enterTextIntoIssuingBankInputField("BoA");
+ Cheques.enterTextIntoIssuerInputField("Paul Auster");
+ Cheques.verifyPayeeHasTextAndCannotBeChanged("Thomas Pynchon");
+ Cheques.enterTextIntoDateIssuedInputField("992017");
+ Cheques.checkCheckboxIsChequeOpen();
+ Cheques.verifyWarningIsNotDisplayedIfChequeIsOpen();
+ Cheques.enterTextIntoAmountInputField("300");
+ Cheques.selectAccountToTransferTo(customerAccount + ".9100.00001(" + depositIdentifier +")");
+ Cheques.clickCreateTransactionButton();
+ Cheques.verifyTransactionAmount("300");
+ Cheques.clickConfirmTransactionButton();
+ Common.verifyMessagePopupIsDisplayed("Transaction successfully confirmed");
+ });
+ it('journal entries for transactions should be listed as expected', function () {
+ Accounting.goToAccountingViaSidePanel();
+ Accounting.goToJournalEntries();
+ Accounting.enterTextIntoSearchAccountInputField(customerAccount + ".9100.00001");
+ Accounting.clickSearchButton();
+ Accounting.verifyFirstJournalEntry("Account Opening", "Amount: 500.00");
+ Accounting.verifySecondJournalEntry("Order Cheque", "Amount: 5,000.00");
+ Accounting.verifyThirdJournalEntry("Open Cheque", "Amount: 300.00");
+ Common.clickBackButtonInTitleBar();
+ Common.clickLinkShowForRowWithId("7000");
+ Common.clickLinkShowForRowWithId("7200");
+ Common.clickLinkShowForRowWithId(chequesReceivableAccount);
+ Accounting.viewAccountEntriesForAccount(chequesReceivableAccount);
+ Accounting.verifyTransactionTypeForRow("DEBIT", 1);
+ Accounting.verifyTransactionMessageForRow("ORCQ", 1);
+ Accounting.verifyTransactionAmountForRow("5000", 1);
+ Accounting.verifyTransactionBalanceForRow("5000", 1);
+ Accounting.verifyTransactionTypeForRow("DEBIT", 2);
+ Accounting.verifyTransactionMessageForRow("OPCQ", 2);
+ Accounting.verifyTransactionAmountForRow("300", 2);
+ Accounting.verifyTransactionBalanceForRow("5300", 2);
+ Common.clickBackButtonInTitleBar();
+ Common.clickBackButtonInTitleBar();
+ Common.clickBackButtonInTitleBar();
+ Common.clickBackButtonInTitleBar();
+ Common.clickLinkShowForRowWithId("9000");
+ Common.clickLinkShowForRowWithId("9100");
+ Common.clickLinkShowForRowWithId(customerAccount + ".9100.00001");
+ Accounting.viewAccountEntriesForAccount(customerAccount + ".9100.00001");
+ Accounting.verifyTransactionTypeForRow("CREDIT", 2);
+ Accounting.verifyTransactionMessageForRow("ORCQ", 2);
+ Accounting.verifyTransactionAmountForRow("5000", 2);
+ Accounting.verifyTransactionBalanceForRow("5500", 2);
+ Accounting.verifyTransactionTypeForRow("CREDIT", 3);
+ Accounting.verifyTransactionMessageForRow("OPCQ", 3);
+ Accounting.verifyTransactionAmountForRow("300", 3);
+ Accounting.verifyTransactionBalanceForRow("5800", 3);
+ });
+ it('cheques should be pending clearance - approve first cheque/cancel second cheque', function () {
+ Accounting.goToAccountingViaSidePanel();
+ Accounting.goToChequeClearing();
+ Cheques.verifyStateForChequeInRow("PENDING", 1);
+ //open cheque still not appearing
+ Cheques.verifyStateForChequeInRow("PENDING", 2);
+ Cheques.clickButtonApproveForChequeWithIdentifier("123456~" + branchSortCode + "~789789");
+ Cheques.cancelAction();
+ Cheques.clickButtonApproveForChequeWithIdentifier("123456~" + branchSortCode + "~789789");
+ Cheques.confirmAction();
+ //Cheques.verifyStateForChequeInRow("PROCESSED", 1);
+ Cheques.clickButtonCancelForChequeWithIdentifier("123456~" + branchSortCode2 + "~789789");
+ Cheques.confirmAction();
+ //Cheques.verifyStateForChequeInRow("CANCELED", 2);
+ });
+ it('cheque should have been reverted as expected', function () {
+ Accounting.goToAccountingViaSidePanel();
+ Accounting.goToJournalEntries();
+ Accounting.enterTextIntoSearchAccountInputField(customerAccount + ".9100.00001");
+ Accounting.clickSearchButton();
+ Accounting.verifyFourthJournalEntry("Cheque Reversal", "Amount: 300.00");
+ Common.clickBackButtonInTitleBar();
+ Common.clickLinkShowForRowWithId("7000");
+ Common.clickLinkShowForRowWithId("7200");
+ Common.clickLinkShowForRowWithId(chequesReceivableAccount);
+ Accounting.viewAccountEntriesForAccount(chequesReceivableAccount);
+ Accounting.verifyTransactionTypeForRow("CREDIT", 3);
+ Accounting.verifyTransactionMessageForRow("CQRV", 3);
+ Accounting.verifyTransactionAmountForRow("300", 3);
+ Accounting.verifyTransactionBalanceForRow("5000", 3);
+ Common.clickBackButtonInTitleBar();
+ Common.clickBackButtonInTitleBar();
+ Common.clickBackButtonInTitleBar();
+ Common.clickBackButtonInTitleBar();
+ Common.clickLinkShowForRowWithId("9000");
+ Common.clickLinkShowForRowWithId("9100");
+ Common.clickLinkShowForRowWithId(customerAccount + ".9100.00001");
+ Accounting.viewAccountEntriesForAccount(customerAccount + ".9100.00001");
+ Accounting.verifyTransactionTypeForRow("DEBIT", 4);
+ Accounting.verifyTransactionMessageForRow("CQRV", 4);
+ Accounting.verifyTransactionAmountForRow("300", 4);
+ Accounting.verifyTransactionBalanceForRow("5500", 4);
+ });
+ it('should create another customer', function () {
+ Customers.goToManageCustomersViaSidePanel();
+ Customers.verifyCardHasTitleManageMembers();
+ Customers.clickButtonOrLinkCreateNewCustomer();
+ Customers.verifyCardHasTitleCreateMember();
+ Customers.enterTextIntoAccountInputField(customerAccount2);
+ Customers.enterTextIntoFirstNameInputField("Cormac");
+ Customers.enterTextIntoLastNameInputField("McCarthy");
+ Customers.enterTextIntoDayOfBirthInputField("7281958");
+ Customers.verifyIsMemberCheckboxSelected();
+ Customers.clickEnabledContinueButtonForCustomerDetails();
+ Customers.enterTextIntoStreetInputField("800 Chatham Road #326");
+ Customers.enterTextIntoCityInputField("Winston-Salem");
+ Customers.selectCountryByName("Germany");
+ Customers.clickEnabledContinueButtonForCustomerAddress();
+ Customers.clickEnabledCreateCustomerButton();
+ Common.verifyMessagePopupIsDisplayed("Member is going to be saved")
+ Customers.verifyCardHasTitleManageMembers();
+ Common.clickSearchButtonToMakeSearchInputFieldAppear();
+ Common.enterTextInSearchInputFieldAndApplySearch(customerAccount2);
+ Common.verifyFirstRowOfSearchResultHasTextAsId(customerAccount2);
+ });
+ 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 assign deposit product to customer and issue cheques to customer', function () {
+ Customers.clickManageDepositAccountsForMember(customerAccount2);
+ Customers.clickCreateDepositAccountForMember(customerAccount2);
+ Customers.selectProduct(depositName);
+ Customers.clickEnabledButtonCreateDepositAccount();
+ Common.verifyMessagePopupIsDisplayed("Deposit account is going to be saved");
+ //might not be in list immediately always
+ Common.clickBackButtonInTitleBar();
+ Customers.clickManageDepositAccountsForMember(customerAccount2);
+ Common.clickLinkShowForRowWithId(depositIdentifier);
+ Customers.verifyDepositAccountHasStatus("PENDING");
+ Customers.verifyDepositAccountBalanceIs("0.00");
+ Cheques.clickButtonIssueCheques();
+ Cheques.enterTextIntoAmountInputField("200");
+ Cheques.clickIssueChequesButton();
+ Common.verifyMessagePopupIsDisplayed("Cheques are going to be issued");
+ });
+ it('customer should be able to cash cheque - cheque is not open/on us', function () {
+ Teller.goToTellerManagementViaSidePanel();
+ Teller.enterTextIntoSearchInputField(customerAccount);
+ Teller.clickButtonShowAtIndex(0);
+ Teller.verifyCardTitleHasNameOfCustomer("Thomas Pynchon");
+ Teller.clickOnCashChequeForCustomer(customerAccount);
+ Cheques.enterTextIntoChequeNumberInputField("200");
+ Cheques.enterTextIntoBranchSortCodeInputField(officeIdentifier);
+ Cheques.enterTextIntoAccountNumberInputField(customerAccount2 + ".9100.00001");
+ Cheques.clickButtonDetermineFromMICR();
+ Cheques.verifyWarningIsNotDisplayedIfIssuingBankCouldBeDetermined();
+ Cheques.verifyPayeeHasTextAndCannotBeChanged("Thomas Pynchon");
+ Cheques.enterTextIntoDateIssuedInputField("992017");
+ Cheques.verifyWarningIsDisplayedIfChequeIsNotOpen();
+ Cheques.verifyIssuingBankHasText("Branch " + officeIdentifier);
+ Cheques.verifyIssuerHasText("Cormac McCarthy");
+ Cheques.enterTextIntoAmountInputField("250.54");
+ Cheques.selectAccountToTransferTo(customerAccount + ".9100.00001(" + depositIdentifier +")");
+ Cheques.clickCreateTransactionButton();
+ Cheques.verifyTransactionAmount("250.54");
+ Cheques.clickConfirmTransactionButton();
+ Common.verifyMessagePopupIsDisplayed("Transaction successfully confirmed");
+ });
+ it('customer should not be able to cash same cheque', function () {
+ //try and cash the same cheque again: determining from MICR should not be successful
+ Teller.clickOnCashChequeForCustomer(customerAccount);
+ Cheques.enterTextIntoChequeNumberInputField("200");
+ Cheques.enterTextIntoBranchSortCodeInputField(officeIdentifier);
+ Cheques.enterTextIntoAccountNumberInputField(customerAccount2 + ".9100.00001");
+ Cheques.clickButtonDetermineFromMICR();
+ Cheques.verifyWarningIsDisplayedIfIssuingBankCouldNotBeDetermined();
+ Cheques.verifyPayeeHasTextAndCannotBeChanged("Thomas Pynchon");
+ Cheques.enterTextIntoDateIssuedInputField("992017");
+ Cheques.verifyWarningIsDisplayedIfChequeIsNotOpen();
+ //Issuing Bank/Issuer have error
+ Cheques.verifyIssuingBankHasError();
+ Cheques.verifyIssuerHasError();
+ //Manually enter information and try to cash check anyways
+ Cheques.enterTextIntoIssuingBankInputField("Branch " + officeIdentifier);
+ Cheques.enterTextIntoIssuerInputField("Cormac McCarthy");
+ Cheques.enterTextIntoAmountInputField("33");
+ Cheques.selectAccountToTransferTo(customerAccount + ".9100.00001(" + depositIdentifier +")");
+ Cheques.clickCreateTransactionButton();
+ //waiting for error message to show up in the UI, "Cheque 200~FMwxYg~AcHlZ.9100.00001 already used."
+ //change cheque number to a number that has not yet been issued for the customer
+ Cheques.enterTextIntoChequeNumberInputField("201");
+ Cheques.clickButtonDetermineFromMICR();
+ Cheques.verifyWarningIsDisplayedIfIssuingBankCouldNotBeDetermined();
+ Cheques.verifyIssuingBankHasError();
+ Cheques.verifyIssuerHasError();
+ //change back to cheque number that has been issued for the customer and that has not yet been used
+ Cheques.enterTextIntoChequeNumberInputField("199");
+ Cheques.clickButtonDetermineFromMICR();
+ Cheques.verifyWarningIsNotDisplayedIfIssuingBankCouldBeDetermined();
+ Cheques.verifyIssuingBankHasText("Branch " + officeIdentifier);
+ Cheques.verifyIssuerHasText("Cormac McCarthy");
+ });
+ it('journal entries for the transaction should be listed as expected', function () {
+ Accounting.goToAccountingViaSidePanel();
+ Accounting.goToJournalEntries();
+ Accounting.enterTextIntoSearchAccountInputField(customerAccount2 + ".9100.00001");
+ Accounting.clickSearchButton();
+ Accounting.verifyFirstJournalEntry("Open Cheque", "Amount: 250.54");
+ Common.clickBackButtonInTitleBar();
+ Common.clickLinkShowForRowWithId("9000");
+ Common.clickLinkShowForRowWithId("9100");
+ Common.clickLinkShowForRowWithId(customerAccount2 + ".9100.00001");
+ Accounting.viewAccountEntriesForAccount(customerAccount2 + ".9100.00001");
+ Accounting.verifyTransactionTypeForRow("DEBIT", 1);
+ Accounting.verifyTransactionMessageForRow("ORCQ", 1);
+ Accounting.verifyTransactionAmountForRow("250.54", 1);
+ Accounting.verifyTransactionBalanceForRow("-250.54", 1);
+ Common.clickBackButtonInTitleBar();
+ Common.clickBackButtonInTitleBar();
+ Common.clickLinkShowForRowWithId(customerAccount + ".9100.00001");
+ Accounting.verifyTransactionTypeForRow("CREDIT", 5);
+ Accounting.verifyTransactionMessageForRow("ORCQ", 5);
+ Accounting.verifyTransactionAmountForRow("250.54", 5);
+ Accounting.verifyTransactionBalanceForRow("5750.54", 5);
+ browser.pause();
+ })
+});
\ No newline at end of file