forked from phenom/healer-man
28 lines
1.4 KiB
TypeScript
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);
|
|
});
|
|
});
|