66 lines
2.8 KiB
TypeScript
66 lines
2.8 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
wow335WarriorImprovedVictoryRushCooldownAuraDefinition,
|
|
wow335WarriorImprovedVictoryRushCriticalChanceBonusPercent,
|
|
wow335WarriorImprovedVictoryRushProfile,
|
|
wow335WarriorImprovedVictoryRushReadyAuraDefinition,
|
|
wow335WarriorImprovedVictoryRushShouldProc,
|
|
wow335WarriorImprovedVictoryRushThreatScale,
|
|
} from "./wow335WarriorVictoryRushRuntime";
|
|
|
|
describe("WoW Warrior Improved Victory Rush profile", () => {
|
|
it("reads its generated rank proc, critical, threat, window, and internal cooldown values", () => {
|
|
expect([1, 2, 3].map((rank) => wow335WarriorImprovedVictoryRushProfile(rank))).toEqual([
|
|
{
|
|
rank: 1,
|
|
parryProcChancePercent: 33,
|
|
criticalChanceBonusPercent: 20,
|
|
additionalThreatPercent: 33,
|
|
readyDurationMs: 10_000,
|
|
internalCooldownMs: 12_000,
|
|
},
|
|
{
|
|
rank: 2,
|
|
parryProcChancePercent: 66,
|
|
criticalChanceBonusPercent: 40,
|
|
additionalThreatPercent: 66,
|
|
readyDurationMs: 10_000,
|
|
internalCooldownMs: 12_000,
|
|
},
|
|
{
|
|
rank: 3,
|
|
parryProcChancePercent: 100,
|
|
criticalChanceBonusPercent: 60,
|
|
additionalThreatPercent: 100,
|
|
readyDurationMs: 10_000,
|
|
internalCooldownMs: 12_000,
|
|
},
|
|
]);
|
|
});
|
|
|
|
it("only arms after an eligible parry, while the internal cooldown is ready", () => {
|
|
expect(wow335WarriorImprovedVictoryRushShouldProc(1, true, false, 32.99)).toBe(true);
|
|
expect(wow335WarriorImprovedVictoryRushShouldProc(1, true, false, 33)).toBe(false);
|
|
expect(wow335WarriorImprovedVictoryRushShouldProc(3, false, false, 0)).toBe(false);
|
|
expect(wow335WarriorImprovedVictoryRushShouldProc(3, true, true, 0)).toBe(false);
|
|
expect(wow335WarriorImprovedVictoryRushShouldProc(0, true, false, 0)).toBe(false);
|
|
});
|
|
|
|
it("adds the generated critical chance to Victory Rush and doubles threat only from its parry window", () => {
|
|
expect(wow335WarriorImprovedVictoryRushCriticalChanceBonusPercent(3, "Victory Rush")).toBe(60);
|
|
expect(wow335WarriorImprovedVictoryRushCriticalChanceBonusPercent(3, "Whirlwind")).toBe(0);
|
|
expect(wow335WarriorImprovedVictoryRushThreatScale(3, "Victory Rush", true)).toBe(2);
|
|
expect(wow335WarriorImprovedVictoryRushThreatScale(2, "Victory Rush", true)).toBeCloseTo(1.66, 10);
|
|
expect(wow335WarriorImprovedVictoryRushThreatScale(3, "Victory Rush", false)).toBe(1);
|
|
expect(wow335WarriorImprovedVictoryRushReadyAuraDefinition(3)).toMatchObject({
|
|
durationMs: 10_000,
|
|
utilityTags: ["wow335-warrior-improved-victory-rush-ready"],
|
|
});
|
|
expect(wow335WarriorImprovedVictoryRushCooldownAuraDefinition(3)).toMatchObject({
|
|
durationMs: 12_000,
|
|
hideFromAuraStrip: true,
|
|
utilityTags: ["wow335-warrior-improved-victory-rush-cooldown"],
|
|
});
|
|
});
|
|
});
|