import { DEFAULT_SERVER_SETTINGS, EnvironmentId, ProjectId } from "@t3tools/contracts"; import { resolveProjectSettings } from "@t3tools/shared/projectSettings"; import { describe, expect, it } from "vite-plus/test"; import { settingInheritanceLayers } from "./SettingInheritance"; const environmentId = EnvironmentId.make("laptop"); const projectId = ProjectId.make("project"); describe("settingInheritanceLayers", () => { it("marks the built-in default effective when nothing is set", () => { const resolved = resolveProjectSettings(DEFAULT_SERVER_SETTINGS, null); const layers = settingInheritanceLayers( { environmentId, label: "Laptop", projectId: null, ...resolved }, DEFAULT_SERVER_SETTINGS, "defaultAutoPull", ); expect(layers.map((layer) => [layer.label, layer.value, layer.effective])).toEqual([ ["Laptop", "Off", false], ["Built-in default", "Off", true], ]); }); it("walks project override, environment value, then built-in default", () => { const settings = { ...DEFAULT_SERVER_SETTINGS, defaultAutoPull: true, projectSettingsOverrides: { [projectId]: { defaultAutoPull: false } }, }; const resolved = resolveProjectSettings(settings, projectId); const layers = settingInheritanceLayers( { environmentId, label: "Laptop", projectId, ...resolved }, settings, "defaultAutoPull", ); expect(layers.map((layer) => [layer.label, layer.value, layer.effective])).toEqual([ ["Project override", "Off", true], ["Laptop", "On", false], ["Built-in default", "Off", false], ]); const inherited = settingInheritanceLayers( { environmentId, label: "Laptop", projectId, ...resolveProjectSettings(settings, ProjectId.make("other")), }, settings, "defaultAutoPull", ); expect(inherited.map((layer) => [layer.value, layer.effective])).toEqual([ ["Inherits", false], ["On", true], ["Off", false], ]); }); });