From 93c7f4c67bcda9c7356a0f2259c08f678dfbc78f Mon Sep 17 00:00:00 2001 From: Adam Coard Date: Fri, 20 Oct 2017 08:08:07 -0700 Subject: [PATCH] Have all unit tests passing, comitting from yesterday. This was particularly tricky due to an angular-cli bug, documented here: https://github.com/angular/angular-cli/issues/7296 Recommendation: use `ng test --sourcemaps=false` for now while running unit tests. --- ...ew-dependent-beneficiary.component.spec.ts | 27 +++++++++++++-- .../add-remove-dependents.component.spec.ts | 34 +++++++++++++++++-- .../dependent-change.component.spec.ts | 21 +++++------- .../dependent-change.component.ts | 10 ++++++ .../account/prepare/prepare.component.spec.ts | 3 +- src/app/components/msp/model/account.model.ts | 13 +++++-- 6 files changed, 86 insertions(+), 22 deletions(-) diff --git a/src/app/components/msp/account/add-new-dependent-beneficiary/add-new-dependent-beneficiary.component.spec.ts b/src/app/components/msp/account/add-new-dependent-beneficiary/add-new-dependent-beneficiary.component.spec.ts index 695e1910f..977a01509 100644 --- a/src/app/components/msp/account/add-new-dependent-beneficiary/add-new-dependent-beneficiary.component.spec.ts +++ b/src/app/components/msp/account/add-new-dependent-beneficiary/add-new-dependent-beneficiary.component.spec.ts @@ -1,5 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { FormsModule } from "@angular/forms"; +import { ToggleComponent } from '../../common/toggle/toggle.component'; +import { MspDateComponent } from '../../common/date/date.component'; +import { MspProvinceComponent } from '../../common/province/province.component'; +import { MspOutofBCRecordComponent } from '../../common/outof-bc/outof-bc.component'; +import { MspDischargeDateComponent } from '../../common/discharge-date/discharge-date.component'; +import { CalendarYearFormatter } from '../../common/calendar/calendar-year-formatter.component'; +import { Ng2CompleterModule } from "ng2-completer"; +import { MspDepartureDateComponent } from '../../common/departure-date/departure-date.component'; +import { Person } from '../../model/person.model'; +import { Relationship } from '../../model/status-activities-documents'; +//Weirdly, including MspReturnDateComponent in declarations leads to ALL of the tests failing to run because it can't load the component factory. +//Have to run `ng test --sourcemaps=false` +//https://github.com/angular/angular-cli/issues/7296 +import { MspReturnDateComponent } from '../../common/return-date/return-date.component'; import { AddNewDependentBeneficiaryComponent } from './add-new-dependent-beneficiary.component'; describe('AddNewDependentBeneficiaryComponent', () => { @@ -8,14 +23,22 @@ describe('AddNewDependentBeneficiaryComponent', () => { beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ AddNewDependentBeneficiaryComponent ] + declarations: [AddNewDependentBeneficiaryComponent, ToggleComponent, MspDateComponent, MspProvinceComponent, MspOutofBCRecordComponent, MspDischargeDateComponent, CalendarYearFormatter, + MspReturnDateComponent, + AddNewDependentBeneficiaryComponent, + MspDepartureDateComponent], + imports: [FormsModule, Ng2CompleterModule] }) - .compileComponents(); + .compileComponents(); })); beforeEach(() => { fixture = TestBed.createComponent(AddNewDependentBeneficiaryComponent); component = fixture.componentInstance; + let spouse = new Person(Relationship.Spouse); + component.person = spouse; + + fixture.detectChanges(); }); diff --git a/src/app/components/msp/account/add-remove-dependents/add-remove-dependents.component.spec.ts b/src/app/components/msp/account/add-remove-dependents/add-remove-dependents.component.spec.ts index 0b664b447..48038fbf0 100644 --- a/src/app/components/msp/account/add-remove-dependents/add-remove-dependents.component.spec.ts +++ b/src/app/components/msp/account/add-remove-dependents/add-remove-dependents.component.spec.ts @@ -5,11 +5,37 @@ import { ToggleComponent } from '../../common/toggle/toggle.component'; import { StatusInCanadaRadioComponent } from '../../common/status-in-canada-radio/status-in-canada-radio.component'; import { MspDateComponent } from '../../common/date/date.component'; import { AccountPersonalDetailsComponent } from '../personal-info/personal-details/personal-details.component' - import { CalendarYearValidator } from '../../common/calendar/calendar-year.validator'; import { CalendarMonthValidator } from '../../common/calendar/calendar-month.validator'; import { CalendarDayValidator } from '../../common/calendar/calendar-day.validator'; import { CalendarYearFormatter } from '../../common/calendar/calendar-year-formatter.component'; +import { AddNewDependentBeneficiaryComponent } from '../add-new-dependent-beneficiary/add-new-dependent-beneficiary.component'; +import { MspNameComponent } from '../../common/name/name.component'; +import { MspGenderComponent } from "../../common/gender/gender.component"; +import { MspBirthDateComponent } from "../../common/birthdate/birthdate.component"; +import { MspPhnComponent } from "../../common/phn/phn.component"; +import { MspPhoneComponent } from "../../common/phone/phone.component" +import { MspDischargeDateComponent } from "../../common/discharge-date/discharge-date.component"; +"../../common/birthdate/birthdate.component"; +import { MspSchoolDateComponent } from "../../common/schoolDate/school-date.component"; +import { MspAddressComponent } from "../../common/address/address.component"; +import { MspProvinceComponent } from "../../common/province/province.component"; +import { MspArrivalDateComponent } from "../../common/arrival-date/arrival-date.component"; +import { MspOutofBCRecordComponent } from '../../common/outof-bc/outof-bc.component'; +import { Mod11CheckValidator } from "../../common/phn/phn.validator"; +import { MspCountryComponent } from "../../common/country/country.component"; +import { MspDataService } from '../../service/msp-data.service'; +import { Ng2CompleterModule } from "ng2-completer"; +import { MspDepartureDateComponent } from '../../common/departure-date/departure-date.component'; +import {MspReturnDateComponent} from '../../common/return-date/return-date.component'; + +import { Person } from '../../model/person.model'; +import { Relationship } from '../../model/status-activities-documents'; + + + + + describe('AddRemoveDependentsComponent', () => { let component: AddRemoveDependentComponent; @@ -17,8 +43,9 @@ describe('AddRemoveDependentsComponent', () => { beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [AddRemoveDependentComponent, ToggleComponent, StatusInCanadaRadioComponent, MspDateComponent, AccountPersonalDetailsComponent, CalendarYearValidator, CalendarMonthValidator, CalendarDayValidator, CalendarYearFormatter], - imports: [FormsModule] + declarations: [AddRemoveDependentComponent, ToggleComponent, StatusInCanadaRadioComponent, MspDateComponent, AccountPersonalDetailsComponent, CalendarYearValidator, CalendarMonthValidator, CalendarDayValidator, CalendarYearFormatter, AddNewDependentBeneficiaryComponent, MspNameComponent, MspGenderComponent, MspBirthDateComponent, MspPhnComponent, MspPhoneComponent, MspDischargeDateComponent, MspSchoolDateComponent, MspAddressComponent, MspProvinceComponent, MspArrivalDateComponent, MspOutofBCRecordComponent, Mod11CheckValidator, MspCountryComponent, MspDepartureDateComponent, MspReturnDateComponent], + imports: [FormsModule, Ng2CompleterModule], + providers: [MspDataService] }) .compileComponents(); })); @@ -26,6 +53,7 @@ describe('AddRemoveDependentsComponent', () => { beforeEach(() => { fixture = TestBed.createComponent(AddRemoveDependentComponent); component = fixture.componentInstance; + component.person = new Person(Relationship.Spouse); fixture.detectChanges(); }); diff --git a/src/app/components/msp/account/dependent-change/dependent-change.component.spec.ts b/src/app/components/msp/account/dependent-change/dependent-change.component.spec.ts index b50c29c76..77822a994 100644 --- a/src/app/components/msp/account/dependent-change/dependent-change.component.spec.ts +++ b/src/app/components/msp/account/dependent-change/dependent-change.component.spec.ts @@ -9,6 +9,9 @@ import { LocalStorageModule } from "angular-2-local-storage"; import { Relationship } from "../../model/status-activities-documents"; import { AccountDependentChangeComponent } from "./dependent-change.component"; + + + import { CaptchaComponent } from "mygovbc-captcha-widget/src/app/captcha/captcha.component"; import { CaptchaDataService } from "mygovbc-captcha-widget/src/app/captcha-data.service"; @@ -20,7 +23,6 @@ describe("AccountDependentChangeComponent", () => { const changeDetectorRefStub = {}; const routerStub = {}; const processServiceStub = {}; - const relationshipStub = {}; TestBed.configureTestingModule({ declarations: [ AccountDependentChangeComponent, CaptchaComponent ], schemas: [ NO_ERRORS_SCHEMA ], @@ -29,15 +31,12 @@ describe("AccountDependentChangeComponent", () => { MspDataService, { provide: Router, useValue: routerStub }, { provide: ProcessService, useValue: processServiceStub }, - // LocalStorageService, - LocalStorageModule.withConfig({ - prefix: 'TEST.ca.bc.gov.msp', - storageType: 'sessionStorage' - }), - { provide: Relationship, useValue: relationshipStub }, CaptchaDataService ], - imports: [FormsModule] + imports: [FormsModule, LocalStorageModule.withConfig({ + prefix: 'ca.bc.gov.msp', + storageType: 'sessionStorage' + })] }); fixture = TestBed.createComponent(AccountDependentChangeComponent); comp = fixture.componentInstance; @@ -47,10 +46,6 @@ describe("AccountDependentChangeComponent", () => { expect(comp).toBeTruthy(); }); - it("Relationship defaults to: Relationship", () => { - expect(comp.Relationship).toEqual(Relationship); - }); - it("changedDependents defaults to: []", () => { expect(comp.changedDependents).toEqual([]); }); @@ -83,7 +78,7 @@ describe("AccountDependentChangeComponent", () => { comp.addChild(Relationship.Child19To24); expect(comp.children.length).toBe(2); comp.clearDependent(comp.children[0]); - comp.clearDependent(comp.children[1]); + comp.clearDependent(comp.children[0]); //second child, as indexes are reset expect(comp.children.length).toBe(0); }); diff --git a/src/app/components/msp/account/dependent-change/dependent-change.component.ts b/src/app/components/msp/account/dependent-change/dependent-change.component.ts index c7d4269af..2698da373 100644 --- a/src/app/components/msp/account/dependent-change/dependent-change.component.ts +++ b/src/app/components/msp/account/dependent-change/dependent-change.component.ts @@ -63,6 +63,7 @@ export class AccountDependentChangeComponent extends BaseComponent { addChild(relationship: Relationship){ const child = new Person(relationship); this.changedDependents.push(child); + this.children.push(child); } /** Remove a dependent that the user had added to the form, e.g. by mistake. Spouse or children. */ @@ -73,6 +74,9 @@ export class AccountDependentChangeComponent extends BaseComponent { if (dependent.relationship === Relationship.Spouse){ this.spouse = null; } + + this.children = this.children + .filter(x => x !== dependent); } get spouse(): Person { @@ -87,6 +91,12 @@ export class AccountDependentChangeComponent extends BaseComponent { return this.dataService.getMspAccountApp().children; } + set children(val: Person[]) { + this.dataService.getMspAccountApp().children = val; + } + + + // TODO! get spouseRemoval(): Person { diff --git a/src/app/components/msp/account/prepare/prepare.component.spec.ts b/src/app/components/msp/account/prepare/prepare.component.spec.ts index 900af6d38..e1afed3dc 100644 --- a/src/app/components/msp/account/prepare/prepare.component.spec.ts +++ b/src/app/components/msp/account/prepare/prepare.component.spec.ts @@ -12,6 +12,7 @@ import { MspLogService } from '../../service/log.service'; import { ActivatedRoute, Router } from '@angular/router'; import { RouterTestingModule } from '@angular/router/testing'; import { ProcessService } from "../../service/process.service"; +import { MspApiService } from '../../service/msp-api.service'; import { CaptchaComponent } from "mygovbc-captcha-widget/src/app/captcha/captcha.component"; import { CaptchaDataService } from "mygovbc-captcha-widget/src/app/captcha-data.service"; @@ -27,7 +28,7 @@ describe('AccountPrepareComponent', () => { storageType: 'sessionStorage' })], providers: [MspDataService, MspLogService, ProcessService, - LocalStorageService, CaptchaDataService + LocalStorageService, CaptchaDataService, MspApiService ] }) diff --git a/src/app/components/msp/model/account.model.ts b/src/app/components/msp/model/account.model.ts index 6f6406ecd..0ef6a65e3 100644 --- a/src/app/components/msp/model/account.model.ts +++ b/src/app/components/msp/model/account.model.ts @@ -49,6 +49,7 @@ class MspAccountApp implements ApplicationBase { set children(value: Array) { this._children = value; + console.log("ARC account setChild length",this._children.length); } private _addedSpouse: Person; @@ -100,7 +101,9 @@ class MspAccountApp implements ApplicationBase { set removedSpouse(value: Person) { this._removedSpouse = value; - this._removedSpouse.operationActionType = OperationActionType.Remove; + if (value){ + this._removedSpouse.operationActionType = OperationActionType.Remove; + } } get addedSpouse(): Person { @@ -109,7 +112,9 @@ class MspAccountApp implements ApplicationBase { set addedSpouse(value: Person) { this._addedSpouse = value; - this._addedSpouse.operationActionType = OperationActionType.Add; + if (value){ + this._addedSpouse.operationActionType = OperationActionType.Add; + } } get updatedSpouse(): Person { @@ -118,7 +123,9 @@ class MspAccountApp implements ApplicationBase { set updatedSpouse(value: Person) { this._updatedSpouse = value; - this._updatedSpouse.operationActionType = OperationActionType.Update; + if (value){ + this._updatedSpouse.operationActionType = OperationActionType.Update; + } } set applicant(apt: Person) {