import { describe, expect, it } from "vitest"; import { resolveFamilyKind } from "@ema-platform/api"; import { hasUnclaimedPool, savedViewsForFamily } from "./queue-views"; describe("resolveFamilyKind", () => { it("treats person-centric seafarer applications as document queues", () => { expect(resolveFamilyKind("SEAFARER_REGISTRATION")).toBe("DOCUMENT"); expect(resolveFamilyKind("SEAMAN_BOOK")).toBe("DOCUMENT"); expect(resolveFamilyKind("BTC_BASIC_TRAINING")).toBe("CERTIFICATE"); }); }); describe("hasUnclaimedPool", () => { it("keeps the unassigned pool for logistics licences", () => { expect(hasUnclaimedPool("FREIGHT_FORWARDER")).toBe(true); }); it("keeps it for vessel registration, a DOCUMENT queue that is still claimed", () => { expect(resolveFamilyKind("VESSEL_REGISTRATION")).toBe("DOCUMENT"); expect(hasUnclaimedPool("VESSEL_REGISTRATION")).toBe(true); expect(savedViewsForFamily(hasUnclaimedPool("VESSEL_REGISTRATION")).map((v) => v.id)).toContain( "unassigned", ); }); it("drops it for the person-centric services", () => { expect(hasUnclaimedPool("SEAMAN_BOOK")).toBe(false); expect(savedViewsForFamily(hasUnclaimedPool("SEAMAN_BOOK")).map((v) => v.id)).not.toContain( "unassigned", ); }); it("keeps it for the mixed All/Mine grids, where no type is pinned", () => { expect(hasUnclaimedPool(undefined)).toBe(true); }); });