From 443faaea8101086ffdcda96bf4718453de1c5c17 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sun, 12 Apr 2026 11:18:35 +0100 Subject: [PATCH] test(agents): share generation tool registration helper --- .../openclaw-tools.generation.test-support.ts | 35 +++++++++++++++++++ .../openclaw-tools.image-generation.test.ts | 32 +++-------------- .../openclaw-tools.video-generation.test.ts | 32 +++-------------- 3 files changed, 45 insertions(+), 54 deletions(-) create mode 100644 src/agents/openclaw-tools.generation.test-support.ts diff --git a/src/agents/openclaw-tools.generation.test-support.ts b/src/agents/openclaw-tools.generation.test-support.ts new file mode 100644 index 00000000000..d55f1e6be31 --- /dev/null +++ b/src/agents/openclaw-tools.generation.test-support.ts @@ -0,0 +1,35 @@ +import { describe, expect, it } from "vitest"; +import { collectPresentOpenClawTools } from "./openclaw-tools.registration.js"; +import { textResult, type AnyAgentTool } from "./tools/common.js"; + +function stubAgentTool(name: string): AnyAgentTool { + return { + label: name, + name, + description: `${name} stub`, + parameters: { type: "object", properties: {} }, + async execute() { + return textResult("ok", {}); + }, + }; +} + +export function describeOpenClawGenerationToolRegistration(params: { + suiteName: string; + toolName: string; + toolLabel: string; +}) { + describe(params.suiteName, () => { + it(`registers ${params.toolName} when ${params.toolLabel} is present`, () => { + const tool = stubAgentTool(params.toolName); + + expect(collectPresentOpenClawTools([tool])).toEqual([tool]); + }); + + it(`omits ${params.toolName} when ${params.toolLabel} is absent`, () => { + expect(collectPresentOpenClawTools([null]).map((tool) => tool.name)).not.toContain( + params.toolName, + ); + }); + }); +} diff --git a/src/agents/openclaw-tools.image-generation.test.ts b/src/agents/openclaw-tools.image-generation.test.ts index 38c2cba83ce..74b9b33eb0f 100644 --- a/src/agents/openclaw-tools.image-generation.test.ts +++ b/src/agents/openclaw-tools.image-generation.test.ts @@ -1,29 +1,7 @@ -import { describe, expect, it } from "vitest"; -import { collectPresentOpenClawTools } from "./openclaw-tools.registration.js"; -import { textResult, type AnyAgentTool } from "./tools/common.js"; +import { describeOpenClawGenerationToolRegistration } from "./openclaw-tools.generation.test-support.js"; -function stubAgentTool(name: string): AnyAgentTool { - return { - label: name, - name, - description: `${name} stub`, - parameters: { type: "object", properties: {} }, - async execute() { - return textResult("ok", {}); - }, - }; -} - -describe("openclaw tools image generation registration", () => { - it("registers image_generate when an image-generation tool is present", () => { - const imageGenerateTool = stubAgentTool("image_generate"); - - expect(collectPresentOpenClawTools([imageGenerateTool])).toEqual([imageGenerateTool]); - }); - - it("omits image_generate when the image-generation tool is absent", () => { - expect(collectPresentOpenClawTools([null]).map((tool) => tool.name)).not.toContain( - "image_generate", - ); - }); +describeOpenClawGenerationToolRegistration({ + suiteName: "openclaw tools image generation registration", + toolName: "image_generate", + toolLabel: "an image-generation tool", }); diff --git a/src/agents/openclaw-tools.video-generation.test.ts b/src/agents/openclaw-tools.video-generation.test.ts index 1bb67ab4828..829ec4b71f0 100644 --- a/src/agents/openclaw-tools.video-generation.test.ts +++ b/src/agents/openclaw-tools.video-generation.test.ts @@ -1,29 +1,7 @@ -import { describe, expect, it } from "vitest"; -import { collectPresentOpenClawTools } from "./openclaw-tools.registration.js"; -import { textResult, type AnyAgentTool } from "./tools/common.js"; +import { describeOpenClawGenerationToolRegistration } from "./openclaw-tools.generation.test-support.js"; -function stubAgentTool(name: string): AnyAgentTool { - return { - label: name, - name, - description: `${name} stub`, - parameters: { type: "object", properties: {} }, - async execute() { - return textResult("ok", {}); - }, - }; -} - -describe("openclaw tools video generation registration", () => { - it("registers video_generate when a video-generation tool is present", () => { - const videoGenerateTool = stubAgentTool("video_generate"); - - expect(collectPresentOpenClawTools([videoGenerateTool])).toEqual([videoGenerateTool]); - }); - - it("omits video_generate when the video-generation tool is absent", () => { - expect(collectPresentOpenClawTools([null]).map((tool) => tool.name)).not.toContain( - "video_generate", - ); - }); +describeOpenClawGenerationToolRegistration({ + suiteName: "openclaw tools video generation registration", + toolName: "video_generate", + toolLabel: "a video-generation tool", });