import { actualPremiumFromHullPolicyRecord, customerIdFromHullPolicyRecord, FANAVARAN_DEFAULT_HULL_ACCIDENT_TYPE_ID, fanavaranHullNestedClaimId, toFanavaranHullBaseClaimPayload, } from "./fanavaran-hull-base-claim"; describe("fanavaran hull base claim", () => { it("reads ActualPremium and CustomerId from hull policy GET", () => { expect( actualPremiumFromHullPolicyRecord({ TotalPremium: 21613552 }), ).toBe(21613552); expect(customerIdFromHullPolicyRecord({ CustomerId: 1230091 })).toBe( 1230091, ); }); it("defaults CustomerFaultPercent to 100 when CulpritTypeId is 300", () => { const hull = toFanavaranHullBaseClaimPayload({ PolicyId: 1, CulpritTypeId: 300, }); expect(hull.CustomerFaultPercent).toBe(100); }); it("uses GEN.03 Id for nested files/expertise, not ClaimNo", () => { expect( fanavaranHullNestedClaimId({ Id: 5023617, ClaimNo: 2268 }), ).toBe(5023617); expect( fanavaranHullNestedClaimId({ claimId: 5023617, claimNo: 2268 }), ).toBe(5023617); expect(fanavaranHullNestedClaimId({ ClaimNo: 2268 })).toBeNull(); }); it("keeps IsLicenseReplaced null even when ثالث IsLicenseReplacement is 0", () => { const hull = toFanavaranHullBaseClaimPayload({ PolicyId: 1, IsLicenseReplacement: 0, }); expect(hull.IsLicenseReplaced).toBeNull(); }); it("strips ثالث-only fields from a live hull create echo", () => { const hull = toFanavaranHullBaseClaimPayload({ AccidentCauseId: 6, AccidentCityId: 701, AccidentDate: "1405/06/24", AccidentLocationAddress: "استان تهران شهر تهران", AccidentReportTypeId: 155, AccidentTime: "10:33", AccidentVehicleUsedId: 1, ActualPremium: 57270462, AnnouncementDate: "1405/06/24", ClaimExpertId: 154, ClaimNo: 2268, CompensationReferenceId: 167, CulpritLicenceNo: "9705463515", CulpritTypeId: 337, CustomerFaultPercent: 100, DamagedCount: 1, EstimateAmount: 16000000, HasOtherCulprit: 0, Id: 5023617, IsFatalAccident: 0, IsLicenseReplacement: null, IsPlaqueChanged: 0, PolicyId: 13764408, PreviousPolicyEndDate: "1404/10/23", SanhabVersion: 6, }); expect(hull.PolicyId).toBe(13764408); expect(hull.AccidentTypeId).toBe(FANAVARAN_DEFAULT_HULL_ACCIDENT_TYPE_ID); expect(hull.IsLicenseReplaced).toBeNull(); expect(hull.CostSeparationToDmgSections).toBe(0); expect(hull.IsOwnerChanged).toBe(0); expect(hull.CulpritTypeId).toBe(301); expect(hull.DamagedCount).toBeUndefined(); expect(hull.HasOtherCulprit).toBeUndefined(); expect(hull.CompensationReferenceId).toBeUndefined(); expect(hull.SanhabVersion).toBeUndefined(); expect(hull.Id).toBeUndefined(); expect(hull.ClaimNo).toBeUndefined(); }); });