forked from Yara724/api
fix: harden claim review and inquiry workflows
Preserve damage history and current vehicle price, restore depreciation mapping, normalize inquiry/report output, and support resumable expert review with paginated case retrieval.
This commit is contained in:
@@ -462,4 +462,128 @@ describe("buildInsurerFileReport", () => {
|
||||
"پایه یک",
|
||||
);
|
||||
});
|
||||
|
||||
it("localizes participant and recent-transfer inquiry data", () => {
|
||||
const report = buildInsurerFileReport({
|
||||
overview: { publicId: "A00017" },
|
||||
blame: {
|
||||
type: "THIRD_PARTY",
|
||||
parties: [
|
||||
{
|
||||
role: "FIRST",
|
||||
person: { userId: "guilty", fullName: "مقصر" },
|
||||
},
|
||||
{
|
||||
role: "SECOND",
|
||||
person: { userId: "damaged", fullName: "زیاندیده" },
|
||||
participants: [
|
||||
{
|
||||
participantId: "DRIVER",
|
||||
fullName: "راننده",
|
||||
nationalCode: "0012345678",
|
||||
birthday: "1370/01/01",
|
||||
hasDrivingLicense: true,
|
||||
licenseNumber: "123456789",
|
||||
licenseType: "BASE_2",
|
||||
},
|
||||
],
|
||||
participantRoles: {
|
||||
driver: "DRIVER",
|
||||
vehicleOwner: "DRIVER",
|
||||
thirdPartyPolicyholder: "DRIVER",
|
||||
},
|
||||
vehicle: {
|
||||
registrationState: "RECENTLY_TRANSFERRED",
|
||||
previousPlateId: "55ج222ایران33",
|
||||
previousPolicyholderNationalCode: "0098765432",
|
||||
currentPlate: {
|
||||
leftDigits: "44",
|
||||
centerAlphabet: "ب",
|
||||
centerDigits: "111",
|
||||
ir: "22",
|
||||
},
|
||||
inquiry: {
|
||||
plateKind: "PREVIOUS",
|
||||
attempts: [
|
||||
{
|
||||
plateKind: "CURRENT",
|
||||
plate: {
|
||||
leftDigits: "44",
|
||||
centerAlphabet: "ب",
|
||||
centerDigits: "111",
|
||||
ir: "22",
|
||||
},
|
||||
succeeded: false,
|
||||
error: "not found",
|
||||
},
|
||||
{
|
||||
plateKind: "PREVIOUS",
|
||||
succeeded: true,
|
||||
usable: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
expert: { decision: { guiltyPartyId: "guilty" } },
|
||||
},
|
||||
claim: {
|
||||
vehicle: { carType: "SEDAN" },
|
||||
},
|
||||
});
|
||||
|
||||
expect(
|
||||
getFieldValue(
|
||||
report,
|
||||
PR.damagedVehicleSection,
|
||||
"خودرو / وضعیت پلاک و مالکیت",
|
||||
),
|
||||
).toBe("انتقال مالکیت اخیر");
|
||||
expect(
|
||||
getFieldValue(report, PR.damagedVehicleSection, "خودرو / نوع خودرو"),
|
||||
).toBe("سواری");
|
||||
expect(
|
||||
getFieldValue(report, PR.damagedVehicleSection, "خودرو / پلاک قبلی"),
|
||||
).toBe("55ج222ایران33");
|
||||
expect(
|
||||
getFieldValue(
|
||||
report,
|
||||
PR.damagedVehicleSection,
|
||||
"خودرو / پلاک فعلی / دو رقم چپ پلاک",
|
||||
),
|
||||
).toBe("44");
|
||||
|
||||
const driver = getFieldValue(
|
||||
report,
|
||||
PR.damagedParticipantsSection,
|
||||
PR.driverRole,
|
||||
);
|
||||
expect(driver).toContain("گواهینامه دارد: بله");
|
||||
expect(driver).toContain("نوع گواهینامه: پایه دو");
|
||||
expect(
|
||||
getFieldValue(
|
||||
report,
|
||||
PR.damagedVehicleSection,
|
||||
"خودرو / سوابق تلاش استعلام / تلاش ۱ / نوع پلاک استعلامشده",
|
||||
),
|
||||
).toBe("پلاک فعلی");
|
||||
expect(
|
||||
getFieldValue(
|
||||
report,
|
||||
PR.damagedVehicleSection,
|
||||
"خودرو / سوابق تلاش استعلام / تلاش ۱ / خطا",
|
||||
),
|
||||
).toBe("موردی یافت نشد");
|
||||
|
||||
const renderedText = report.sections
|
||||
.flatMap((section) => [
|
||||
section.title,
|
||||
...section.fields.flatMap((field) => [field.label, field.value]),
|
||||
])
|
||||
.join(" ");
|
||||
expect(renderedText).not.toMatch(
|
||||
/RECENTLY_TRANSFERRED|BASE_2|registrationState|previousPlateId|plateKind|not found|CURRENT|PREVIOUS/,
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user