mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-21 10:01:37 -06:00
95be2c1605
Introduce a tiny generic qa-runtime seam for shared live-lane helpers and repoint qa-matrix to it. This keeps the qa-lab host split while removing the host-owned runtime name from runner code. Drop the old qa-lab-runtime shim/export now that nothing consumes it and keep the plugin-sdk surface aligned with the new seam.
48 lines
1.6 KiB
TypeScript
48 lines
1.6 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
|
|
const loadBundledPluginPublicSurfaceModuleSync = vi.hoisted(() => vi.fn());
|
|
|
|
vi.mock("./facade-runtime.js", () => ({
|
|
loadBundledPluginPublicSurfaceModuleSync,
|
|
}));
|
|
|
|
describe("plugin-sdk qa-runtime", () => {
|
|
beforeEach(() => {
|
|
loadBundledPluginPublicSurfaceModuleSync.mockReset();
|
|
});
|
|
|
|
it("stays cold until the runtime seam is used", async () => {
|
|
const module = await import("./qa-runtime.js");
|
|
|
|
expect(loadBundledPluginPublicSurfaceModuleSync).not.toHaveBeenCalled();
|
|
expect(typeof module.loadQaRuntimeModule).toBe("function");
|
|
expect(typeof module.isQaRuntimeAvailable).toBe("function");
|
|
});
|
|
|
|
it("loads the qa-lab runtime public surface through the generic seam", async () => {
|
|
const runtimeSurface = {
|
|
defaultQaRuntimeModelForMode: vi.fn(),
|
|
startQaLiveLaneGateway: vi.fn(),
|
|
};
|
|
loadBundledPluginPublicSurfaceModuleSync.mockReturnValue(runtimeSurface);
|
|
|
|
const module = await import("./qa-runtime.js");
|
|
|
|
expect(module.loadQaRuntimeModule()).toBe(runtimeSurface);
|
|
expect(loadBundledPluginPublicSurfaceModuleSync).toHaveBeenCalledWith({
|
|
dirName: "qa-lab",
|
|
artifactBasename: "runtime-api.js",
|
|
});
|
|
});
|
|
|
|
it("reports the runtime as unavailable when the qa-lab surface is missing", async () => {
|
|
loadBundledPluginPublicSurfaceModuleSync.mockImplementation(() => {
|
|
throw new Error("Unable to resolve bundled plugin public surface qa-lab/runtime-api.js");
|
|
});
|
|
|
|
const module = await import("./qa-runtime.js");
|
|
|
|
expect(module.isQaRuntimeAvailable()).toBe(false);
|
|
});
|
|
});
|