forked from phenom/healer-man
89 lines
3.5 KiB
TypeScript
89 lines
3.5 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { ROM_ALL_ABILITIES } from "./romAbilityCatalog";
|
|
import {
|
|
ROM_DRUID_MAGE_INSPIRATION_DESCRIPTION,
|
|
ROM_DRUID_MAGE_INSPIRATION_PASSIVE_ID,
|
|
} from "./romDruidMageInspirationRuntime";
|
|
import {
|
|
ROM_MAGE_DRUID_GREEN_GUARDIAN_DESCRIPTION,
|
|
ROM_MAGE_DRUID_GREEN_GUARDIAN_SKILL_ID,
|
|
} from "./romMageDruidGreenGuardianRuntime";
|
|
|
|
describe("current CoA Druid/Mage Inspiration catalog entry", () => {
|
|
const passive = ROM_ALL_ABILITIES.find((ability) => ability.dbcSpellId === ROM_DRUID_MAGE_INSPIRATION_PASSIVE_ID
|
|
&& ability.classId === "rom-druid" && ability.secondaryClassId === "rom-mage");
|
|
|
|
it("updates the existing generated exact-pair passive without adding a skill row", () => {
|
|
expect(passive).toBeDefined();
|
|
expect(passive).toMatchObject({
|
|
classId: "rom-druid",
|
|
secondaryClassId: "rom-mage",
|
|
dbcSpellId: ROM_DRUID_MAGE_INSPIRATION_PASSIVE_ID,
|
|
name: "Inspiration",
|
|
unlockLevel: 30,
|
|
sourceUnlockLevel: 30,
|
|
passive: true,
|
|
romSkillGroup: "passive",
|
|
target: "self",
|
|
castTimeMs: 0,
|
|
cooldownMs: 0,
|
|
costs: [],
|
|
effects: [],
|
|
});
|
|
expect(passive?.id).toBe("rom-druid-rom-mage-elite-30");
|
|
expect(ROM_ALL_ABILITIES.filter((ability) => ability.dbcSpellId === ROM_DRUID_MAGE_INSPIRATION_PASSIVE_ID))
|
|
.toHaveLength(1);
|
|
});
|
|
|
|
it("uses current CoA spend-trigger values in both the passive and its rank tooltip", () => {
|
|
expect(passive?.description).toBe(ROM_DRUID_MAGE_INSPIRATION_DESCRIPTION);
|
|
expect(passive?.description).toContain("whenever you spend Nature's Power");
|
|
expect(passive?.description).toContain("Physical Attack Speed and Casting Speed by 2% per stack");
|
|
expect(passive?.description).toContain("up to 10 stacks for 10 seconds");
|
|
expect(passive?.description).toContain("cannot be proven identical to local Fireball 490204");
|
|
expect(passive?.description).not.toMatch(/chance.*Fireball|next spell.*1 second/i);
|
|
expect(passive?.ranks).toHaveLength(1);
|
|
expect(passive?.ranks?.[0]).toMatchObject({
|
|
spellId: ROM_DRUID_MAGE_INSPIRATION_PASSIVE_ID,
|
|
costs: [],
|
|
effects: [],
|
|
description: ROM_DRUID_MAGE_INSPIRATION_DESCRIPTION,
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("current CoA Mage/Druid Green Guardian catalog entry", () => {
|
|
const skill = ROM_ALL_ABILITIES.find((ability) => ability.dbcSpellId === ROM_MAGE_DRUID_GREEN_GUARDIAN_SKILL_ID
|
|
&& ability.classId === "rom-mage" && ability.secondaryClassId === "rom-druid");
|
|
|
|
it("turns only the existing exact-pair row into the current level-25 instant self skill", () => {
|
|
expect(skill).toMatchObject({
|
|
id: "rom-mage-rom-druid-elite-30",
|
|
classId: "rom-mage",
|
|
secondaryClassId: "rom-druid",
|
|
dbcSpellId: ROM_MAGE_DRUID_GREEN_GUARDIAN_SKILL_ID,
|
|
unlockLevel: 25,
|
|
passive: false,
|
|
romSkillGroup: "elite",
|
|
target: "self",
|
|
castMode: "instant",
|
|
castTimeMs: 0,
|
|
cooldownMs: 0,
|
|
costs: [],
|
|
effects: [{ kind: "apply-aura" }],
|
|
});
|
|
expect(skill?.description).toBe(ROM_MAGE_DRUID_GREEN_GUARDIAN_DESCRIPTION);
|
|
expect(skill?.ranks?.[0]).toMatchObject({
|
|
level: 25,
|
|
spellId: ROM_MAGE_DRUID_GREEN_GUARDIAN_SKILL_ID,
|
|
castTimeMs: 0,
|
|
cooldownMs: 0,
|
|
costs: [],
|
|
description: ROM_MAGE_DRUID_GREEN_GUARDIAN_DESCRIPTION,
|
|
effects: [{ kind: "apply-aura" }],
|
|
});
|
|
expect(ROM_ALL_ABILITIES.filter((ability) => ability.dbcSpellId === ROM_MAGE_DRUID_GREEN_GUARDIAN_SKILL_ID))
|
|
.toHaveLength(1);
|
|
});
|
|
});
|