mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-04 14:00:24 +00:00
CLI: set local gateway mode in setup
This commit is contained in:
60
src/commands/setup.test.ts
Normal file
60
src/commands/setup.test.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
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");
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user