forked from Yara724/api
YARA-883 + Side ID fixes
This commit is contained in:
83
src/helpers/claim-price-drop.spec.ts
Normal file
83
src/helpers/claim-price-drop.spec.ts
Normal file
@@ -0,0 +1,83 @@
|
||||
import {
|
||||
buildCoefficientsFromPartSeverities,
|
||||
calculateClaimPriceDrop,
|
||||
resolvePriceDropPartKeyFromDamagePart,
|
||||
resolveVehicleModelYearFromBlame,
|
||||
} from "./claim-price-drop";
|
||||
|
||||
describe("claim-price-drop", () => {
|
||||
it("maps catalog segment to price drop key", () => {
|
||||
expect(
|
||||
resolvePriceDropPartKeyFromDamagePart({
|
||||
name: "backfender",
|
||||
catalogKey: "left_backfender",
|
||||
}),
|
||||
).toBe("backFender");
|
||||
expect(
|
||||
resolvePriceDropPartKeyFromDamagePart({
|
||||
name: "hood",
|
||||
catalogKey: "front_carHood",
|
||||
}),
|
||||
).toBe("Hood");
|
||||
});
|
||||
|
||||
it("calculates total from formula", () => {
|
||||
const r = calculateClaimPriceDrop(400_000_000, 1394, [2, 3]);
|
||||
expect(r.sumOfSeverity).toBe(5);
|
||||
expect(r.coefficientYear).toBe(2.1);
|
||||
expect(r.total).toBe((400_000_000 * 2.1 * 5) / 400);
|
||||
});
|
||||
|
||||
it("reads model year from blame inquiry", () => {
|
||||
const year = resolveVehicleModelYearFromBlame(
|
||||
{ owner: { userId: "u1" } },
|
||||
{
|
||||
parties: [
|
||||
{
|
||||
role: "FIRST",
|
||||
person: { userId: "u1" },
|
||||
vehicle: {
|
||||
inquiry: { mapped: { ModelField: "1395" } },
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
);
|
||||
expect(year).toBe(1395);
|
||||
});
|
||||
|
||||
it("builds coefficients from expert severities", () => {
|
||||
const { coefficients, errors } = buildCoefficientsFromPartSeverities(
|
||||
[
|
||||
{
|
||||
id: 1,
|
||||
name: "backfender",
|
||||
side: "left",
|
||||
label_fa: "گلگیر",
|
||||
catalogKey: "left_backfender",
|
||||
},
|
||||
],
|
||||
[{ partId: 1, severity: "Moderate" }],
|
||||
);
|
||||
expect(errors).toHaveLength(0);
|
||||
expect(coefficients).toEqual([3]);
|
||||
});
|
||||
|
||||
it("accepts numeric catalog id (e.g. 201)", () => {
|
||||
const { coefficients, errors, lines } = buildCoefficientsFromPartSeverities(
|
||||
[
|
||||
{
|
||||
id: 201,
|
||||
name: "backfender",
|
||||
side: "left",
|
||||
label_fa: "گلگیر عقب (چپ)",
|
||||
catalogKey: "left_backfender",
|
||||
},
|
||||
],
|
||||
[{ partId: 201, severity: "Moderate" }],
|
||||
);
|
||||
expect(errors).toHaveLength(0);
|
||||
expect(coefficients).toEqual([3]);
|
||||
expect(lines[0]?.partId).toBe(201);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user