forked from Yara724/api
131 lines
3.6 KiB
TypeScript
131 lines
3.6 KiB
TypeScript
import { BlameRequestType } from "src/Types&Enums/blame-request-management/blameRequestType.enum";
|
|
import { RequestManagementService } from "./request-management.service";
|
|
|
|
describe("RequestManagementService previous policyholder routing", () => {
|
|
const currentPlate = {
|
|
leftDigits: "44",
|
|
centerAlphabet: "ب",
|
|
centerDigits: "111",
|
|
ir: "22",
|
|
};
|
|
const previousPlate = {
|
|
leftDigits: "55",
|
|
centerAlphabet: "ج",
|
|
centerDigits: "222",
|
|
ir: "33",
|
|
};
|
|
const vehicle = {
|
|
registrationState: "RECENTLY_TRANSFERRED",
|
|
currentPlate,
|
|
previousPlate,
|
|
previousPolicyholderNationalCode: "0098765432",
|
|
vin: "NAAM01E15HK123456",
|
|
};
|
|
|
|
function participantInput(caseType: BlameRequestType) {
|
|
return {
|
|
driver: {
|
|
nationalCode: "0011111111",
|
|
birthday: "1370/01/01",
|
|
hasDrivingLicense: false,
|
|
},
|
|
vehicleOwner: { sameAs: "DRIVER" },
|
|
thirdPartyPolicyholder: {
|
|
nationalCode: "0022222222",
|
|
birthday: "1360/02/02",
|
|
},
|
|
...(caseType === BlameRequestType.CAR_BODY
|
|
? {
|
|
carBodyPolicyholder: {
|
|
nationalCode: "0033333333",
|
|
birthday: "1350/03/03",
|
|
},
|
|
}
|
|
: {}),
|
|
vehicle,
|
|
};
|
|
}
|
|
|
|
it("uses the previous code only for the previous-plate third-party lookup", async () => {
|
|
const service = Object.create(RequestManagementService.prototype) as any;
|
|
service.sandHubService = {
|
|
getTejaratBlockInquiry: jest
|
|
.fn()
|
|
.mockResolvedValueOnce({ raw: {}, mapped: {} })
|
|
.mockResolvedValueOnce({
|
|
raw: {},
|
|
mapped: {
|
|
CompanyName: "پارسیان",
|
|
VinNumberField: vehicle.vin,
|
|
},
|
|
}),
|
|
};
|
|
const submission = service.normalizeInquiryInput(
|
|
BlameRequestType.THIRD_PARTY,
|
|
participantInput(BlameRequestType.THIRD_PARTY),
|
|
);
|
|
|
|
const result = await service.getThirdPartyPlateInquiry(submission);
|
|
|
|
expect(result.plateKind).toBe("PREVIOUS");
|
|
expect(
|
|
service.sandHubService.getTejaratBlockInquiry,
|
|
).toHaveBeenNthCalledWith(
|
|
1,
|
|
expect.objectContaining({
|
|
plate: currentPlate,
|
|
nationalCodeOfInsurer: "0022222222",
|
|
}),
|
|
undefined,
|
|
);
|
|
expect(
|
|
service.sandHubService.getTejaratBlockInquiry,
|
|
).toHaveBeenNthCalledWith(
|
|
2,
|
|
expect.objectContaining({
|
|
plate: previousPlate,
|
|
nationalCodeOfInsurer: "0098765432",
|
|
}),
|
|
undefined,
|
|
);
|
|
});
|
|
|
|
it("uses the previous code only for the previous-plate car-body lookup", async () => {
|
|
const service = Object.create(RequestManagementService.prototype) as any;
|
|
service.sandHubService = {
|
|
getCarBodyInquiry: jest
|
|
.fn()
|
|
.mockResolvedValueOnce({ raw: {}, mapped: {} })
|
|
.mockResolvedValueOnce({
|
|
raw: {},
|
|
mapped: {
|
|
policyNumber: "BODY-1",
|
|
VinNumberField: vehicle.vin,
|
|
},
|
|
}),
|
|
};
|
|
const submission = service.normalizeInquiryInput(
|
|
BlameRequestType.CAR_BODY,
|
|
participantInput(BlameRequestType.CAR_BODY),
|
|
);
|
|
|
|
const result = await service.getCarBodyPlateInquiry(submission);
|
|
|
|
expect(result.plateKind).toBe("PREVIOUS");
|
|
expect(service.sandHubService.getCarBodyInquiry).toHaveBeenNthCalledWith(
|
|
1,
|
|
expect.objectContaining({
|
|
plate: currentPlate,
|
|
nationalCodeOfInsurer: "0033333333",
|
|
}),
|
|
);
|
|
expect(service.sandHubService.getCarBodyInquiry).toHaveBeenNthCalledWith(
|
|
2,
|
|
expect.objectContaining({
|
|
plate: previousPlate,
|
|
nationalCodeOfInsurer: "0098765432",
|
|
}),
|
|
);
|
|
});
|
|
});
|