From ecb3838ea329a14cb67fd5f16428f8f6a2ad67a7 Mon Sep 17 00:00:00 2001 From: joshavant <830519+joshavant@users.noreply.github.com> Date: Fri, 13 Mar 2026 21:58:27 -0500 Subject: [PATCH] Tests: fix extension typing after main rebase --- extensions/diffs/index.test.ts | 77 +++++++++++----------- extensions/shared/config-schema-helpers.ts | 10 +-- extensions/test-utils/directory.ts | 6 +- 3 files changed, 47 insertions(+), 46 deletions(-) diff --git a/extensions/diffs/index.test.ts b/extensions/diffs/index.test.ts index fe7533683ec..c38da12bfcd 100644 --- a/extensions/diffs/index.test.ts +++ b/extensions/diffs/index.test.ts @@ -1,4 +1,5 @@ import type { IncomingMessage } from "node:http"; +import type { OpenClawPluginApi } from "openclaw/plugin-sdk/diffs"; import { describe, expect, it, vi } from "vitest"; import { createMockServerResponse } from "../../src/test-utils/mock-http-response.js"; import { createTestPluginApi } from "../test-utils/plugin-api.js"; @@ -42,48 +43,46 @@ describe("diffs plugin registration", () => { }); it("applies plugin-config defaults through registered tool and viewer handler", async () => { - let registeredTool: - | { execute?: (toolCallId: string, params: Record) => Promise } - | undefined; - let registeredHttpRouteHandler: - | (( - req: IncomingMessage, - res: ReturnType, - ) => Promise) - | undefined; + type RegisteredTool = { + execute?: (toolCallId: string, params: Record) => Promise; + }; + type RegisteredHttpRouteParams = Parameters[0]; - plugin.register?.( - createTestPluginApi({ - id: "diffs", - name: "Diffs", - description: "Diffs", - source: "test", - config: { - gateway: { - port: 18789, - bind: "loopback", - }, + let registeredTool: RegisteredTool | undefined; + let registeredHttpRouteHandler: RegisteredHttpRouteParams["handler"] | undefined; + + const api = createTestPluginApi({ + id: "diffs", + name: "Diffs", + description: "Diffs", + source: "test", + config: { + gateway: { + port: 18789, + bind: "loopback", }, - pluginConfig: { - defaults: { - mode: "view", - theme: "light", - background: false, - layout: "split", - showLineNumbers: false, - diffIndicators: "classic", - lineSpacing: 2, - }, + }, + pluginConfig: { + defaults: { + mode: "view", + theme: "light", + background: false, + layout: "split", + showLineNumbers: false, + diffIndicators: "classic", + lineSpacing: 2, }, - runtime: {} as never, - registerTool(tool) { - registeredTool = typeof tool === "function" ? undefined : tool; - }, - registerHttpRoute(params) { - registeredHttpRouteHandler = params.handler as typeof registeredHttpRouteHandler; - }, - }), - ); + }, + runtime: {} as never, + registerTool(tool: Parameters[0]) { + registeredTool = typeof tool === "function" ? undefined : tool; + }, + registerHttpRoute(params: RegisteredHttpRouteParams) { + registeredHttpRouteHandler = params.handler; + }, + }); + + plugin.register?.(api as unknown as OpenClawPluginApi); const result = await registeredTool?.execute?.("tool-1", { before: "one\n", diff --git a/extensions/shared/config-schema-helpers.ts b/extensions/shared/config-schema-helpers.ts index 869e98a0763..f2d1f4e0da1 100644 --- a/extensions/shared/config-schema-helpers.ts +++ b/extensions/shared/config-schema-helpers.ts @@ -1,17 +1,17 @@ import type { z } from "zod"; type RequireOpenAllowFromFn = (params: { - policy: unknown; - allowFrom: unknown; + policy?: string; + allowFrom?: (string | number)[]; ctx: z.RefinementCtx; - path: string[]; + path: (string | number)[]; message: string; }) => void; export function requireChannelOpenAllowFrom(params: { channel: string; - policy: unknown; - allowFrom: unknown; + policy?: string; + allowFrom?: (string | number)[]; ctx: z.RefinementCtx; requireOpenAllowFrom: RequireOpenAllowFromFn; }) { diff --git a/extensions/test-utils/directory.ts b/extensions/test-utils/directory.ts index 60a769f50d7..4299fc70541 100644 --- a/extensions/test-utils/directory.ts +++ b/extensions/test-utils/directory.ts @@ -8,6 +8,8 @@ export function createDirectoryTestRuntime() { }; } +type DirectoryMethod = (params: Record) => Promise; + export function expectDirectorySurface( directory: | { @@ -27,7 +29,7 @@ export function expectDirectorySurface( throw new Error("expected listGroups"); } return directory as { - listPeers: NonNullable; - listGroups: NonNullable; + listPeers: DirectoryMethod; + listGroups: DirectoryMethod; }; }