JIT
Spec tests for CreateRiskComponent
ngOnInit(): void { this.dynamicFormService.captureClickFromButton = this.parentMethod.bind(this); // for edit or add riskPage Loading this.navigation = this.webStorageService.get("reqObjFetchRisk"); // console.log(navigation); return; if (this.navigation) { this.loadInitData(this.navigation.riskCode); this.createriskObj = this.navigation; this.createRiskData .findRiskList(this.createriskObj) ?.pipe(takeUntil(this.unsubscribe$)) .subscribe((findRiskListResp: any) => { if (!findRiskListResp?.hasError) { const risk: any = findRiskListResp?.responsePayload?.riskDetails?.find( (eachRisk: QuoteApi.BrokerRiskDetail) => { return eachRisk.riskCode === this.createriskObj?.riskCode; }, ); // console.log("risk", risk); this.riskObj = risk; Iif (risk) { const initDataResp = this.dynamicFormService.formData(); // console.log("initDataResp", initDataResp); let flatMapObj: any = {}; initDataResp?.map((eachPage: any) => { // console.log("eachPage", eachPage); eachPage.sections?.map((eachSection: any) => { let sectionId = eachSection?.sectionID; if (sectionId === "watercraftInformation") { sectionId = "vehicleInformation"; } else if ( sectionId === "securityDetailsWC" || sectionId === "securityDetailsHHC" ) { sectionId = "securityDetail"; } else if (sectionId === "coverGroupHI") { sectionId = "coverGroup"; } else if (sectionId === "coverGroupLA") { sectionId = "coverGroup"; } else if (sectionId === "coverGroupCT") { sectionId = "coverGroup"; } else if (sectionId === "financeDetailTUC") { sectionId = "financeDetail"; } else if (sectionId === "VehicleDetailsTUC") { sectionId = "VehicleDetails"; } else Iif (sectionId === "personalValuablesOwnerInfo") { sectionId = "ownerInformation"; } Iif (risk[sectionId]) { flatMapObj = { ...flatMapObj, ...risk[sectionId] }; } Iif (sectionId === "driverDetails") { const driver = risk?.[sectionId]?.[0]; Iif (driver) { flatMapObj = { ...flatMapObj, ...driver, ...(driver.driverContactDetails ?? {}), }; } // flatMapObj = { // ...flatMapObj, // ...risk[sectionId] ?? risk[sectionId][0], // ...risk[sectionId] ?? risk[sectionId][0]?.driverContactDetails, // }; } }); flatMapObj.riskCode = risk.riskCode; Iif (flatMapObj.riskCode) { flatMapObj.riskInceptionDate = this.commonUtilService.convertToDDMMYYYY( risk?.basicDetails?.riskInceptionDate, ); } //setting all true and false to Y & N Object.keys(flatMapObj).forEach((key) => { Iif (typeof flatMapObj[key] === "boolean") { flatMapObj[key] = flatMapObj[key] ? "Y" : "N"; } }); this.dynamicFormService.setDependentSection( this.riskConstantService.dependentData[risk.riskCode], ); this.dynamicFormService.setRiskData({ riskData: flatMapObj, section: [ { id: null, key: risk?.riskCode, value: risk?.riskName, }, ], cover: this.riskCodeListWithCg?.find( (obj: any) => obj.key === risk?.riskCode, ).coverGroup, }); flatMapObj.isEngineDetails = flatMapObj.motorNumber > 0 ? "Y" : "N"; flatMapObj.isAccessoryAvailableForVehicle = flatMapObj.accessoryDetails?.length > 0 ? "Y" : "N"; flatMapObj.watercraftenginedetails = flatMapObj.engineDetails; // flatMapObj.accessorydetails = flatMapObj.accessoryDetails; flatMapObj.claimHistory = flatMapObj?.claimDetail; flatMapObj.additionalSecurityFeatures = flatMapObj.additionalSecurityFeatures?.map((data: any) => { return data.whichAdditionalSecurityFeaturesPresent; }); // flatMapObj.driverDetails = flatMapObj.driverDetails?.map((data: any) => { // console.log(data); // return [data]; // }); // flatMapObj.driverDetails = flatMapObj["0"] this.fetchData.set(flatMapObj); console.log(flatMapObj); if (flatMapObj?.itemType === "CARV") { const formData = this.dynamicFormService.formData(); let sections = formData[0].sections; const updatedSection = sections.map((section: any) => { Iif (section?.sectionID === "trailerDetail") { return { isVisible: false }; } Iif (section?.sectionID === "caravanDetail") { console.log("toooooo"); return { ...section, isVisible: true }; } return section; }); const newPageData: any = { ...formData[0], sections: updatedSection, }; formData[0] = newPageData; // this.dynamicFormService.formData.set(formData); flatMapObj = { ...flatMapObj, updatedSection }; this.fetchData.set(flatMapObj); // console.log(formData, sections, this.mainForm, "fffff"); } else Iif (flatMapObj?.itemType === "TRAIL") { const formData = this.dynamicFormService.formData(); let sections = formData[0].sections; const updatedSection = sections.map((section: any) => { Iif (section?.sectionID === "caravanDetail") { return { isVisible: false }; } Iif (section?.sectionID === "trailerDetail") { return { ...section, isVisible: true }; } return section; }); const newPageData = { ...formData[0], sections: updatedSection, }; formData[0] = newPageData; // this.dynamicFormService.formData.set(formData); flatMapObj = { ...flatMapObj, formData }; this.fetchData.set(flatMapObj); // this.fetchData.set(formData); } // console.log( // this.fetchData(), // "consoling after setting fetchdata", // ); }); console.log("uuu", this.fetchData()); this.formChangeEvent(); } } // console.log("riskDetailsData", this.riskDetailsData); }); } else { this.loadInitData(); // this.fetchData.set({ // insuredName: this.partyDetail?.firstName + " " + this.partyDetail?.lastName, // identityType: this.partyDetail?.idType, // passportNumber: // this.partyObj?.idType === "PP" // ? this.partyObj?.passportNumber // : this.partyObj?.idNumber, // passportExpiryDate: this.partyDetail?.passportExpiryDate, // }); } } loadInitData(riskCode = "") { // alert(riskCode); this.mainForm = this.formBuilder.group({}); this.isFormReady = false; this.domainData.set(""); this.quoteCommonService .getInitData() ?.pipe(takeUntil(this.unsubscribe$)) .subscribe((initDataResp: any) => { //setting the data for main form service initDataResp?.map((eachPage: any) => { const riskSection = this.riskConstantService.dependentData[riskCode]; eachPage.sections?.map((eachSection: any) => { let sectionId = eachSection?.sectionID; // console.log(riskCode, eachSection, sectionId, sectionId.includes(riskSection)); if (riskSection?.includes(sectionId)) { eachSection.isVisible = true; } else { eachSection.isVisible = false; } Iif (sectionId === "policyRiskType") { eachSection.isVisible = true; eachSection.fields[0].defaultValue = riskCode; eachSection.fields[1].defaultValue = this.today.toLocaleDateString(); } Iif (riskCode === "CT") { Iif (sectionId === "trailerDetail") { eachSection.isVisible = false; } } }); }); this.dynamicFormService.formData.set(initDataResp); this.dynamicFormService.formData().forEach((eachPage: any) => { this.mainForm.addControl(eachPage.pageMasterId, new FormGroup({})); }); // console.log(riskCode, this.riskConstantService.dependentData[riskCode], this.dynamicFormService.formData()); this.isFormReady = true; this.setRiskFormData(riskCode); }); } This is the above typescript code..write the full code of the test cases of the spec file! The given spec file import { ComponentFixture, TestBed } from "@angular/core/testing"; import { HttpTestingController, provideHttpClientTesting, } from "@angular/common/http/testing"; import { provideHttpClient } from "@angular/common/http"; import { CreateRiskComponent } from "./create-risk.component"; import { QuoteCommonService } from "../../services/quote-common-service.service"; import { of } from "rxjs"; import { createRiskService } from "../../createRiskDetails.service"; import { WebStorageService } from "src/app/core/services/webStorage.service"; import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; import { DynamicFormsService, ModalService } from "@shared"; import { signal } from "@angular/core"; import { mmserviceView } from "src/app/shared/services/mmModal.service"; import { RiskModalService } from "../../services/risk-modal.service"; describe("CreateRiskComponent", () => { let component: CreateRiskComponent; let fixture: ComponentFixture<CreateRiskComponent>; let mockQuoteService: jasmine.SpyObj<QuoteCommonService>; let mockCreateRiskService: jasmine.SpyObj<createRiskService>; let mockWebStorageService: jasmine.SpyObj<WebStorageService>; let mockDynamicFormsService: jasmine.SpyObj<DynamicFormsService>; let mockMmserviceView: jasmine.SpyObj<mmserviceView>; let mockModalService: jasmine.SpyObj<ModalService>; let mockriskModalService: jasmine.SpyObj<RiskModalService>; let httpMock: HttpTestingController; beforeEach(async () => { mockQuoteService = jasmine.createSpyObj("QuoteCommonService", [ "getInitData", "fetchDomainValues", "fetchRuleProperty", "retriveQuote", "retrieveQuoteOrPolicy", ]); mockCreateRiskService = jasmine.createSpyObj("createRiskService", [ "findRiskList", ]); mockMmserviceView = jasmine.createSpyObj("mmserviceView", ["getMMview"]); mockModalService = jasmine.createSpyObj("ModalService", ["openModal"]); mockriskModalService = jasmine.createSpyObj("RiskModalService", [ "openDataModal", ]); mockWebStorageService = jasmine.createSpyObj("WebStorageService", ["get"]); mockDynamicFormsService = jasmine.createSpyObj("DynamicFormsService", [ "setRiskData", "getRiskData", "setTextSearchData", "setDependentSection", "formData", ]); (mockDynamicFormsService as any).formData = signal([ { test: "test", sections: [{ sectionID: "sc1" }, { sectionID: "sc2" }] }, ]); await TestBed.configureTestingModule({ imports: [CreateRiskComponent, BrowserAnimationsModule], providers: [provideHttpClient(), provideHttpClientTesting()], }) .overrideComponent(CreateRiskComponent, { set: { providers: [ { provide: QuoteCommonService, useValue: mockQuoteService }, { provide: createRiskService, useValue: mockCreateRiskService }, { provide: WebStorageService, useValue: mockWebStorageService }, { provide: DynamicFormsService, useValue: mockDynamicFormsService }, { provide: mmserviceView, useValue: mockMmserviceView }, { provide: ModalService, useValue: mockModalService }, ], }, }) .compileComponents(); fixture = TestBed.createComponent(CreateRiskComponent); component = fixture.componentInstance; httpMock = TestBed.inject(HttpTestingController); component.riskCodeListWithCg = [ { key: "rs1", coverGroup: "cg1" }, { key: "rs2", coverGroup: "cg2" }, { key: "rs3", coverGroup: "cg3" }, { key: "rs4", coverGroup: "cg4" }, ]; fixture.detectChanges(); }); it("should create", () => { expect(component).toBeTruthy(); }); write the all test cases of spec file!

I'll write comprehensive test cases for the CreateRiskComponent spec file based on the provided code. Let me analyze the component behavior and create thorough test coverage.

Write file
Created comprehensive test cases for CreateRiskComponent
v1