mirror of
https://github.com/moltbot/moltbot.git
synced 2026-05-16 10:28:45 +00:00
test: tighten web search provider runtime assertions
This commit is contained in:
@@ -207,13 +207,32 @@ function expectLoaderCallCount(count: number) {
|
||||
expect(loadOpenClawPluginsMock).toHaveBeenCalledTimes(count);
|
||||
}
|
||||
|
||||
function requireRecord(value: unknown): Record<string, unknown> {
|
||||
expect(value).toBeTruthy();
|
||||
expect(typeof value).toBe("object");
|
||||
expect(Array.isArray(value)).toBe(false);
|
||||
return value as Record<string, unknown>;
|
||||
}
|
||||
|
||||
function requireLastCallFirstArg(
|
||||
mock: { mock: { calls: readonly (readonly unknown[])[] } },
|
||||
label: string,
|
||||
): Record<string, unknown> {
|
||||
const call = mock.mock.calls.at(-1);
|
||||
expect(call, `${label} should have been called`).toBeTruthy();
|
||||
return requireRecord(call?.[0]);
|
||||
}
|
||||
|
||||
function requirePluginsConfig(params: Record<string, unknown>): Record<string, unknown> {
|
||||
const config = requireRecord(params.config);
|
||||
return requireRecord(config.plugins);
|
||||
}
|
||||
|
||||
function expectScopedWebSearchCandidates(pluginIds: readonly string[]) {
|
||||
expect(loadInstalledPluginManifestRegistryMock).toHaveBeenCalled();
|
||||
expect(loadOpenClawPluginsMock).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
onlyPluginIds: [...pluginIds],
|
||||
}),
|
||||
);
|
||||
expect(
|
||||
requireLastCallFirstArg(loadOpenClawPluginsMock, "loadOpenClawPlugins").onlyPluginIds,
|
||||
).toEqual([...pluginIds]);
|
||||
}
|
||||
|
||||
function expectAutoEnabledWebSearchLoad(params: {
|
||||
@@ -224,15 +243,9 @@ function expectAutoEnabledWebSearchLoad(params: {
|
||||
config: params.rawConfig,
|
||||
env: createWebSearchEnv(),
|
||||
});
|
||||
expect(loadOpenClawPluginsMock).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
config: expect.objectContaining({
|
||||
plugins: expect.objectContaining({
|
||||
allow: expect.arrayContaining([...params.expectedAllow]),
|
||||
}),
|
||||
}),
|
||||
}),
|
||||
);
|
||||
const loaderParams = requireLastCallFirstArg(loadOpenClawPluginsMock, "loadOpenClawPlugins");
|
||||
const plugins = requirePluginsConfig(loaderParams);
|
||||
expect(plugins.allow).toEqual([...params.expectedAllow]);
|
||||
}
|
||||
|
||||
function expectSnapshotLoaderCalls(params: {
|
||||
@@ -505,17 +518,12 @@ describe("resolvePluginWebSearchProviders", () => {
|
||||
|
||||
expect(toRuntimeProviderKeys(providers)).toEqual(["brave:brave"]);
|
||||
expectScopedWebSearchCandidates(["brave"]);
|
||||
expect(loadOpenClawPluginsMock).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
config: expect.objectContaining({
|
||||
plugins: expect.objectContaining({
|
||||
allow: ["brave"],
|
||||
bundledDiscovery: "allowlist",
|
||||
entries: { brave: { enabled: true } },
|
||||
}),
|
||||
}),
|
||||
}),
|
||||
);
|
||||
const loaderParams = requireLastCallFirstArg(loadOpenClawPluginsMock, "loadOpenClawPlugins");
|
||||
expect(requirePluginsConfig(loaderParams)).toEqual({
|
||||
allow: ["brave"],
|
||||
bundledDiscovery: "allowlist",
|
||||
entries: { brave: { enabled: true } },
|
||||
});
|
||||
});
|
||||
|
||||
it("uses the active registry workspace for candidate discovery and snapshot loads when workspaceDir is omitted", () => {
|
||||
@@ -535,17 +543,14 @@ describe("resolvePluginWebSearchProviders", () => {
|
||||
env,
|
||||
});
|
||||
|
||||
expect(loadInstalledPluginManifestRegistryMock).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
workspaceDir: "/tmp/runtime-workspace",
|
||||
}),
|
||||
);
|
||||
expect(loadOpenClawPluginsMock).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
workspaceDir: "/tmp/runtime-workspace",
|
||||
onlyPluginIds: ["brave"],
|
||||
}),
|
||||
const manifestParams = requireLastCallFirstArg(
|
||||
loadInstalledPluginManifestRegistryMock,
|
||||
"loadPluginManifestRegistryForInstalledIndex",
|
||||
);
|
||||
expect(manifestParams.workspaceDir).toBe("/tmp/runtime-workspace");
|
||||
const loaderParams = requireLastCallFirstArg(loadOpenClawPluginsMock, "loadOpenClawPlugins");
|
||||
expect(loaderParams.workspaceDir).toBe("/tmp/runtime-workspace");
|
||||
expect(loaderParams.onlyPluginIds).toEqual(["brave"]);
|
||||
});
|
||||
it("reuses a compatible active registry for snapshot resolution when config is provided", () => {
|
||||
const { env, rawConfig } = createActiveBraveRegistryFixture();
|
||||
|
||||
Reference in New Issue
Block a user