Spaces:
Sleeping
Sleeping
| import test from "node:test"; | |
| import assert from "node:assert/strict"; | |
| import { preferredPartnerGroupId, resolvedPartnerGroups } from "./partner-groups.js"; | |
| test("preferredPartnerGroupId picks a real partner group over a solo row", () => { | |
| const groups = [ | |
| { id: "solo", member_ids: [], participant_ids: ["u1"] }, | |
| { id: "pair", member_ids: ["u2"], participant_ids: ["u1", "u2"] }, | |
| ]; | |
| assert.equal(preferredPartnerGroupId(groups), "pair"); | |
| }); | |
| test("preferredPartnerGroupId preserves a valid explicit selection", () => { | |
| const groups = [ | |
| { id: "solo", member_ids: [] }, | |
| { id: "pair", member_ids: ["u2"] }, | |
| ]; | |
| assert.equal(preferredPartnerGroupId(groups, "solo"), "solo"); | |
| }); | |
| test("preferredPartnerGroupId falls back to first group when no partner group exists", () => { | |
| assert.equal(preferredPartnerGroupId([{ id: "solo", member_ids: [] }]), "solo"); | |
| assert.equal(preferredPartnerGroupId([]), ""); | |
| }); | |
| test("resolvedPartnerGroups prefers non-empty user.partner_groups over stale empty groups query", () => { | |
| const user = { partner_groups: [{ id: "g1", name: "Together" }] }; | |
| const groupsQuery = { items: [] }; | |
| assert.deepEqual(resolvedPartnerGroups(user, groupsQuery), [{ id: "g1", name: "Together" }]); | |
| }); | |
| test("resolvedPartnerGroups uses groups GET when user list not loaded yet", () => { | |
| const groupsQuery = { items: [{ id: "g2" }] }; | |
| assert.deepEqual(resolvedPartnerGroups(null, groupsQuery), [{ id: "g2" }]); | |
| }); | |
| test("resolvedPartnerGroups returns an empty array for empty or malformed sources", () => { | |
| assert.deepEqual(resolvedPartnerGroups({ partner_groups: [] }, { items: [] }), []); | |
| assert.deepEqual(resolvedPartnerGroups({ partner_groups: "bad" }, { items: "bad" }), []); | |
| }); | |
| test("preferredPartnerGroupId ignores stale selections and empty member placeholders", () => { | |
| const groups = [ | |
| { id: "solo", member_ids: [] }, | |
| { id: "empty-member", member_ids: [""] }, | |
| { id: "pair", member_ids: ["u2"] }, | |
| ]; | |
| assert.equal(preferredPartnerGroupId(groups, "missing"), "pair"); | |
| }); | |