import assert from "node:assert/strict"; import test from "node:test"; import { cloneDefaultCompanionSpecReadinessPolicy, normalizeCompanionSpecReadinessPolicy, } from "./companion-spec-readiness.mjs"; test("default companion readiness policy certifies the five focused specs", () => { const policy = normalizeCompanionSpecReadinessPolicy(cloneDefaultCompanionSpecReadinessPolicy()); assert.deepEqual(Object.entries(policy.statuses).filter(([, status]) => status === "ready").map(([id]) => id), [ "warrior:protection", "hunter:marksmanship", "rogue:assassination", "priest:discipline", "mage:fire", ]); }); test("companion readiness validation rejects invalid coverage and unknown specs", () => { assert.throws(() => normalizeCompanionSpecReadinessPolicy({ schemaVersion: 1, statuses: {} }), /tank specialization/); assert.throws(() => normalizeCompanionSpecReadinessPolicy({ schemaVersion: 1, statuses: { ...cloneDefaultCompanionSpecReadinessPolicy().statuses, "future:spec": "ready" }, }), /Unknown WoW specialization/); });