26 lines
1.0 KiB
JavaScript
26 lines
1.0 KiB
JavaScript
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/);
|
|
});
|