import { describe, expect, it } from "vitest"; import { layersModule } from "./built-ins/layers/layers-module"; import { mediaSourceModule } from "./built-ins/media-source/media-source-module"; function expectRecursivelyFrozen(value: unknown): void { if (value === null || typeof value !== "object") { return; } expect(Object.isFrozen(value)).toBe(true); for (const nestedValue of Object.values(value)) { expectRecursivelyFrozen(nestedValue); } } describe("Project B core built-in factories", () => { it("defines one exact cached Layers module", () => { const definition = layersModule(); expect(layersModule()).toBe(definition); expect(Object.fromEntries(Object.entries(definition))).toEqual({ contractVersion: 2, contributions: [ { id: "layers.surface", kind: "panel-surface", configuration: true, moduleId: "layers", surface: "layers", }, { id: "layers.persistence", kind: "persistence-requirement", moduleId: "layers", slice: "layers", }, ], defaultProviders: [], id: "layers", portRequirements: [], provides: ["layers.management"], requires: [], }); expectRecursivelyFrozen(definition); }); it("defines one exact cached Media Source module", () => { const definition = mediaSourceModule(); expect(mediaSourceModule()).toBe(definition); expect(Object.fromEntries(Object.entries(definition))).toEqual({ contractVersion: 2, contributions: [ { id: "media-source.policy", kind: "media-policy", moduleId: "media-source", policy: "source-workflow", sourceKinds: ["file", "image", "model"], }, { id: "media-source.persistence", kind: "persistence-requirement", moduleId: "media-source", slice: "media", }, ], defaultProviders: [], id: "media-source", portRequirements: [], provides: ["media.source"], requires: [], }); expectRecursivelyFrozen(definition); }); });