JIT
Unit tests for CreateRiskComponent
openRiskPopup(fieldObj: any) { this.documentService.clearFiles(); Iif (fieldObj.fieldId === "riskCode") { this.riskCodeChk = fieldObj.value; if ( this.addedRiskList?.length > 0 && this.addedRiskList?.includes(fieldObj.value) && ["PL", "PA", "LA", "HI", "POLBAR", "ASB"].includes(fieldObj.value) ) { const alertMsg = `You can't have multiple ${fieldObj.value} risk.`; this.riskAddUtility.showModal(alertMsg); this.mainForm .get("ADDRISK.riskCode") ?.setValue("", { emitEvent: false }); return; } else { this.loadInitData(fieldObj.value); } } Iif (fieldObj.fieldId === "itemType") { if (fieldObj.value === "CARV") { const formData = this.dynamicFormService.formData(); let sections = formData[0].sections; const updatedSection = sections.map((section: any) => { Iif (section?.sectionID === "trailerDetail") { return { ...section, isVisible: false }; } Iif (section?.sectionID === "caravanDetail") { return { ...section, isVisible: true }; } return section; }); const newPageData = { ...formData[0], sections: updatedSection, }; formData[0] = newPageData; this.dynamicFormService.formData.set(formData); // console.log(formData, sections, this.mainForm, "fffff"); } else Iif (fieldObj.value === "TRAIL") { const formData = this.dynamicFormService.formData(); let sections = formData[0].sections; const updatedSection = sections.map((section: any) => { Iif (section?.sectionID === "caravanDetail") { return { ...section, 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); // this.fetchData.set(formData); } } } 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!

Looking at the openRiskPopup function, I need to add some missing mocks and create comprehensive test cases. Let me first update the spec file with the necessary mocks and then write the test cases.

Read file
Write file
Updated files
v1
handlePrevious() { if (this.presentView() == "Payer Details") { this.changeStepper.emit(2); } else E{ this.quoteCommonService .paymentDetails({ quoteNumber: this.sessionStorage.get("quoteNumber") }) .pipe(takeUntil(this.unsubscribe$)) .subscribe((data: any) => { Iif (data?.hasError === false) { const paymentInfo = [ { policyPaymentInfo: data?.responsePayload?.policyDetails, riskPaymentInfo: data?.responsePayload?.riskDetails, }, ]; this.isPaymentRetrieve.set(data?.isPresent ? paymentInfo : []); this.fetchPayerDetails(); console.log("FERCH PAYMENT", this.isPaymentRetrieve()); this.presentView.set("Payer Details"); } }); } } This is the above typescript code..write the full code of the test cases of the spec file! The given spec file import { ComponentFixture, fakeAsync, TestBed } from "@angular/core/testing"; import { PayerBankDetailsComponent } from "./payer-bank-details.component"; import { provideHttpClient } from "@angular/common/http"; import { HttpTestingController, provideHttpClientTesting, } from "@angular/common/http/testing"; import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; import { QuoteCommonService } from "../../services/quote-common-service.service"; import { of, throwError } from "rxjs"; import { FormArray, FormBuilder, FormGroup } from "@angular/forms"; import { WebStorageService } from "src/app/core/services/webStorage.service"; describe("PayerBankDetailsComponent", () => { let component: PayerBankDetailsComponent; let fixture: ComponentFixture<PayerBankDetailsComponent>; let mockQuoteService: jasmine.SpyObj<QuoteCommonService>; let mockWebStorageService: jasmine.SpyObj<WebStorageService>; let httpMock: HttpTestingController; beforeEach(async () => { mockQuoteService = jasmine.createSpyObj("QuoteCommonService", [ "fetchSessionDetails", "getInitialDetails", "saveSessionDetails", "issueQuote", "payerRiskMapping", "fetchRuleProperty", "checkSanctionDetails", "paymentDetails", "approveQuote", "retrievePartyDetails", ]); mockQuoteService.payerRiskMapping.and.returnValue( of({ hasError: false, status: "ok" }), ); mockWebStorageService = jasmine.createSpyObj("WebStorageService", [ "get", "set", ]); mockWebStorageService.get.and.returnValue({ policyDetails: { policyHolderName: "phtest", policyHolderCode: "pctest", debitOrderDate: "ddtest", policyExpiryDate: "pdtest", }, partyDetails: [{ role: "Payer", bankAccountDetails: "ac123" }], }); await TestBed.configureTestingModule({ imports: [PayerBankDetailsComponent, BrowserAnimationsModule], providers: [ provideHttpClient(), provideHttpClientTesting(), { provide: QuoteCommonService, useValue: mockQuoteService }, { provide: WebStorageService, useValue: mockWebStorageService }, ], }).compileComponents(); fixture = TestBed.createComponent(PayerBankDetailsComponent); component = fixture.componentInstance; httpMock = TestBed.inject(HttpTestingController); // component.existingBankingDetails.set({acNo: "default"}); fixture.detectChanges(); }); afterEach(() => {}); it("should create", () => { expect(component).toBeTruthy(); }); write the all test cases of spec file!
Read file
Write file
Created comprehensive test cases for handlePrevious method
v2
setSearchConfig(frmGrpName: String, riskCode?: String): any { if (frmGrpName == "PPDET") { return { ...this.searchConfig, payMentSec: "policy" }; } else { return { ...this.searchConfig, payMentSec: "risk", riskCode: 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, fakeAsync, TestBed } from "@angular/core/testing"; import { PayerBankDetailsComponent } from "./payer-bank-details.component"; import { provideHttpClient } from "@angular/common/http"; import { HttpTestingController, provideHttpClientTesting, } from "@angular/common/http/testing"; import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; import { QuoteCommonService } from "../../services/quote-common-service.service"; import { of, throwError } from "rxjs"; import { FormArray, FormBuilder, FormGroup } from "@angular/forms"; import { WebStorageService } from "src/app/core/services/webStorage.service"; describe("PayerBankDetailsComponent", () => { let component: PayerBankDetailsComponent; let fixture: ComponentFixture<PayerBankDetailsComponent>; let mockQuoteService: jasmine.SpyObj<QuoteCommonService>; let mockWebStorageService: jasmine.SpyObj<WebStorageService>; let httpMock: HttpTestingController; beforeEach(async () => { mockQuoteService = jasmine.createSpyObj("QuoteCommonService", [ "fetchSessionDetails", "getInitialDetails", "saveSessionDetails", "issueQuote", "payerRiskMapping", "fetchRuleProperty", "checkSanctionDetails", "paymentDetails", "approveQuote", "retrievePartyDetails", ]); mockQuoteService.payerRiskMapping.and.returnValue( of({ hasError: false, status: "ok" }), ); mockWebStorageService = jasmine.createSpyObj("WebStorageService", [ "get", "set", ]); mockWebStorageService.get.and.returnValue({ policyDetails: { policyHolderName: "phtest", policyHolderCode: "pctest", debitOrderDate: "ddtest", policyExpiryDate: "pdtest", }, partyDetails: [{ role: "Payer", bankAccountDetails: "ac123" }], }); await TestBed.configureTestingModule({ imports: [PayerBankDetailsComponent, BrowserAnimationsModule], providers: [ provideHttpClient(), provideHttpClientTesting(), { provide: QuoteCommonService, useValue: mockQuoteService }, { provide: WebStorageService, useValue: mockWebStorageService }, ], }).compileComponents(); fixture = TestBed.createComponent(PayerBankDetailsComponent); component = fixture.componentInstance; httpMock = TestBed.inject(HttpTestingController); // component.existingBankingDetails.set({acNo: "default"}); fixture.detectChanges(); }); afterEach(() => {}); it("should create", () => { expect(component).toBeTruthy(); }); write the all test cases of spec file!
Read file
Write file
Created comprehensive test cases for setSearchConfig method
v3