import { describe, expect, it } from "vitest"; import { romWardenRevivalNormalHeal } from "./romWardenRevivalRuntime"; describe("RuneWaker Warden Revival heal formula", () => { it("applies the source's 10% base plus 5% per buff stack, capped at ten", () => { expect(romWardenRevivalNormalHeal({ stacks: 0, targetMaxHealth: 10_000 })).toBe(1_000); expect(romWardenRevivalNormalHeal({ stacks: 1, targetMaxHealth: 10_000 })).toBe(1_500); expect(romWardenRevivalNormalHeal({ stacks: 10, targetMaxHealth: 10_000 })).toBe(6_000); expect(romWardenRevivalNormalHeal({ stacks: 15, targetMaxHealth: 10_000 })).toBe(6_000); }); it("clamps invalid stack and health inputs to the source-supported range", () => { expect(romWardenRevivalNormalHeal({ stacks: -3, targetMaxHealth: 10_000 })).toBe(1_000); expect(romWardenRevivalNormalHeal({ stacks: Number.NaN, targetMaxHealth: 10_000 })).toBe(1_000); expect(romWardenRevivalNormalHeal({ stacks: 5, targetMaxHealth: -1 })).toBe(0); expect(romWardenRevivalNormalHeal({ stacks: 5, targetMaxHealth: Number.NaN })).toBe(0); }); });