57 lines · 2.0 KB · TypeScript
RawDownload
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],    ]);  });});