19 lines
1.1 KiB
TypeScript
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);
|
|
});
|
|
});
|