import { describe, expect, it } from "vitest"; import { romPriestScoutSaintsBlessingDamageMultiplier } from "./romPriestScoutSaintsBlessingDamage"; const base = { primaryClassId: "rom-priest", secondaryClassId: "rom-scout", learnedPassiveSpellIds: [493_039], }; describe("CoA Priest/Scout Saint's Blessing execute damage rider", () => { it("grants +28% damage below, but not at, the 30% target-health threshold", () => { expect(romPriestScoutSaintsBlessingDamageMultiplier({ ...base, targetHealthPercent: 0.299 })) .toBeCloseTo(1.28); expect(romPriestScoutSaintsBlessingDamageMultiplier({ ...base, targetHealthPercent: 0.3 })) .toBe(1); }); it("requires the exact Priest-primary/Scout-secondary pair and learned passive", () => { expect(romPriestScoutSaintsBlessingDamageMultiplier({ ...base, primaryClassId: "rom-scout", secondaryClassId: "rom-priest", targetHealthPercent: 0.1, })).toBe(1); expect(romPriestScoutSaintsBlessingDamageMultiplier({ ...base, learnedPassiveSpellIds: [], targetHealthPercent: 0.1, })).toBe(1); }); it("does not apply to dead, invalid, or full-health targets", () => { for (const targetHealthPercent of [0, 0.3, 1, Number.NaN, Number.POSITIVE_INFINITY]) { expect(romPriestScoutSaintsBlessingDamageMultiplier({ ...base, targetHealthPercent })).toBe(1); } }); });