mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-03 12:50:21 +00:00
refactor: move plugin setup and memory capabilities to registries
This commit is contained in:
58
src/plugin-sdk/browser-bridge.test.ts
Normal file
58
src/plugin-sdk/browser-bridge.test.ts
Normal file
@@ -0,0 +1,58 @@
|
||||
import type { Server } from "node:http";
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
|
||||
const loadActivatedBundledPluginPublicSurfaceModuleSync = vi.hoisted(() => vi.fn());
|
||||
|
||||
vi.mock("./facade-runtime.js", () => ({
|
||||
loadActivatedBundledPluginPublicSurfaceModuleSync,
|
||||
}));
|
||||
|
||||
describe("browser bridge facade", () => {
|
||||
beforeEach(() => {
|
||||
loadActivatedBundledPluginPublicSurfaceModuleSync.mockReset();
|
||||
});
|
||||
|
||||
it("stays cold until a bridge function is called", async () => {
|
||||
await import("./browser-bridge.js");
|
||||
|
||||
expect(loadActivatedBundledPluginPublicSurfaceModuleSync).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("delegates bridge lifecycle calls through the activated runtime facade", async () => {
|
||||
const bridge = {
|
||||
server: {} as Server,
|
||||
port: 19001,
|
||||
baseUrl: "http://127.0.0.1:19001",
|
||||
state: {
|
||||
resolved: {
|
||||
enabled: true,
|
||||
},
|
||||
},
|
||||
};
|
||||
const startBrowserBridgeServer = vi.fn(async () => bridge);
|
||||
const stopBrowserBridgeServer = vi.fn(async () => undefined);
|
||||
loadActivatedBundledPluginPublicSurfaceModuleSync.mockReturnValue({
|
||||
startBrowserBridgeServer,
|
||||
stopBrowserBridgeServer,
|
||||
});
|
||||
|
||||
const facade = await import("./browser-bridge.js");
|
||||
|
||||
await expect(
|
||||
facade.startBrowserBridgeServer({
|
||||
resolved: bridge.state.resolved as never,
|
||||
authToken: "token",
|
||||
}),
|
||||
).resolves.toEqual(bridge);
|
||||
await expect(facade.stopBrowserBridgeServer(bridge.server)).resolves.toBeUndefined();
|
||||
expect(loadActivatedBundledPluginPublicSurfaceModuleSync).toHaveBeenCalledWith({
|
||||
dirName: "browser",
|
||||
artifactBasename: "runtime-api.js",
|
||||
});
|
||||
expect(startBrowserBridgeServer).toHaveBeenCalledWith({
|
||||
resolved: bridge.state.resolved,
|
||||
authToken: "token",
|
||||
});
|
||||
expect(stopBrowserBridgeServer).toHaveBeenCalledWith(bridge.server);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user