First Release of Claw3D (#11)
Co-authored-by: iamlukethedev <iamlukethedev@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
import fs from "node:fs";
|
||||
import os from "node:os";
|
||||
import path from "node:path";
|
||||
|
||||
import { afterEach, describe, expect, it } from "vitest";
|
||||
|
||||
const makeTempDir = (name: string) => fs.mkdtempSync(path.join(os.tmpdir(), `${name}-`));
|
||||
|
||||
describe("server studio upstream gateway settings", () => {
|
||||
const priorStateDir = process.env.OPENCLAW_STATE_DIR;
|
||||
let tempDir: string | null = null;
|
||||
|
||||
afterEach(() => {
|
||||
process.env.OPENCLAW_STATE_DIR = priorStateDir;
|
||||
if (tempDir) {
|
||||
fs.rmSync(tempDir, { recursive: true, force: true });
|
||||
tempDir = null;
|
||||
}
|
||||
});
|
||||
|
||||
it("falls back to openclaw.json token/port when studio settings are missing", async () => {
|
||||
tempDir = makeTempDir("studio-upstream-openclaw-defaults");
|
||||
process.env.OPENCLAW_STATE_DIR = tempDir;
|
||||
|
||||
fs.writeFileSync(
|
||||
path.join(tempDir, "openclaw.json"),
|
||||
JSON.stringify({ gateway: { port: 18790, auth: { token: "tok" } } }, null, 2),
|
||||
"utf8"
|
||||
);
|
||||
|
||||
const { loadUpstreamGatewaySettings } = await import("../../server/studio-settings");
|
||||
const settings = loadUpstreamGatewaySettings(process.env);
|
||||
expect(settings.url).toBe("ws://localhost:18790");
|
||||
expect(settings.token).toBe("tok");
|
||||
});
|
||||
|
||||
it("keeps a configured url and fills token from openclaw.json when missing", async () => {
|
||||
tempDir = makeTempDir("studio-upstream-url-keep");
|
||||
process.env.OPENCLAW_STATE_DIR = tempDir;
|
||||
|
||||
fs.mkdirSync(path.join(tempDir, "claw3d"), { recursive: true });
|
||||
fs.writeFileSync(
|
||||
path.join(tempDir, "claw3d", "settings.json"),
|
||||
JSON.stringify({ gateway: { url: "ws://gateway.example:18789", token: "" } }, null, 2),
|
||||
"utf8"
|
||||
);
|
||||
fs.writeFileSync(
|
||||
path.join(tempDir, "openclaw.json"),
|
||||
JSON.stringify({ gateway: { port: 18789, auth: { token: "tok-local" } } }, null, 2),
|
||||
"utf8"
|
||||
);
|
||||
|
||||
const { loadUpstreamGatewaySettings } = await import("../../server/studio-settings");
|
||||
const settings = loadUpstreamGatewaySettings(process.env);
|
||||
expect(settings.url).toBe("ws://gateway.example:18789");
|
||||
expect(settings.token).toBe("tok-local");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user