mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-28 01:21:36 +00:00
Gateway: resolve fallback plugin context lazily
This commit is contained in:
@@ -616,4 +616,31 @@ describe("loadGatewayPlugins", () => {
|
||||
| undefined;
|
||||
expect(dispatched?.marker).toBe("after-mutation");
|
||||
});
|
||||
|
||||
test("resolves fallback context lazily when a resolver is registered", async () => {
|
||||
const serverPlugins = serverPluginsModule;
|
||||
const runtime = await createSubagentRuntime(serverPlugins);
|
||||
let currentContext = createTestContext("before-resolver-update");
|
||||
|
||||
serverPlugins.setFallbackGatewayContextResolver(() => currentContext);
|
||||
await runtime.run({ sessionKey: "s-4", message: "before resolver update" });
|
||||
expect(getLastDispatchedContext()).toBe(currentContext);
|
||||
|
||||
currentContext = createTestContext("after-resolver-update");
|
||||
await runtime.run({ sessionKey: "s-4", message: "after resolver update" });
|
||||
expect(getLastDispatchedContext()).toBe(currentContext);
|
||||
});
|
||||
|
||||
test("prefers resolver output over an older fallback context snapshot", async () => {
|
||||
const serverPlugins = serverPluginsModule;
|
||||
const runtime = await createSubagentRuntime(serverPlugins);
|
||||
const staleContext = createTestContext("stale-snapshot");
|
||||
const freshContext = createTestContext("fresh-resolver");
|
||||
|
||||
serverPlugins.setFallbackGatewayContext(staleContext);
|
||||
serverPlugins.setFallbackGatewayContextResolver(() => freshContext);
|
||||
|
||||
await runtime.run({ sessionKey: "s-5", message: "prefer resolver" });
|
||||
expect(getLastDispatchedContext()).toBe(freshContext);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user