61 lines
1.7 KiB
TypeScript
61 lines
1.7 KiB
TypeScript
import fs from "node:fs/promises";
|
|
import path from "node:path";
|
|
import { describe, expect, it, vi } from "vitest";
|
|
import { withTempHome } from "../../test/helpers/temp-home.js";
|
|
import { setupCommand } from "./setup.js";
|
|
|
|
describe("setupCommand", () => {
|
|
it("writes gateway.mode=local on first run", async () => {
|
|
await withTempHome(async (home) => {
|
|
const runtime = {
|
|
log: vi.fn(),
|
|
error: vi.fn(),
|
|
exit: vi.fn(),
|
|
};
|
|
|
|
await setupCommand(undefined, runtime);
|
|
|
|
const configPath = path.join(home, ".openclaw", "openclaw.json");
|
|
const raw = await fs.readFile(configPath, "utf-8");
|
|
|
|
expect(raw).toContain('"mode": "local"');
|
|
expect(raw).toContain('"workspace"');
|
|
});
|
|
});
|
|
|
|
it("adds gateway.mode=local to an existing config without overwriting workspace", async () => {
|
|
await withTempHome(async (home) => {
|
|
const runtime = {
|
|
log: vi.fn(),
|
|
error: vi.fn(),
|
|
exit: vi.fn(),
|
|
};
|
|
const configDir = path.join(home, ".openclaw");
|
|
const configPath = path.join(configDir, "openclaw.json");
|
|
const workspace = path.join(home, "custom-workspace");
|
|
|
|
await fs.mkdir(configDir, { recursive: true });
|
|
await fs.writeFile(
|
|
configPath,
|
|
JSON.stringify({
|
|
agents: {
|
|
defaults: {
|
|
workspace,
|
|
},
|
|
},
|
|
}),
|
|
);
|
|
|
|
await setupCommand(undefined, runtime);
|
|
|
|
const raw = JSON.parse(await fs.readFile(configPath, "utf-8")) as {
|
|
agents?: { defaults?: { workspace?: string } };
|
|
gateway?: { mode?: string };
|
|
};
|
|
|
|
expect(raw.agents?.defaults?.workspace).toBe(workspace);
|
|
expect(raw.gateway?.mode).toBe("local");
|
|
});
|
|
});
|
|
});
|