import { describe, expect, it } from "vitest" ;
import {
parseAgentsListRouteArgs,
parseConfigGetRouteArgs,
parseConfigUnsetRouteArgs,
parseGatewayStatusRouteArgs,
parseHealthRouteArgs,
parseModelsListRouteArgs,
parseModelsStatusRouteArgs,
parseSessionsRouteArgs,
parseStatusRouteArgs,
} from "./route-args.js" ;
describe("route-args" , () => {
it("parses health and status route args" , () => {
expect(
parseHealthRouteArgs(["node" , "openclaw" , "health" , "--json" , "--timeout" , "5000" ]),
).toEqual({
json: true ,
verbose: false ,
timeoutMs: 5000 ,
});
expect(
parseStatusRouteArgs([
"node" ,
"openclaw" ,
"status" ,
"--json" ,
"--deep" ,
"--all" ,
"--usage" ,
"--timeout" ,
"5000" ,
]),
).toEqual({
json: true ,
deep: true ,
all: true ,
usage: true ,
verbose: false ,
timeoutMs: 5000 ,
});
expect(parseStatusRouteArgs(["node" , "openclaw" , "status" , "--timeout" ])).toBeNull();
});
it("parses gateway status route args and rejects probe-only ssh flags" , () => {
expect(
parseGatewayStatusRouteArgs([
"node" ,
"openclaw" ,
"gateway" ,
"status" ,
"--url" ,
"ws://127.0.0.1:18789",
"--token" ,
"abc" ,
"--password" ,
"def" ,
"--timeout" ,
"5000" ,
"--deep" ,
"--require-rpc" ,
"--json" ,
]),
).toEqual({
rpc: {
url: "ws://127.0.0.1:18789",
token: "abc" ,
password: "def" ,
timeout: "5000" ,
},
probe: true ,
requireRpc: true ,
deep: true ,
json: true ,
});
expect(
parseGatewayStatusRouteArgs(["node" , "openclaw" , "gateway" , "status" , "--ssh" , "host" ]),
).toBeNull();
expect(
parseGatewayStatusRouteArgs(["node" , "openclaw" , "gateway" , "status" , "--ssh-auto" ]),
).toBeNull();
});
it("parses sessions and agents list route args" , () => {
expect(
parseSessionsRouteArgs([
"node" ,
"openclaw" ,
"sessions" ,
"--json" ,
"--all-agents" ,
"--agent" ,
"default" ,
"--store" ,
"sqlite" ,
"--active" ,
"true" ,
]),
).toEqual({
json: true ,
allAgents: true ,
agent: "default" ,
store: "sqlite" ,
active: "true" ,
});
expect(parseSessionsRouteArgs(["node" , "openclaw" , "sessions" , "--agent" ])).toBeNull();
expect(
parseAgentsListRouteArgs(["node" , "openclaw" , "agents" , "list" , "--json" , "--bindings" ]),
).toEqual({
json: true ,
bindings: true ,
});
});
it("parses config routes" , () => {
expect(
parseConfigGetRouteArgs([
"node" ,
"openclaw" ,
"--log-level" ,
"debug" ,
"config" ,
"get" ,
"update.channel" ,
"--json" ,
]),
).toEqual({
path: "update.channel" ,
json: true ,
});
expect(
parseConfigUnsetRouteArgs([
"node" ,
"openclaw" ,
"config" ,
"unset" ,
"--profile" ,
"work" ,
"update.channel" ,
]),
).toEqual({
path: "update.channel" ,
});
expect(parseConfigGetRouteArgs(["node" , "openclaw" , "config" , "get" , "--json" ])).toBeNull();
});
it("parses models list and models status route args" , () => {
expect(
parseModelsListRouteArgs([
"node" ,
"openclaw" ,
"models" ,
"list" ,
"--provider" ,
"openai" ,
"--all" ,
"--local" ,
"--json" ,
"--plain" ,
]),
).toEqual({
provider: "openai" ,
all: true ,
local: true ,
json: true ,
plain: true ,
});
expect(
parseModelsStatusRouteArgs([
"node" ,
"openclaw" ,
"models" ,
"status" ,
"--probe-provider" ,
"openai" ,
"--probe-timeout" ,
"5000" ,
"--probe-concurrency" ,
"2" ,
"--probe-max-tokens" ,
"64" ,
"--probe-profile" ,
"fast" ,
"--probe-profile" ,
"safe" ,
"--agent" ,
"default" ,
"--json" ,
"--plain" ,
"--check" ,
"--probe" ,
]),
).toEqual({
probeProvider: "openai" ,
probeTimeout: "5000" ,
probeConcurrency: "2" ,
probeMaxTokens: "64" ,
probeProfile: ["fast" , "safe" ],
agent: "default" ,
json: true ,
plain: true ,
check: true ,
probe: true ,
});
expect(
parseModelsStatusRouteArgs(["node" , "openclaw" , "models" , "status" , "--probe-profile" ]),
).toBeNull();
});
});
Messung V0.5 in Prozent C=100 H=99 G=99
¤ Dauer der Verarbeitung: 0.4 Sekunden
¤
*© Formatika GbR, Deutschland