Files
healer-man/src/game/wow335MageFrostbiteRuntime.test.ts
T
2026-09-30 09:57:13 -04:00

28 lines
1.4 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
WOW335_MAGE_FROSTBITE_FREEZE_DURATION_MS,
wow335MageFrostbiteProcDurationMs,
} from "./wow335MageFrostbiteRuntime";
describe("WoW Mage Frostbite profile", () => {
it("uses the generated 5/10/15% ranks and four-second duration", () => {
expect(wow335MageFrostbiteProcDurationMs(1, "frost", true, 1, 0.049))
.toBe(WOW335_MAGE_FROSTBITE_FREEZE_DURATION_MS);
expect(wow335MageFrostbiteProcDurationMs(1, "frost", true, 1, 0.05)).toBe(0);
expect(wow335MageFrostbiteProcDurationMs(2, "frost", true, 1, 0.099))
.toBe(WOW335_MAGE_FROSTBITE_FREEZE_DURATION_MS);
expect(wow335MageFrostbiteProcDurationMs(2, "frost", true, 1, 0.1)).toBe(0);
expect(wow335MageFrostbiteProcDurationMs(3, "frost", true, 1, 0.149))
.toBe(WOW335_MAGE_FROSTBITE_FREEZE_DURATION_MS);
expect(wow335MageFrostbiteProcDurationMs(3, "frost", true, 1, 0.15)).toBe(0);
});
it("requires landed, positive Frost damage and keeps untrained ranks inactive", () => {
expect(wow335MageFrostbiteProcDurationMs(0, "frost", true, 1, 0)).toBe(0);
expect(wow335MageFrostbiteProcDurationMs(3, "fire", true, 1, 0)).toBe(0);
expect(wow335MageFrostbiteProcDurationMs(3, "frost", false, 1, 0)).toBe(0);
expect(wow335MageFrostbiteProcDurationMs(3, "frost", true, 0, 0)).toBe(0);
expect(wow335MageFrostbiteProcDurationMs(3, "frost", true, 1, Number.NaN)).toBe(0);
});
});