import { describe, expect, it } from "vitest"; import { ROM_ALL_ABILITIES } from "./romAbilityCatalog"; import { ROM_DRUID_ROGUE_SINISTER_REQUEST_RESOURCES } from "./romDruidRogueCurrentCoa"; describe("current CoA Druid/Rogue Sinister Request catalog", () => { it("restores each listed party resource to its maximum with the current 15-second cooldown", () => { const request = ROM_ALL_ABILITIES.find((ability) => ability.dbcSpellId === 494023 && ability.classId === "rom-druid" && ability.secondaryClassId === "rom-rogue"); expect(request).toBeDefined(); expect(request).toMatchObject({ name: "Sinister Request", target: "self", range: { max: 5 }, radius: 15, cooldownMs: 15_000, costs: [], effects: ROM_DRUID_ROGUE_SINISTER_REQUEST_RESOURCES.map((resource) => ({ kind: "resource", amount: 100, resource, percentage: true, scope: "party", })), }); expect(request!.description).toContain("restores the MP, Rage, Focus, Energy, Psi, and Nature's Power"); expect(request!.description).toContain("within radius 150"); expect(request!.description).toContain("Cooldown: 15 seconds"); expect(request!.description).not.toContain("does not yet apply"); expect(request!.description).not.toContain("attack and casting speed"); }); });