Release v0.1.6 2026-07-12
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { AVAILABLE_BOSS_IDS } from "./bossCatalog";
|
||||
import {
|
||||
RUN_BUFF_ORDER,
|
||||
RUN_BUFFS,
|
||||
@@ -8,6 +9,8 @@ import {
|
||||
formatRunBuffEffect,
|
||||
increaseRunBuffRank,
|
||||
selectRandomBossPair,
|
||||
selectRogueTrialsBosses,
|
||||
selectUnseenBosses,
|
||||
selectRunBuffDraft,
|
||||
} from "./roguelike";
|
||||
import type { RunBuffRanks } from "./types";
|
||||
@@ -75,4 +78,26 @@ describe("roguelike progression", () => {
|
||||
expect(pair).not.toContain("bulldrome");
|
||||
expect(pair).not.toContain("broodfang-spider");
|
||||
});
|
||||
|
||||
it("selects three distinct unseen bosses for Rogue Trials round five", () => {
|
||||
const seen = [
|
||||
"bulldrome",
|
||||
"sandglass-scorpion",
|
||||
"cragclaw-crab",
|
||||
"mournveil-ghost",
|
||||
"crownshard-golem",
|
||||
"crystal-bat-matriarch",
|
||||
"stormwool-alpaca",
|
||||
"cluckhorn-colossus",
|
||||
] as const;
|
||||
const trio = selectRogueTrialsBosses(5, seen, () => 0);
|
||||
|
||||
expect(trio).toEqual(["ashwing-demon", "riftclaw-demon", "tempestscale-dragon"]);
|
||||
expect(new Set(trio)).toHaveLength(3);
|
||||
expect(trio.every((bossId) => !seen.includes(bossId as typeof seen[number]))).toBe(true);
|
||||
});
|
||||
|
||||
it("fails instead of silently reusing seen bosses when unseen pool is too small", () => {
|
||||
expect(() => selectUnseenBosses(3, AVAILABLE_BOSS_IDS.slice(0, -2))).toThrow(/Cannot select 3 unseen bosses/);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user