Protractor tests. Loan product tests.
diff --git a/Pages/Customers.js b/Pages/Customers.js
index efad5f2..229fd3e 100644
--- a/Pages/Customers.js
+++ b/Pages/Customers.js
@@ -29,7 +29,7 @@
 var interestRateInput = $("fims-number-input[controlname='interest'] input");
 var termInput = $("fims-text-input[controlname='term'] input");
 var termSelect = $("mat-select[formcontrolname='termTemporalUnit'] .mat-select-trigger");
-var paymentPeriod = $("fima-text-input[controlname='paymentPeriod'] input");
+var paymentPeriod = $("fims-text-input[controlname='paymentPeriod'] input");
 var paymentPeriodSelect = $("mat-select[formcontrolname='termTemporalUnit'] .mat-select-trigger");
 var depositAccountSelect = $("mat-select[formcontrolname='depositAccountIdentifier'] .mat-select-trigger");
 
@@ -300,6 +300,11 @@
         principalAmountInput.sendKeys(protractor.Key.BACK_SPACE);
         principalAmountInput.sendKeys(protractor.Key.BACK_SPACE);
         principalAmountInput.sendKeys(protractor.Key.BACK_SPACE);
+        principalAmountInput.sendKeys(protractor.Key.BACK_SPACE);
+        principalAmountInput.sendKeys(protractor.Key.BACK_SPACE);
+        principalAmountInput.sendKeys(protractor.Key.BACK_SPACE);
+        principalAmountInput.sendKeys(protractor.Key.BACK_SPACE);
+        principalAmountInput.sendKeys(protractor.Key.BACK_SPACE);
         principalAmountInput.sendKeys(text);
     },
     enterTextIntoInterestRateInputField: function (text) {
@@ -319,7 +324,8 @@
         browser.executeScript("arguments[0].scrollIntoView();", depositAccountSelect.getWebElement());
         browser.wait(EC.elementToBeClickable(depositAccountSelect), 3000);
         depositAccountSelect.click();
-        expect($(".mat-option").isPresent()).toBe(false);
+        expect($(".mat-option").isPresent()).toBe(true);
+        expect(element(by.cssContainingText('.mat-option', accountIdentifier)).isPresent()).toBe(false);
     },
     enterTextIntoTermInputField: function (text) {
         termInput.click().clear().sendKeys(text);
diff --git a/Pages/Loans.js b/Pages/Loans.js
index dbd64c4..c29f6d7 100644
--- a/Pages/Loans.js
+++ b/Pages/Loans.js
@@ -310,6 +310,7 @@
         radioWeeks.click();
     },
     verifyEditLoanProductButtonIsDisplayed: function(){
+        browser.sleep(500);
         expect($("a[title='Edit product']").isPresent()).toBe(true);
     },
     verifyEditLoanProductButtonIsNotDisplayed: function(){
diff --git a/Specs/loans1_creation&assignment.js b/Specs/loans1_creation&assignment.js
new file mode 100644
index 0000000..92653b7
--- /dev/null
+++ b/Specs/loans1_creation&assignment.js
@@ -0,0 +1,424 @@
+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');
+
+
+describe('Loans 1', function() {
+    var EC = protractor.ExpectedConditions;
+    employeeIdentifier = 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);
+    loanShortName2 = 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 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 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);
+        //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 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 not be possible to create loan account for pending customer', function () {
+
+    });
+    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 - Checking with opening charge', function () {
+        Deposits.goToDepositsViaSidePanel();
+        Common.verifyCardHasTitle("Manage deposit products");
+        Deposits.clickButtonCreateDepositAccount();
+        Common.verifyCardHasTitle("Create new deposit product");
+        Deposits.enterTextIntoShortNameInputField(depositIdentifier);
+        Deposits.verifyRadioCheckingIsSelected();
+        Deposits.enterTextIntoNameInputField(depositName);
+        Deposits.enterTextIntoMinimumBalanceInputField("100");
+        Deposits.verifyRadioAnnuallyIsSelected();
+        Deposits.verifyCheckboxFlexibleInterestNotChecked();
+        Deposits.enterTextIntoInterestInputField("0.05");
+        Deposits.enterTextIntoCashAccountInputField("7352");
+        Deposits.enterTextIntoExpenseAccountInputField("2820");
+        Deposits.enterTextIntoAccrueAccountInputField("8202");
+        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();
+        //product details
+        Loans.enterTextIntoShortNameInputField(loanShortName);
+        Loans.enterTextIntoNameInputField("My loan " + loanShortName);
+        Loans.enterTextIntoDescriptionInputField("My loan " + loanShortName);
+        Loans.enterTextIntoMinimumPrincipalInputField("10000");
+        Loans.enterTextIntoMaximumPrincipalInputField("9999.99");
+        //not possible, invalid input
+        Loans.verifyPrincipalAmountInputFieldsHaveError("Must be greater than or equal minimum");
+        Loans.enterTextIntoMaximumPrincipalInputField("50000");
+        //maximum term: 5 years
+        Loans.enterTextIntoTermInputField("5");
+        Loans.selectRadioButtonYears();
+        Loans.clickEnabledContinueButtonForProductDetails();
+        //ledger and account settings
+        //asset account only
+        Loans.enterTextIntoCashAccountInputField(tellerAccount);
+        //asset ledger only
+        Loans.enterTextIntoCustomerLoanLedgerInputField("7900");
+        Loans.clickEnabledContinueButtonForLedgerAndAccountSettings();
+        //interest settings
+        Loans.toggleInterestRangeToOn();
+        Loans.enterTextIntoInterestRangeMinInputField("5.0");
+        Loans.enterTextIntoInterestRangeMaxInputField("4.99");
+        //not possible, invalid input
+        Loans.verifyInterestRangeInputFieldsHaveError("Must be greater than minimum");
+        Loans.enterTextIntoInterestRangeMinInputField("0.80");
+        Loans.enterTextIntoInterestRangeMaxInputField("3.60");
+        //revenue account only
+        Loans.enterTextIntoIncomeAccountAccountInputField("1101");
+        //asset account only
+        Loans.enterTextIntoAccrualAccountInputField("7810");
+        Loans.clickEnabledContinueButtonForInterestSettings();
+        //fee income accounts
+        Loans.enterTextIntoProcessingFeeIncomeAccountInputField("1313");
+        Loans.enterTextIntoOriginatingFeeIncomeAccountInputField("1313");
+        Loans.enterTextIntoDisbursementFeeIncomeAccountInputField("1313");
+        Loans.enterTextIntoLateFeeIncomeAccountInputField("1311");
+        Loans.enterTextIntoLateFeeAccrualAccountInputField("7810");
+        //arrears allowance reserve account
+        Loans.clickEnabledContinueButtonForFeeIncomeAccounts();
+        Loans.enterTextIntoArrearsAllowanceAccountInputField("3040");
+        Loans.clickEnabledCreateProductButton();
+        Common.verifyMessagePopupIsDisplayed("Product is going to be saved");
+    });
+    it('should enable the first loan product', function () {
+        //message
+        Common.clickLinkShowForRowWithId(loanShortName);
+        Loans.clickButtonEnableProduct();
+        Common.verifyMessagePopupIsDisplayed("Product is going to be enabled");
+    });
+    it('create second loan product', function () {
+        Loans.goToLoanProductsViaSidePanel();
+        Loans.clickButtonCreateLoanProduct();
+        //product details
+        Loans.enterTextIntoShortNameInputField(loanShortName2);
+        Loans.enterTextIntoNameInputField("My loan " + loanShortName2);
+        Loans.enterTextIntoDescriptionInputField("My loan " + loanShortName2);
+        Loans.enterTextIntoMinimumPrincipalInputField("500");
+        Loans.enterTextIntoMaximumPrincipalInputField("1500");
+        Loans.selectCurrencyByName("JMD");
+        //maximum term: 52 weeks
+        Loans.enterTextIntoTermInputField("52");
+        Loans.selectRadioButtonWeeks();
+        Loans.clickEnabledContinueButtonForProductDetails();
+        //ledger and account settings
+        Loans.enterTextIntoCashAccountInputField(tellerAccount);
+        Loans.enterTextIntoCustomerLoanLedgerInputField("7900");
+        Loans.clickEnabledContinueButtonForLedgerAndAccountSettings();
+        //interest settings
+        Loans.verifyInterestRangeToggleSetToOff();
+        Loans.enterTextIntoInterestRateInputField("15.00");
+        Loans.enterTextIntoIncomeAccountAccountInputField("1101");
+        Loans.enterTextIntoAccrualAccountInputField("7810");
+        Loans.clickEnabledContinueButtonForInterestSettings();
+        //fee income accounts
+        //revenue accounts only
+        Loans.enterTextIntoProcessingFeeIncomeAccountInputField("1313");
+        Loans.enterTextIntoOriginatingFeeIncomeAccountInputField("1313");
+        Loans.enterTextIntoDisbursementFeeIncomeAccountInputField("1313");
+        Loans.enterTextIntoLateFeeIncomeAccountInputField("1311");
+        //asset accounts only
+        Loans.enterTextIntoLateFeeAccrualAccountInputField("7810");
+        Loans.clickEnabledContinueButtonForFeeIncomeAccounts();
+        //arrears allowance reserve account
+        //expense accounts only
+        Loans.enterTextIntoArrearsAllowanceAccountInputField("3040");
+        Loans.clickEnabledCreateProductButton();
+        Common.verifyMessagePopupIsDisplayed("Product is going to be saved");
+    });
+    it('should not be able to select loan product if not enabled', function () {
+        Customers.goToManageCustomersViaSidePanel();
+        Common.clickSearchButtonToMakeSearchInputFieldAppear();
+        Common.enterTextInSearchInputFieldAndApplySearch(customerAccount);
+        Common.verifyFirstRowOfSearchResultHasTextAsId(customerAccount);
+        Common.clickLinkShowForFirstRowInTable();
+        Customers.clickManageLoanAccountsForMember(customerAccount);
+        Customers.clickCreateLoanAccountForMember(customerAccount);
+        //verify loan product cannot be selected
+        Customers.verifyLoanAccountNotOfferedForSelection(loanShortName2);
+        Customers.selectProductFromOpenList(loanShortName);
+    });
+    it('should not be able to select deposit account if not enabled', function () {
+        //verify deposit account cannot be selected
+        Customers.verifyDepositAccountNotOfferedForSelection(customerAccount + ".9100.00001(" + depositIdentifier +")");
+    });
+    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("1000");
+        Teller.clickEnabledCreateTransactionButton();
+        Teller.verifyTransactionAmount("1000");
+        Teller.verifyChargesPayedInCashCheckboxChecked();
+        Teller.clickEnabledConfirmTransactionButton();
+        Common.verifyMessagePopupIsDisplayed("Transaction successfully confirmed");
+    });
+    it('should enable the second loan product', function () {
+        Loans.goToLoanProductsViaSidePanel();
+        Common.clickLinkShowForRowWithId(loanShortName2);
+        Loans.verifyEditLoanProductButtonIsDisplayed();
+        Loans.clickButtonEnableProduct();
+        Common.verifyMessagePopupIsDisplayed("Product is going to be enabled");
+    });
+    it('loan product cannot be edited when enabled', function () {
+        Loans.verifyEditLoanProductButtonIsNotDisplayed();
+    });
+    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);
+        Customers.enterTextIntoPrincipalAmountInputField("9999.99");
+        //invalid input, error
+        Customers.enterTextIntoPrincipalAmountInputField("50,000.01");
+        //invalid input, error
+        Customers.enterTextIntoPrincipalAmountInputField("10,000");
+        Customers.enterTextIntoInterestRateInputField("3.65");
+        //invalid input, error
+        Customers.enterTextIntoInterestRateInputField("0.79");
+        //invalid input, error
+        Customers.enterTextIntoInterestRateInputField("3.60");
+        Customers.enterTextIntoTermInputField("62");
+        //invalid input, error
+        Customers.enterTextIntoTermInputField("60");
+        //valid input, no error
+        Customers.selectTemporalUnitForTerm("years");
+        //invalid input, error
+        Customers.enterTextIntoTermInputField("5");
+        //valid input, no error
+        Customers.enterTextIntoPaymentPeriodInputField("62");
+        //invalid input, error: Invalid payment period. Maximum allowed are 260 week(s), 60 month(s) or 5 year(s).
+        Customers.enterTextIntoPaymentPeriodInputField("6");
+        //valid input, no error
+        Customers.selectPaymentPeriod("years");
+        //invalid input, error
+        Customers.selectPaymentPeriod("months");
+        //valid input, no error
+        Customers.selectSecondRadioOptionForMonthlyRepayment();
+        Customers.selectWeekdayForMonthlyRepayment("last", "Friday");
+        Customers.selectDepositAccount(customerAccount + ".9100.00001(" + depositIdentifier + ")");
+        //change loan product to the other one
+        Customers.selectProduct(loanShortName2);
+        //error for principal: Value must be smaller than or equal to 1500
+        Customers.enterTextIntoPrincipalAmountInputField("1500");
+        //interest rate input is disabled and shows 15%
+        //error for payment period: Invalid payment period. Maximum allowed are 21 week(s), 5 month(s) or 0 year(s).
+        Customers.selectPaymentPeriod("months");
+        //debt to income ratio
+        //co-signer
+        //documents
+        Customers.clickEnabledCreateMemberLoanButton();
+        Common.verifyMessagePopupIsDisplayed("Case is going to be saved");
+        Customers.verifyStateOfLoanAccountWithIdIs(loanAccountShortName, "CREATED");
+        //details
+    });
+    it('planned payment', function () {
+
+    });
+    it('debt/income ratio', function () {
+
+    });
+    it('editing loan account possible until approved', function () {
+        //edit loan account to different one (different product, different settings)
+        //planned payment
+        //...
+    });
+    it('update/deletion of unassigned/assigned product', function () {
+        //assigned product cannot be deleted anymore
+        //what about disabled/edited? fees/tasks???
+        //unassigned product can be disabled/edited
+        //edit product and verify updated
+        //unassigned product can be deleted
+    });
+});
\ No newline at end of file