mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-09 16:21:15 +00:00
55 lines
1.6 KiB
TypeScript
55 lines
1.6 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
|
|
const hoisted = vi.hoisted(() => ({
|
|
loadOpenClawPlugins: vi.fn(),
|
|
getActivePluginRegistryKey: vi.fn<() => string | null>(),
|
|
}));
|
|
|
|
vi.mock("../plugins/loader.js", () => ({
|
|
loadOpenClawPlugins: hoisted.loadOpenClawPlugins,
|
|
}));
|
|
|
|
vi.mock("../plugins/runtime.js", () => ({
|
|
getActivePluginRegistryKey: hoisted.getActivePluginRegistryKey,
|
|
}));
|
|
|
|
describe("ensureRuntimePluginsLoaded", () => {
|
|
beforeEach(() => {
|
|
hoisted.loadOpenClawPlugins.mockReset();
|
|
hoisted.getActivePluginRegistryKey.mockReset();
|
|
hoisted.getActivePluginRegistryKey.mockReturnValue(null);
|
|
vi.resetModules();
|
|
});
|
|
|
|
it("does not reactivate plugins when a process already has an active registry", async () => {
|
|
const { ensureRuntimePluginsLoaded } = await import("./runtime-plugins.js");
|
|
hoisted.getActivePluginRegistryKey.mockReturnValue("gateway-registry");
|
|
|
|
ensureRuntimePluginsLoaded({
|
|
config: {} as never,
|
|
workspaceDir: "/tmp/workspace",
|
|
allowGatewaySubagentBinding: true,
|
|
});
|
|
|
|
expect(hoisted.loadOpenClawPlugins).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it("loads runtime plugins when no active registry exists", async () => {
|
|
const { ensureRuntimePluginsLoaded } = await import("./runtime-plugins.js");
|
|
|
|
ensureRuntimePluginsLoaded({
|
|
config: {} as never,
|
|
workspaceDir: "/tmp/workspace",
|
|
allowGatewaySubagentBinding: true,
|
|
});
|
|
|
|
expect(hoisted.loadOpenClawPlugins).toHaveBeenCalledWith({
|
|
config: {} as never,
|
|
workspaceDir: "/tmp/workspace",
|
|
runtimeOptions: {
|
|
allowGatewaySubagentBinding: true,
|
|
},
|
|
});
|
|
});
|
|
});
|