Release v0.1.6 2026-07-12

This commit is contained in:
Warren H
2026-07-12 23:20:15 -04:00
parent 35553c18dd
commit 122f159b94
55 changed files with 2229 additions and 587 deletions
+25
View File
@@ -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/);
});
});