29 lines
1.2 KiB
TypeScript
29 lines
1.2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { highestEndlessBossKillsAfterDefeat, highestRoguelikeRoundAfterDefeat } from "./hunterStats";
|
|
|
|
describe("roguelike hunter records", () => {
|
|
it("records the reached defeat round without lowering a previous best", () => {
|
|
expect(highestRoguelikeRoundAfterDefeat(0, 1)).toBe(1);
|
|
expect(highestRoguelikeRoundAfterDefeat(7, 12)).toBe(12);
|
|
expect(highestRoguelikeRoundAfterDefeat(12, 7)).toBe(12);
|
|
});
|
|
|
|
it("normalizes invalid and fractional round values", () => {
|
|
expect(highestRoguelikeRoundAfterDefeat(Number.NaN, Number.NaN)).toBe(1);
|
|
expect(highestRoguelikeRoundAfterDefeat(4.9, 8.9)).toBe(8);
|
|
});
|
|
});
|
|
|
|
describe("Rogue Trials endless hunter records", () => {
|
|
it("keeps the highest boss count from one endless run", () => {
|
|
expect(highestEndlessBossKillsAfterDefeat(0, 17)).toBe(17);
|
|
expect(highestEndlessBossKillsAfterDefeat(17, 9)).toBe(17);
|
|
expect(highestEndlessBossKillsAfterDefeat(17, 23)).toBe(23);
|
|
});
|
|
|
|
it("normalizes invalid and fractional kill counts", () => {
|
|
expect(highestEndlessBossKillsAfterDefeat(Number.NaN, Number.NaN)).toBe(0);
|
|
expect(highestEndlessBossKillsAfterDefeat(4.9, 8.9)).toBe(8);
|
|
});
|
|
});
|