Files
openclaw/src/plugin-sdk/browser-node-host.test.ts

36 lines
1.2 KiB
TypeScript

import { beforeEach, describe, expect, it, vi } from "vitest";
const loadActivatedBundledPluginPublicSurfaceModuleSync = vi.hoisted(() => vi.fn());
vi.mock("./facade-runtime.js", () => ({
loadActivatedBundledPluginPublicSurfaceModuleSync,
}));
describe("browser node-host facade", () => {
beforeEach(() => {
loadActivatedBundledPluginPublicSurfaceModuleSync.mockReset();
});
it("stays cold until the proxy command is called", async () => {
await import("./browser-node-host.js");
expect(loadActivatedBundledPluginPublicSurfaceModuleSync).not.toHaveBeenCalled();
});
it("delegates the proxy command through the activated runtime facade", async () => {
const runBrowserProxyCommand = vi.fn(async () => '{"ok":true}');
loadActivatedBundledPluginPublicSurfaceModuleSync.mockReturnValue({
runBrowserProxyCommand,
});
const facade = await import("./browser-node-host.js");
await expect(facade.runBrowserProxyCommand('{"path":"/"}')).resolves.toBe('{"ok":true}');
expect(loadActivatedBundledPluginPublicSurfaceModuleSync).toHaveBeenCalledWith({
dirName: "browser",
artifactBasename: "runtime-api.js",
});
expect(runBrowserProxyCommand).toHaveBeenCalledWith('{"path":"/"}');
});
});