| import type { PluginRegistry } from "./registry.js"; |
| import type { PluginHookAgentContext, PluginHookRegistration } from "./types.js"; |
|
|
| export function createMockPluginRegistry( |
| hooks: Array<{ hookName: string; handler: (...args: unknown[]) => unknown }>, |
| ): PluginRegistry { |
| return { |
| hooks: hooks as never[], |
| typedHooks: hooks.map((h) => ({ |
| pluginId: "test-plugin", |
| hookName: h.hookName, |
| handler: h.handler, |
| priority: 0, |
| source: "test", |
| })), |
| tools: [], |
| httpRoutes: [], |
| channelRegistrations: [], |
| gatewayHandlers: {}, |
| cliRegistrars: [], |
| services: [], |
| providers: [], |
| commands: [], |
| } as unknown as PluginRegistry; |
| } |
|
|
| export const TEST_PLUGIN_AGENT_CTX: PluginHookAgentContext = { |
| agentId: "test-agent", |
| sessionKey: "test-session", |
| sessionId: "test-session-id", |
| workspaceDir: "/tmp/openclaw-test", |
| messageProvider: "test", |
| }; |
|
|
| export function addTestHook(params: { |
| registry: PluginRegistry; |
| pluginId: string; |
| hookName: PluginHookRegistration["hookName"]; |
| handler: PluginHookRegistration["handler"]; |
| priority?: number; |
| }) { |
| params.registry.typedHooks.push({ |
| pluginId: params.pluginId, |
| hookName: params.hookName, |
| handler: params.handler, |
| priority: params.priority ?? 0, |
| source: "test", |
| } as PluginHookRegistration); |
| } |
|
|