mirror of
https://github.com/moltbot/moltbot.git
synced 2026-04-26 16:06:16 +00:00
refactor: dedupe plugin lazy runtime helpers
This commit is contained in:
@@ -255,6 +255,7 @@ export const baseConfig = (): OpenClawConfig =>
|
||||
}) as OpenClawConfig;
|
||||
|
||||
vi.mock("@buape/carbon", () => {
|
||||
class Command {}
|
||||
class ReadyListener {}
|
||||
class RateLimitError extends Error {
|
||||
status = 429;
|
||||
@@ -292,7 +293,7 @@ vi.mock("@buape/carbon", () => {
|
||||
return clientGetPluginMock(name);
|
||||
}
|
||||
}
|
||||
return { Client, RateLimitError, ReadyListener };
|
||||
return { Client, Command, RateLimitError, ReadyListener };
|
||||
});
|
||||
|
||||
vi.mock("@buape/carbon/gateway", () => ({
|
||||
@@ -377,23 +378,23 @@ vi.mock("openclaw/plugin-sdk/infra-runtime", async () => {
|
||||
};
|
||||
});
|
||||
|
||||
vi.mock("../discord/src/accounts.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/accounts.js", () => ({
|
||||
resolveDiscordAccount: resolveDiscordAccountMock,
|
||||
}));
|
||||
|
||||
vi.mock("../discord/src/probe.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/probe.js", () => ({
|
||||
fetchDiscordApplicationId: async () => "app-1",
|
||||
}));
|
||||
|
||||
vi.mock("../discord/src/token.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/token.js", () => ({
|
||||
normalizeDiscordToken: (value?: string) => value,
|
||||
}));
|
||||
|
||||
vi.mock("../discord/src/voice/command.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/voice/command.js", () => ({
|
||||
createDiscordVoiceCommand: () => ({ name: "voice-command" }),
|
||||
}));
|
||||
|
||||
vi.mock("../discord/src/monitor/agent-components.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/monitor/agent-components.js", () => ({
|
||||
createAgentComponentButton: () => ({ id: "btn" }),
|
||||
createAgentSelectMenu: () => ({ id: "menu" }),
|
||||
createDiscordComponentButton: () => ({ id: "btn2" }),
|
||||
@@ -405,15 +406,15 @@ vi.mock("../discord/src/monitor/agent-components.js", () => ({
|
||||
createDiscordComponentUserSelect: () => ({ id: "user" }),
|
||||
}));
|
||||
|
||||
vi.mock("../discord/src/monitor/auto-presence.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/monitor/auto-presence.js", () => ({
|
||||
createDiscordAutoPresenceController: createDiscordAutoPresenceControllerMock,
|
||||
}));
|
||||
|
||||
vi.mock("../discord/src/monitor/commands.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/monitor/commands.js", () => ({
|
||||
resolveDiscordSlashCommandConfig: () => ({ ephemeral: false }),
|
||||
}));
|
||||
|
||||
vi.mock("../discord/src/monitor/exec-approvals.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/monitor/exec-approvals.js", () => ({
|
||||
createExecApprovalButton: () => ({ id: "exec-approval" }),
|
||||
DiscordExecApprovalHandler: class DiscordExecApprovalHandler {
|
||||
async start() {
|
||||
@@ -425,11 +426,11 @@ vi.mock("../discord/src/monitor/exec-approvals.js", () => ({
|
||||
},
|
||||
}));
|
||||
|
||||
vi.mock("../discord/src/monitor/gateway-plugin.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/monitor/gateway-plugin.js", () => ({
|
||||
createDiscordGatewayPlugin: () => ({ id: "gateway-plugin" }),
|
||||
}));
|
||||
|
||||
vi.mock("../discord/src/monitor/listeners.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/monitor/listeners.js", () => ({
|
||||
DiscordMessageListener: class DiscordMessageListener {},
|
||||
DiscordPresenceListener: class DiscordPresenceListener {},
|
||||
DiscordReactionListener: class DiscordReactionListener {},
|
||||
@@ -438,34 +439,34 @@ vi.mock("../discord/src/monitor/listeners.js", () => ({
|
||||
registerDiscordListener: vi.fn(),
|
||||
}));
|
||||
|
||||
vi.mock("../discord/src/monitor/message-handler.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/monitor/message-handler.js", () => ({
|
||||
createDiscordMessageHandler: createDiscordMessageHandlerMock,
|
||||
}));
|
||||
|
||||
vi.mock("../discord/src/monitor/native-command.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/monitor/native-command.js", () => ({
|
||||
createDiscordCommandArgFallbackButton: () => ({ id: "arg-fallback" }),
|
||||
createDiscordModelPickerFallbackButton: () => ({ id: "model-fallback-btn" }),
|
||||
createDiscordModelPickerFallbackSelect: () => ({ id: "model-fallback-select" }),
|
||||
createDiscordNativeCommand: createDiscordNativeCommandMock,
|
||||
}));
|
||||
|
||||
vi.mock("../discord/src/monitor/presence.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/monitor/presence.js", () => ({
|
||||
resolveDiscordPresenceUpdate: () => undefined,
|
||||
}));
|
||||
|
||||
vi.mock("../discord/src/monitor/provider.allowlist.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/monitor/provider.allowlist.js", () => ({
|
||||
resolveDiscordAllowlistConfig: resolveDiscordAllowlistConfigMock,
|
||||
}));
|
||||
|
||||
vi.mock("../discord/src/monitor/provider.lifecycle.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/monitor/provider.lifecycle.js", () => ({
|
||||
runDiscordGatewayLifecycle: monitorLifecycleMock,
|
||||
}));
|
||||
|
||||
vi.mock("../discord/src/monitor/rest-fetch.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/monitor/rest-fetch.js", () => ({
|
||||
resolveDiscordRestFetch: () => async () => undefined,
|
||||
}));
|
||||
|
||||
vi.mock("../discord/src/monitor/thread-bindings.js", () => ({
|
||||
vi.mock("../../../extensions/discord/src/monitor/thread-bindings.js", () => ({
|
||||
createNoopThreadBindingManager: createNoopThreadBindingManagerMock,
|
||||
createThreadBindingManager: createThreadBindingManagerMock,
|
||||
reconcileAcpThreadBindingsOnStartup: reconcileAcpThreadBindingsOnStartupMock,
|
||||
|
||||
22
test/helpers/extensions/telegram-plugin-command.ts
Normal file
22
test/helpers/extensions/telegram-plugin-command.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { vi } from "vitest";
|
||||
|
||||
export const pluginCommandMocks = {
|
||||
getPluginCommandSpecs: vi.fn(() => []),
|
||||
matchPluginCommand: vi.fn(() => null),
|
||||
executePluginCommand: vi.fn(async () => ({ text: "ok" })),
|
||||
};
|
||||
|
||||
vi.mock("openclaw/plugin-sdk/plugin-runtime", () => ({
|
||||
getPluginCommandSpecs: pluginCommandMocks.getPluginCommandSpecs,
|
||||
matchPluginCommand: pluginCommandMocks.matchPluginCommand,
|
||||
executePluginCommand: pluginCommandMocks.executePluginCommand,
|
||||
}));
|
||||
|
||||
export function resetPluginCommandMocks() {
|
||||
pluginCommandMocks.getPluginCommandSpecs.mockClear();
|
||||
pluginCommandMocks.getPluginCommandSpecs.mockReturnValue([]);
|
||||
pluginCommandMocks.matchPluginCommand.mockClear();
|
||||
pluginCommandMocks.matchPluginCommand.mockReturnValue(null);
|
||||
pluginCommandMocks.executePluginCommand.mockClear();
|
||||
pluginCommandMocks.executePluginCommand.mockResolvedValue({ text: "ok" });
|
||||
}
|
||||
Reference in New Issue
Block a user