Files
monorepo/LCU.WebApps.External.OnlineLoanApp/e2e/src/signature/signature-maximum.e2e-spec.ts
T
2026-03-25 11:54:22 -05:00

142 lines
6.2 KiB
TypeScript

import { browser } from 'protractor';
import { SignaturePageOnePo } from './pages/page-one.po';
import { ContactPagePo } from '../shared/pages/contact-page.po';
import { PageObjectTools } from '../shared/page-object-tools';
import { ResidencePagePo } from '../shared/pages/residence-page.po';
import { EmploymentPagePo } from '../shared/pages/employment-page.po';
import { SummaryPagePo } from '../shared/pages/summary-page.po';
import { SignatureDisclosuresPagePo } from './pages/page-disclosures.po';
import { protractor } from 'protractor/built/ptor';
describe('It should create a maximum signature loan application ', () => {
it('should accept maximum inputs for page 1 (Member/Loan Type)', () => {
const page = new SignaturePageOnePo();
browser.get(page.PAGE_URL);
browser.sleep(1000);
expect(page.getFocusedElement()).toEqual(page.getFirstElement());
let inputArray = PageObjectTools.findFieldsInPageByIdArray(page.ALL_FIELDS);
expect(inputArray.length).toEqual(page.ALL_FIELDS.length);
expect(page.canClickDropdown()).toEqual(false);
expect(page.canGoNext()).toEqual(false);
page.fillFieldsMaximum();
inputArray = PageObjectTools.findFieldsInPageByIdArray([...page.ALL_FIELDS, ...page.HIDDEN_FIELDS_1]);
expect(inputArray.length).toEqual(page.ALL_FIELDS.length + page.HIDDEN_FIELDS_1.length);
expect(page.canClickDropdown()).toEqual(true);
expect(page.canGoNext()).toEqual(true);
page.submit();
});
it('should accept maximum inputs for page 2 (Personal Info)', () => {
const page = new ContactPagePo();
expect(page.getFocusedElement()).toEqual(page.getFirstElement());
const inputArray = PageObjectTools.findFieldsInPageByIdArray(page.ALL_FIELDS);
expect(inputArray.length).toEqual(page.ALL_FIELDS.length);
expect(page.canGoNext()).toEqual(false);
page.fillFieldsMaximumCoApplicant();
expect(page.canGoNext()).toEqual(true);
page.submit();
});
it('should accept maximum inputs for page 3 (Residence)', () => {
const page = new ResidencePagePo();
expect(page.getFocusedElement()).toEqual(page.getFirstElement(page.DEFAULT_PREFIX));
const inputArray = PageObjectTools.findFieldsInPageByIdArray(page.ALL_FIELDS);
expect(inputArray.length).toEqual(page.ALL_FIELDS.length);
expect(page.canGoNext()).toEqual(false);
page.fillFieldsMinimal();
page.showMailingAddress();
page.showSecondAddress();
page.fillAdditionalFieldsMaximum();
expect(page.canGoNext()).toEqual(true);
page.submit();
});
it('should accept maximum inputs for page 4 (Employment)', () => {
const page = new EmploymentPagePo();
let inputArray = PageObjectTools.findFieldsInPageByIdArray(page.STARTING_FIELDS);
expect(inputArray.length).toEqual(page.STARTING_FIELDS.length);
expect(page.canGoNext()).toEqual(true);
page.showEmploymentFields();
inputArray = PageObjectTools.findFieldsInPageByIdArray([...page.EMPLOYMENT_FIELDS], page.DEFAULT_PREFIX);
expect(inputArray.length).toEqual([...page.EMPLOYMENT_FIELDS].length);
expect(page.canGoNext()).toEqual(false);
page.showOtherIncomeFields();
page.showChildSupportFields();
page.fillFieldsMaximum();
expect(page.canGoNext()).toEqual(false);
page.fillChildSupportFields();
page.fillOtherIncomeFields();
page.markSingleIncomeNotEnough();
expect(page.canGoNext()).toEqual(true);
page.submit();
});
it('should accept maximum inputs for page 2.A (Co-Applicant Personal Info)', () => {
const page = new ContactPagePo();
const EC = protractor.ExpectedConditions;
browser.wait(EC.visibilityOf(page.getFirstElement()), 5000).then(() => {});
expect(page.getFocusedElement()).toEqual(page.getFirstElement());
const inputArray = PageObjectTools.findFieldsInPageByIdArray(page.COAPP_FIELDS);
expect(inputArray.length).toEqual(page.COAPP_FIELDS.length);
expect(page.canGoNext()).toEqual(false);
page.fillFieldsMaximumCoApplicantNonPrimary();
expect(page.canGoNext()).toEqual(true);
page.submit();
});
it('should accept maximum inputs for page 3.A (Co-applicant Residence)', () => {
const page = new ResidencePagePo();
page.markAddressNotSame();
expect(page.getFocusedElement()).toEqual(page.getFirstElement(page.DEFAULT_PREFIX));
const inputArray = PageObjectTools.findFieldsInPageByIdArray(page.ALL_FIELDS);
expect(inputArray.length).toEqual(page.ALL_FIELDS.length);
expect(page.canGoNext()).toEqual(false);
page.fillFieldsMinimal();
page.showMailingAddress();
page.showSecondAddress();
page.fillAdditionalFieldsMaximum();
expect(page.canGoNext()).toEqual(true);
page.submit();
});
it('should accept maximum inputs for page 4.A (Co-applicant Employment)', () => {
const page = new EmploymentPagePo();
let inputArray = PageObjectTools.findFieldsInPageByIdArray(page.STARTING_FIELDS);
expect(inputArray.length).toEqual(page.STARTING_FIELDS.length);
expect(page.canGoNext()).toEqual(true);
page.showEmploymentFields();
inputArray = PageObjectTools.findFieldsInPageByIdArray([...page.EMPLOYMENT_FIELDS], page.DEFAULT_PREFIX);
expect(inputArray.length).toEqual([...page.EMPLOYMENT_FIELDS].length);
expect(page.canGoNext()).toEqual(false);
page.showOtherIncomeFields();
page.showChildSupportFields();
page.fillFieldsMaximum();
expect(page.canGoNext()).toEqual(false);
page.fillChildSupportFields();
page.fillOtherIncomeFields();
page.markSingleIncomeNotEnough();
expect(page.canGoNext()).toEqual(true);
page.submit();
});
it('should maximum inputs for page 5 (Disclosures)', () => {
const page = new SignatureDisclosuresPagePo();
const inputArray = PageObjectTools.findFieldsInPageByIdArray(page.ALL_FIELDS);
expect(inputArray.length).toEqual(page.ALL_FIELDS.length);
expect(page.canGoNext()).toEqual(false);
page.fillFieldsMinimal();
expect(page.canGoNext()).toEqual(true);
page.submit();
});
it('should show application information on page 6 (Summary)', () => {
const page = new SummaryPagePo();
const inputArray = PageObjectTools.findFieldsInPageByIdArray(page.ALL_FIELDS);
expect(inputArray.length).toEqual(page.ALL_FIELDS.length);
page.fillFieldsMinimal();
expect(page.canGoNext()).toEqual(true);
});
});