fetchRuleProperty(risk: any) {
Iif (risk === "MC" && !this.fetchRuleAPICalledForMC) {
this.fetchRuleAPICalledForMC = true;
} else Iif (risk === "MV" && !this.fetchRuleAPICalledForMV) {
this.fetchRuleAPICalledForMV = true;
} else Iif (risk === "CT" && !this.fetchRuleAPICalledForCT) {
this.fetchRuleAPICalledForCT = true;
} else Iif (risk === "ALR" && !this.fetchRuleAPICalledForALR) {
this.fetchRuleAPICalledForALR = true;
} else {
return;
}
this.fetchRuleObj.eventCode = risk;
if (risk != "ALR") {
this.quoteCommonService
.fetchRuleProperty(this.fetchRuleObj)
?.pipe(takeUntil(this.unsubscribe$))
.subscribe((fetchruleResponse: any) => {
Iif (fetchruleResponse?.responsePayload) {
let dataRule = fetchruleResponse?.responsePayload;
const transformed: {
[key: string]: { key: string; value: string }[];
} = {
["Product Category"]: dataRule.ruleProperty.map(
(prop: any, index: any) => ({
key: prop.rulePropertyType,
value: prop.rulePropertyName,
}),
),
};
this.domainData.update((prev) => ({
...prev,
...transformed,
}));
// console.log("domainDataMerged", this.domainData());
}
});
} else {
this.quoteCommonService
.fetchRuleProperty(this.fetchRuleObjCommodity)
?.pipe(takeUntil(this.unsubscribe$))
.subscribe((fetchruleResponse: any) => {
Iif (fetchruleResponse?.responsePayload) {
let dataRule = fetchruleResponse?.responsePayload;
const transformed: {
[key: string]: { key: string; value: string }[];
} = {
["Commodity Type"]: dataRule.ruleProperty.map(
(prop: any, index: any) => ({
key: prop.rulePropertyName,
value: prop.rulePropertyType,
}),
),
};
this.domainData.update((prev) => ({
...prev,
...transformed,
}));
// console.log("domainDataMerged", this.domainData());
}
});
}
} 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!