Files
community-rule/tests/unit/setupTraits.test.ts
T

41 lines
1.2 KiB
TypeScript

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,
});
});
});