23 lines
842 B
TypeScript
23 lines
842 B
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { MODE_COPY, selectRandomBoss, selectRandomBossPair } from "./data";
|
|
|
|
describe("game mode configuration", () => {
|
|
it("separates randomized PVE from selectable Dungeons", () => {
|
|
expect(MODE_COPY["roguelike-pve"].title).toBe("PVE");
|
|
expect(MODE_COPY.dungeons.title).toBe("Dungeons");
|
|
});
|
|
|
|
it("selects a boss across the full encounter pool", () => {
|
|
expect(selectRandomBoss(() => 0)).toBe("bulldrome");
|
|
expect(selectRandomBoss(() => 0.34)).toBe("vexa");
|
|
expect(selectRandomBoss(() => 0.99)).toBe("cindermaw");
|
|
});
|
|
|
|
it("selects two distinct bosses for PVE", () => {
|
|
const values = [0, 0];
|
|
const pair = selectRandomBossPair(() => values.shift() ?? 0);
|
|
expect(pair).toEqual(["bulldrome", "vexa"]);
|
|
expect(new Set(pair)).toHaveLength(2);
|
|
});
|
|
});
|