mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-07 22:21:23 +00:00
test(auto-reply): cover command args formatters
This commit is contained in:
49
src/auto-reply/commands-args.test.ts
Normal file
49
src/auto-reply/commands-args.test.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import type { CommandArgValues } from "./commands-registry.types.js";
|
||||
import { COMMAND_ARG_FORMATTERS } from "./commands-args.js";
|
||||
|
||||
function formatArgs(key: keyof typeof COMMAND_ARG_FORMATTERS, values: Record<string, unknown>) {
|
||||
const formatter = COMMAND_ARG_FORMATTERS[key];
|
||||
return formatter?.(values as unknown as CommandArgValues);
|
||||
}
|
||||
|
||||
describe("COMMAND_ARG_FORMATTERS", () => {
|
||||
it("formats config args (show/get/unset/set) and normalizes values", () => {
|
||||
expect(formatArgs("config", {})).toBeUndefined();
|
||||
|
||||
expect(formatArgs("config", { action: " SHOW " })).toBe("show");
|
||||
expect(formatArgs("config", { action: "get", path: " a.b " })).toBe("get a.b");
|
||||
expect(formatArgs("config", { action: "unset", path: "x" })).toBe("unset x");
|
||||
|
||||
expect(formatArgs("config", { action: "set" })).toBe("set");
|
||||
expect(formatArgs("config", { action: "set", path: "x" })).toBe("set x");
|
||||
expect(formatArgs("config", { action: "set", path: "x", value: 1 })).toBe("set x=1");
|
||||
expect(formatArgs("config", { action: "set", path: "x", value: { ok: true } })).toBe(
|
||||
'set x={"ok":true}',
|
||||
);
|
||||
|
||||
expect(formatArgs("config", { action: "whoami", path: "ignored" })).toBe("whoami");
|
||||
});
|
||||
|
||||
it("formats debug args (show/reset/unset/set)", () => {
|
||||
expect(formatArgs("debug", { action: "show", path: "x" })).toBe("show");
|
||||
expect(formatArgs("debug", { action: "reset", path: "x" })).toBe("reset");
|
||||
expect(formatArgs("debug", { action: "unset" })).toBe("unset");
|
||||
expect(formatArgs("debug", { action: "unset", path: "x" })).toBe("unset x");
|
||||
expect(formatArgs("debug", { action: "set", path: "x" })).toBe("set x");
|
||||
expect(formatArgs("debug", { action: "set", path: "x", value: true })).toBe("set x=true");
|
||||
});
|
||||
|
||||
it("formats queue args (order + omission)", () => {
|
||||
expect(formatArgs("queue", {})).toBeUndefined();
|
||||
expect(formatArgs("queue", { mode: "fifo" })).toBe("fifo");
|
||||
expect(
|
||||
formatArgs("queue", {
|
||||
mode: "fifo",
|
||||
debounce: 10,
|
||||
cap: 2n,
|
||||
drop: Symbol("tail"),
|
||||
}),
|
||||
).toBe("fifo debounce:10 cap:2 drop:Symbol(tail)");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user