import { describe, expect, it } from "vitest"; import { BOSS_BALANCE_OVERRIDES, resolveBossBalanceOverride, type BossBalanceOverride, } from "./bossBalanceOverrides"; const overrides: readonly BossBalanceOverride[] = [ { id: "all-levels", dungeonId: "test-dungeon", entityId: "test-boss", healthScale: 0.9, damageScale: 0.8, reason: "test" }, { id: "level-80", dungeonId: "test-dungeon", entityId: "test-boss", minimumLevel: 80, maximumLevel: 80, damageScale: 0.5, reason: "test" }, ]; describe("boss-specific balance overrides", () => { it("composes broad and exact-level corrections for one boss", () => { expect(resolveBossBalanceOverride("test-dungeon", "test-boss", 80, overrides)).toEqual({ healthScale: 0.9, damageScale: 0.4, matchedOverrideIds: ["all-levels", "level-80"], }); expect(resolveBossBalanceOverride("test-dungeon", "test-boss", 70, overrides)).toEqual({ healthScale: 0.9, damageScale: 0.8, matchedOverrideIds: ["all-levels"], }); }); it("matches the source dungeon while running in an isolated boss-testing room", () => { expect(resolveBossBalanceOverride( "boss-testing:test-dungeon:test-boss", "test-boss", 80, overrides, ).matchedOverrideIds).toEqual(["all-levels", "level-80"]); }); it("leaves unrelated bosses and levels unchanged", () => { expect(resolveBossBalanceOverride("another-dungeon", "test-boss", 80, overrides)).toEqual({ healthScale: 1, damageScale: 1, matchedOverrideIds: [], }); }); it("ships the Drakos correction only at its audited level", () => { expect(resolveBossBalanceOverride( "boss-testing:the-oculus:entry-27654", "entry-27654", 80, BOSS_BALANCE_OVERRIDES, )).toMatchObject({ damageScale: 0.45, matchedOverrideIds: ["level-80-drakos-pressure"] }); expect(resolveBossBalanceOverride( "the-oculus", "entry-27654", 79, BOSS_BALANCE_OVERRIDES, )).toMatchObject({ healthScale: 1, damageScale: 1, matchedOverrideIds: [] }); }); });