forked from Yara724/api
62 lines
1.6 KiB
TypeScript
62 lines
1.6 KiB
TypeScript
import {
|
|
asPartyInquiryRows,
|
|
parseJalaliDateParts,
|
|
pickPersonBirthday,
|
|
pickPersonNationalCode,
|
|
selectFanavaranDriverId,
|
|
} from "./fanavaran-driver-inquiry";
|
|
|
|
describe("selectFanavaranDriverId", () => {
|
|
const rows = [
|
|
{ Id: 10, RoleId: 161, Name: "insurer" },
|
|
{ Id: 20, RoleId: 166, Name: "driver" },
|
|
];
|
|
|
|
it("prefers insurer role 161 when the driver is the owner", () => {
|
|
expect(selectFanavaranDriverId(rows, true)).toBe(10);
|
|
});
|
|
|
|
it("prefers driver role 166 when the driver is not the owner", () => {
|
|
expect(selectFanavaranDriverId(rows, false)).toBe(20);
|
|
});
|
|
|
|
it("uses the other role when the preferred role is missing", () => {
|
|
expect(selectFanavaranDriverId([{ Id: 20, RoleId: 166 }], true)).toBe(20);
|
|
});
|
|
|
|
it("unwraps a wrapped Fanavaran payload", () => {
|
|
expect(selectFanavaranDriverId({ value: rows }, true)).toBe(10);
|
|
});
|
|
});
|
|
|
|
describe("pickPersonNationalCode / birthday", () => {
|
|
it("uses insurer national code when driverIsInsurer", () => {
|
|
expect(
|
|
pickPersonNationalCode({
|
|
driverIsInsurer: true,
|
|
nationalCodeOfInsurer: "0012345678",
|
|
nationalCodeOfDriver: "",
|
|
}),
|
|
).toBe("0012345678");
|
|
});
|
|
|
|
it("falls back across birthday fields", () => {
|
|
expect(
|
|
pickPersonBirthday({
|
|
driverBirthday: null,
|
|
birthday: "13480313",
|
|
}),
|
|
).toBe("13480313");
|
|
});
|
|
});
|
|
|
|
describe("asPartyInquiryRows", () => {
|
|
it("parses compact Jalali birthday 13480313", () => {
|
|
expect(parseJalaliDateParts("13480313")).toEqual({
|
|
year: 1348,
|
|
month: 3,
|
|
day: 13,
|
|
});
|
|
});
|
|
});
|