mirror of https://github.com/openclaw/openclaw.git
51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
|
|
|
const hoisted = vi.hoisted(() => ({
|
|
resolveRuntimePluginRegistry: vi.fn(),
|
|
}));
|
|
|
|
vi.mock("../plugins/loader.js", () => ({
|
|
resolveRuntimePluginRegistry: hoisted.resolveRuntimePluginRegistry,
|
|
}));
|
|
|
|
describe("ensureRuntimePluginsLoaded", () => {
|
|
let ensureRuntimePluginsLoaded: typeof import("./runtime-plugins.js").ensureRuntimePluginsLoaded;
|
|
|
|
beforeAll(async () => {
|
|
({ ensureRuntimePluginsLoaded } = await import("./runtime-plugins.js"));
|
|
});
|
|
|
|
beforeEach(() => {
|
|
hoisted.resolveRuntimePluginRegistry.mockReset();
|
|
hoisted.resolveRuntimePluginRegistry.mockReturnValue(undefined);
|
|
});
|
|
|
|
it("does not reactivate plugins when a process already has an active registry", async () => {
|
|
hoisted.resolveRuntimePluginRegistry.mockReturnValue({});
|
|
|
|
ensureRuntimePluginsLoaded({
|
|
config: {} as never,
|
|
workspaceDir: "/tmp/workspace",
|
|
allowGatewaySubagentBinding: true,
|
|
});
|
|
|
|
expect(hoisted.resolveRuntimePluginRegistry).toHaveBeenCalledTimes(1);
|
|
});
|
|
|
|
it("resolves runtime plugins through the shared runtime helper", async () => {
|
|
ensureRuntimePluginsLoaded({
|
|
config: {} as never,
|
|
workspaceDir: "/tmp/workspace",
|
|
allowGatewaySubagentBinding: true,
|
|
});
|
|
|
|
expect(hoisted.resolveRuntimePluginRegistry).toHaveBeenCalledWith({
|
|
config: {} as never,
|
|
workspaceDir: "/tmp/workspace",
|
|
runtimeOptions: {
|
|
allowGatewaySubagentBinding: true,
|
|
},
|
|
});
|
|
});
|
|
});
|