36 lines
1023 B
TypeScript
36 lines
1023 B
TypeScript
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 },
|
|
});
|
|
});
|
|
});
|