mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-14 10:41:23 +00:00
82 lines
2.5 KiB
TypeScript
82 lines
2.5 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
import type { PluginManifestRegistry } from "./manifest-registry.js";
|
|
|
|
const mocks = vi.hoisted(() => ({
|
|
findBundledPluginMetadataById: vi.fn(),
|
|
loadPluginManifestRegistry: vi.fn(),
|
|
}));
|
|
|
|
vi.mock("./bundled-plugin-metadata.js", () => ({
|
|
findBundledPluginMetadataById: mocks.findBundledPluginMetadataById,
|
|
}));
|
|
|
|
vi.mock("./manifest-registry.js", () => ({
|
|
loadPluginManifestRegistry: mocks.loadPluginManifestRegistry,
|
|
}));
|
|
|
|
import { resolvePluginConfigContractsById } from "./config-contracts.js";
|
|
|
|
function createRegistry(plugins: PluginManifestRegistry["plugins"]): PluginManifestRegistry {
|
|
return {
|
|
plugins,
|
|
diagnostics: [],
|
|
};
|
|
}
|
|
|
|
describe("resolvePluginConfigContractsById", () => {
|
|
beforeEach(() => {
|
|
mocks.findBundledPluginMetadataById.mockReset();
|
|
mocks.loadPluginManifestRegistry.mockReset();
|
|
mocks.loadPluginManifestRegistry.mockReturnValue(createRegistry([]));
|
|
});
|
|
|
|
it("does not fall back to bundled metadata when registry already resolved a plugin without config contracts", () => {
|
|
mocks.loadPluginManifestRegistry.mockReturnValue(
|
|
createRegistry([
|
|
{
|
|
id: "brave",
|
|
origin: "bundled",
|
|
rootDir: "/tmp/brave",
|
|
manifestPath: "/tmp/brave/openclaw.plugin.json",
|
|
channelConfigs: undefined,
|
|
providerAuthEnvVars: undefined,
|
|
configUiHints: undefined,
|
|
configSchema: undefined,
|
|
configContracts: undefined,
|
|
contracts: undefined,
|
|
name: undefined,
|
|
description: undefined,
|
|
version: undefined,
|
|
enabledByDefault: undefined,
|
|
autoEnableWhenConfiguredProviders: undefined,
|
|
legacyPluginIds: undefined,
|
|
format: undefined,
|
|
bundleFormat: undefined,
|
|
bundleCapabilities: undefined,
|
|
kind: undefined,
|
|
channels: [],
|
|
providers: [],
|
|
modelSupport: undefined,
|
|
cliBackends: [],
|
|
channelEnvVars: undefined,
|
|
providerAuthChoices: undefined,
|
|
skills: [],
|
|
settingsFiles: undefined,
|
|
hooks: [],
|
|
source: "/tmp/brave/openclaw.plugin.json",
|
|
setupSource: undefined,
|
|
startupDeferConfiguredChannelFullLoadUntilAfterListen: undefined,
|
|
channelCatalogMeta: undefined,
|
|
},
|
|
]),
|
|
);
|
|
|
|
expect(
|
|
resolvePluginConfigContractsById({
|
|
pluginIds: ["brave"],
|
|
}),
|
|
).toEqual(new Map());
|
|
expect(mocks.findBundledPluginMetadataById).not.toHaveBeenCalled();
|
|
});
|
|
});
|