Files
healer-man/src/game/romWardenRevivalRuntime.test.ts
T

19 lines
1.1 KiB
TypeScript

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