Files
healer-man/src/game/wow335PaladinConcentrationAuraRuntime.test.ts
T
2026-10-02 10:38:12 -04:00

31 lines
1.6 KiB
TypeScript

import { describe, expect, it } from "vitest";
import generatedAbilityData from "./wow335AbilityData.generated.json";
import { WOW335_TALENT_NODES } from "./wow335Talents.generated";
import { wow335PaladinConcentrationAuraPushbackReduction } from "./wow335PaladinConcentrationAuraRuntime";
describe("WoW 3.3.5 Paladin Concentration Aura pushback", () => {
it("applies the generated base reduction and Improved Concentration Aura's flat effect modifier", () => {
const aura = generatedAbilityData.classes.paladin.find(
(ability) => ability.name === "Concentration Aura",
);
const effect = aura?.ranks[0]?.effects.find((row) => row.auraType === 149);
const talent = WOW335_TALENT_NODES.find((node) => node.name === "Improved Concentration Aura");
expect(effect?.basePoints).toBe(35);
expect(talent?.rankEffects.slice(0, 3).map((rank) => (
rank.effects.find((row) => row.index === 0)?.basePoints
))).toEqual([7, 14, 20]);
expect([0, 1, 2, 3].map((rank) => (
wow335PaladinConcentrationAuraPushbackReduction(true, rank)
))).toEqual([0.35, 0.42, 0.49, 0.55]);
});
it("does nothing when Concentration Aura is absent and clamps invalid talent ranks", () => {
expect(wow335PaladinConcentrationAuraPushbackReduction(false, 3)).toBe(0);
expect(wow335PaladinConcentrationAuraPushbackReduction(true, -1)).toBe(0.35);
expect(wow335PaladinConcentrationAuraPushbackReduction(true, 1.9)).toBe(0.42);
expect(wow335PaladinConcentrationAuraPushbackReduction(true, 99)).toBe(0.55);
expect(wow335PaladinConcentrationAuraPushbackReduction(true, Number.NaN)).toBe(0.35);
});
});