import { describe, expect, it } from "vitest"; import { TRAIT_KEYS } from "../../lib/create/deckTypes"; import { EMPTY_SETUP_TRAITS, hasTickedSetupTrait, setupTraitsFromTickedIds, tickedSetupTraitIds, } from "../../lib/create/setupTraits"; describe("setupTraits", () => { it("starts with every question off", () => { expect(TRAIT_KEYS.every((key) => EMPTY_SETUP_TRAITS[key] === false)).toBe( true, ); expect(hasTickedSetupTrait(undefined)).toBe(false); expect(hasTickedSetupTrait(EMPTY_SETUP_TRAITS)).toBe(false); expect(tickedSetupTraitIds(undefined)).toEqual([]); }); it("round-trips ticked ids as true or false on every trait", () => { const traits = setupTraitsFromTickedIds(["employer", "records"]); expect(traits).toEqual({ network: false, nonvoters: false, employer: true, sponsor: false, records: true, risky: false, }); expect(tickedSetupTraitIds(traits)).toEqual(["employer", "records"]); expect(hasTickedSetupTrait(traits)).toBe(true); }); it("ignores ids that are not setup questions", () => { expect(setupTraitsFromTickedIds(["employer", "police"])).toEqual({ ...EMPTY_SETUP_TRAITS, employer: true, }); }); });