33 lines
1.3 KiB
TypeScript
33 lines
1.3 KiB
TypeScript
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");
|
|
});
|
|
});
|