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

38 lines
1.4 KiB
TypeScript

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);
}
});
});