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!