fanavaran driver and owner id (GEN..44 defauts) - culprit type id dynamic

This commit is contained in:
2026-09-28 16:13:32 +03:30
parent a74e20b25f
commit 165afe56ae
7 changed files with 303 additions and 36 deletions

View File

@@ -5,6 +5,7 @@ import {
pickPersonBirthday,
pickPersonNationalCode,
selectFanavaranDriverId,
selectFanavaranOwnerId,
} from "./fanavaran-driver-inquiry";
describe("selectFanavaranDriverId", () => {
@@ -21,10 +22,32 @@ describe("selectFanavaranDriverId", () => {
expect(selectFanavaranDriverId(rows, false)).toBe(20);
});
it("uses the other role when the preferred role is missing", () => {
it("falls back to 166 when preferred 161 is missing", () => {
expect(selectFanavaranDriverId([{ Id: 20, RoleId: 166 }], true)).toBe(20);
});
it("returns null for RoleId 162 (بیمه‌شده) — GEN.44 required", () => {
expect(
selectFanavaranDriverId(
[
{
Id: 2390312,
RoleId: 162,
Name: "محمدعلي",
LastName: "موسوي",
},
],
false,
),
).toBeNull();
});
it("does not fall back to RoleId 163 for DriverId", () => {
expect(
selectFanavaranDriverId([{ Id: 99, RoleId: 163 }], false),
).toBeNull();
});
it("picks 4773521 from a real Fanavaran unique-identifier response", () => {
expect(
selectFanavaranDriverId(
@@ -39,6 +62,19 @@ describe("selectFanavaranDriverId", () => {
});
});
describe("selectFanavaranOwnerId", () => {
it("accepts only RoleId 161 or 166", () => {
expect(
selectFanavaranOwnerId([
{ Id: 1, RoleId: 162 },
{ Id: 2, RoleId: 163 },
]),
).toBeNull();
expect(selectFanavaranOwnerId([{ Id: 10, RoleId: 161 }])).toBe(10);
expect(selectFanavaranOwnerId([{ Id: 20, RoleId: 166 }])).toBe(20);
});
});
describe("pickPersonNationalCode / birthday", () => {
it("uses insurer national code when driverIsInsurer", () => {
expect(