test(perf): dedupe setup in cli/security script suites
This commit is contained in:
@@ -74,38 +74,38 @@ afterEach(() => {
|
||||
describe("registerPreActionHooks", () => {
|
||||
function buildProgram() {
|
||||
const program = new Command().name("openclaw");
|
||||
program.command("status").action(async () => {});
|
||||
program.command("doctor").action(async () => {});
|
||||
program.command("completion").action(async () => {});
|
||||
program.command("secrets").action(async () => {});
|
||||
program.command("status").action(() => {});
|
||||
program.command("doctor").action(() => {});
|
||||
program.command("completion").action(() => {});
|
||||
program.command("secrets").action(() => {});
|
||||
program
|
||||
.command("update")
|
||||
.command("status")
|
||||
.option("--json")
|
||||
.action(async () => {});
|
||||
.action(() => {});
|
||||
const config = program.command("config");
|
||||
config
|
||||
.command("set")
|
||||
.argument("<path>")
|
||||
.argument("<value>")
|
||||
.option("--json")
|
||||
.action(async () => {});
|
||||
program.command("channels").action(async () => {});
|
||||
program.command("directory").action(async () => {});
|
||||
program.command("agents").action(async () => {});
|
||||
program.command("configure").action(async () => {});
|
||||
program.command("onboard").action(async () => {});
|
||||
.action(() => {});
|
||||
program.command("agents").action(() => {});
|
||||
program.command("configure").action(() => {});
|
||||
program.command("onboard").action(() => {});
|
||||
program
|
||||
.command("message")
|
||||
.command("send")
|
||||
.option("--json")
|
||||
.action(async () => {});
|
||||
.action(() => {});
|
||||
registerPreActionHooks(program, "9.9.9-test");
|
||||
return program;
|
||||
}
|
||||
|
||||
async function runCommand(params: { parseArgv: string[]; processArgv?: string[] }) {
|
||||
const program = buildProgram();
|
||||
async function runCommand(
|
||||
params: { parseArgv: string[]; processArgv?: string[] },
|
||||
program = buildProgram(),
|
||||
) {
|
||||
process.argv = params.processArgv ?? [...params.parseArgv];
|
||||
await program.parseAsync(params.parseArgv, { from: "user" });
|
||||
}
|
||||
@@ -143,29 +143,43 @@ describe("registerPreActionHooks", () => {
|
||||
|
||||
it("loads plugin registry for configure/onboard/agents commands", async () => {
|
||||
const commands = ["configure", "onboard", "agents"] as const;
|
||||
const program = buildProgram();
|
||||
for (const command of commands) {
|
||||
vi.clearAllMocks();
|
||||
await runCommand({
|
||||
parseArgv: [command],
|
||||
processArgv: ["node", "openclaw", command],
|
||||
});
|
||||
await runCommand(
|
||||
{
|
||||
parseArgv: [command],
|
||||
processArgv: ["node", "openclaw", command],
|
||||
},
|
||||
program,
|
||||
);
|
||||
expect(ensurePluginRegistryLoadedMock, command).toHaveBeenCalledTimes(1);
|
||||
}
|
||||
});
|
||||
|
||||
it("skips config guard for doctor, completion, and secrets commands", async () => {
|
||||
await runCommand({
|
||||
parseArgv: ["doctor"],
|
||||
processArgv: ["node", "openclaw", "doctor"],
|
||||
});
|
||||
await runCommand({
|
||||
parseArgv: ["completion"],
|
||||
processArgv: ["node", "openclaw", "completion"],
|
||||
});
|
||||
await runCommand({
|
||||
parseArgv: ["secrets"],
|
||||
processArgv: ["node", "openclaw", "secrets"],
|
||||
});
|
||||
const program = buildProgram();
|
||||
await runCommand(
|
||||
{
|
||||
parseArgv: ["doctor"],
|
||||
processArgv: ["node", "openclaw", "doctor"],
|
||||
},
|
||||
program,
|
||||
);
|
||||
await runCommand(
|
||||
{
|
||||
parseArgv: ["completion"],
|
||||
processArgv: ["node", "openclaw", "completion"],
|
||||
},
|
||||
program,
|
||||
);
|
||||
await runCommand(
|
||||
{
|
||||
parseArgv: ["secrets"],
|
||||
processArgv: ["node", "openclaw", "secrets"],
|
||||
},
|
||||
program,
|
||||
);
|
||||
|
||||
expect(ensureConfigReadyMock).not.toHaveBeenCalled();
|
||||
});
|
||||
@@ -193,10 +207,14 @@ describe("registerPreActionHooks", () => {
|
||||
});
|
||||
|
||||
it("suppresses doctor stdout for any --json output command", async () => {
|
||||
await runCommand({
|
||||
parseArgv: ["message", "send", "--json"],
|
||||
processArgv: ["node", "openclaw", "message", "send", "--json"],
|
||||
});
|
||||
const program = buildProgram();
|
||||
await runCommand(
|
||||
{
|
||||
parseArgv: ["message", "send", "--json"],
|
||||
processArgv: ["node", "openclaw", "message", "send", "--json"],
|
||||
},
|
||||
program,
|
||||
);
|
||||
|
||||
expect(ensureConfigReadyMock).toHaveBeenCalledWith({
|
||||
runtime: runtimeMock,
|
||||
@@ -206,10 +224,13 @@ describe("registerPreActionHooks", () => {
|
||||
|
||||
vi.clearAllMocks();
|
||||
|
||||
await runCommand({
|
||||
parseArgv: ["update", "status", "--json"],
|
||||
processArgv: ["node", "openclaw", "update", "status", "--json"],
|
||||
});
|
||||
await runCommand(
|
||||
{
|
||||
parseArgv: ["update", "status", "--json"],
|
||||
processArgv: ["node", "openclaw", "update", "status", "--json"],
|
||||
},
|
||||
program,
|
||||
);
|
||||
|
||||
expect(ensureConfigReadyMock).toHaveBeenCalledWith({
|
||||
runtime: runtimeMock,
|
||||
|
||||
Reference in New Issue
Block a user