import { describe, expect, it } from "vitest"; import { mergeCampaignAvailability } from "../../scripts/dungeon-pipeline/availability.mjs"; describe("mergeCampaignAvailability", () => { it("preserves non-campaign availability while rebuilding campaign entries", () => { const existing = { schemaVersion: 1 as const, enabled: { "forsaken-abbey": true, "kalin-shrine": false, deadmines: false, }, }; expect( mergeCampaignAvailability(existing, ["deadmines", "wailing-caverns"]), ).toEqual({ schemaVersion: 1, enabled: { "forsaken-abbey": true, "kalin-shrine": false, deadmines: true, "wailing-caverns": true, }, }); expect(existing.enabled.deadmines).toBe(false); }); it("starts a clean availability map when no previous map exists", () => { expect(mergeCampaignAvailability(undefined, ["deadmines"])).toEqual({ schemaVersion: 1, enabled: { deadmines: true }, }); }); });