import { describe, expect, it } from "vitest"; import type { OpenClawConfig } from "../config/config.js"; import { applyOnboardingLocalWorkspaceConfig, ONBOARDING_DEFAULT_DM_SCOPE, } from "./onboard-config.js"; describe("applyOnboardingLocalWorkspaceConfig", () => { it("sets secure dmScope default when unset", () => { const baseConfig: OpenClawConfig = {}; const result = applyOnboardingLocalWorkspaceConfig(baseConfig, "/tmp/workspace"); expect(result.session?.dmScope).toBe(ONBOARDING_DEFAULT_DM_SCOPE); expect(result.gateway?.mode).toBe("local"); expect(result.agents?.defaults?.workspace).toBe("/tmp/workspace"); }); it("preserves existing dmScope when already configured", () => { const baseConfig: OpenClawConfig = { session: { dmScope: "main", }, }; const result = applyOnboardingLocalWorkspaceConfig(baseConfig, "/tmp/workspace"); expect(result.session?.dmScope).toBe("main"); }); it("preserves explicit non-main dmScope values", () => { const baseConfig: OpenClawConfig = { session: { dmScope: "per-account-channel-peer", }, }; const result = applyOnboardingLocalWorkspaceConfig(baseConfig, "/tmp/workspace"); expect(result.session?.dmScope).toBe("per-account-channel-peer"); }); });