


























@@ -6,18 +6,19 @@ import {
66} from "./list.provider-catalog.js";
7788const providerDiscoveryMocks = vi.hoisted(() => ({
9-loadInstalledPluginIndex: vi.fn(),
9+loadPluginRegistrySnapshot: vi.fn(),
10+resolvePluginContributionOwners: vi.fn(),
11+resolveProviderOwners: vi.fn(),
1012resolveBundledProviderCompatPluginIds: vi.fn(),
11-resolveInstalledPluginContributionOwners: vi.fn(),
1213resolveOwningPluginIdsForProvider: vi.fn(),
1314resolvePluginDiscoveryProviders: vi.fn(),
1415resolveProviderContractPluginIdsForProviderAlias: vi.fn(),
1516}));
161717-vi.mock("../../plugins/installed-plugin-index.js", () => ({
18-loadInstalledPluginIndex: providerDiscoveryMocks.loadInstalledPluginIndex,
19-resolveInstalledPluginContributionOwners:
20- providerDiscoveryMocks.resolveInstalledPluginContributionOwners,
18+vi.mock("../../plugins/plugin-registry.js", () => ({
19+loadPluginRegistrySnapshot: providerDiscoveryMocks.loadPluginRegistrySnapshot,
20+resolvePluginContributionOwners: providerDiscoveryMocks.resolvePluginContributionOwners,
21+resolveProviderOwners: providerDiscoveryMocks.resolveProviderOwners,
2122}));
22232324vi.mock("../../plugins/providers.js", () => ({
@@ -113,20 +114,17 @@ const defaultProviders = [chutesProvider, moonshotProvider, openaiProvider];
113114describe("loadProviderCatalogModelsForList", () => {
114115beforeEach(() => {
115116vi.clearAllMocks();
116-providerDiscoveryMocks.loadInstalledPluginIndex.mockReturnValue({
117+providerDiscoveryMocks.loadPluginRegistrySnapshot.mockReturnValue({
117118plugins: [],
118119diagnostics: [],
119120});
120-providerDiscoveryMocks.resolveInstalledPluginContributionOwners.mockImplementation(
121-(_index: unknown, contribution: string, matches: (contributionId: string) => boolean) => {
122-if (contribution !== "providers") {
123-return [];
124-}
125-return defaultProviders
126-.filter((provider) => matches(provider.id))
127-.map((provider) => provider.pluginId);
128-},
121+providerDiscoveryMocks.resolveProviderOwners.mockImplementation(
122+({ providerId }: { providerId: string }) =>
123+defaultProviders
124+.filter((provider) => provider.id === providerId)
125+.map((provider) => provider.pluginId),
129126);
127+providerDiscoveryMocks.resolvePluginContributionOwners.mockReturnValue([]);
130128providerDiscoveryMocks.resolveBundledProviderCompatPluginIds.mockReturnValue([
131129"chutes",
132130"moonshot",
@@ -198,19 +196,18 @@ describe("loadProviderCatalogModelsForList", () => {
198196}),
199197).resolves.toEqual(["moonshot"]);
200198201-expect(providerDiscoveryMocks.loadInstalledPluginIndex).toHaveBeenCalledWith({
199+expect(providerDiscoveryMocks.loadPluginRegistrySnapshot).toHaveBeenCalledWith({
202200config: baseParams.cfg,
203201env: baseParams.env,
204202});
205203expect(providerDiscoveryMocks.resolveOwningPluginIdsForProvider).not.toHaveBeenCalled();
206204});
207205208206it("does not fall back to legacy manifest ownership for disabled installed-index owners", async () => {
209-providerDiscoveryMocks.resolveInstalledPluginContributionOwners
210-.mockReturnValueOnce([])
207+providerDiscoveryMocks.resolveProviderOwners
211208.mockReturnValueOnce([])
212-.mockReturnValueOnce(["moonshot"])
213- .mockReturnValueOnce([]);
209+.mockReturnValueOnce(["moonshot"]);
210+providerDiscoveryMocks.resolvePluginContributionOwners.mockReturnValue([]);
214211215212await expect(
216213resolveProviderCatalogPluginIdsForFilter({
@@ -280,7 +277,7 @@ describe("loadProviderCatalogModelsForList", () => {
280277});
281278282279it("does not skip registry for non-bundled static catalog owners", async () => {
283-providerDiscoveryMocks.resolveInstalledPluginContributionOwners.mockReturnValueOnce([]);
280+providerDiscoveryMocks.resolveProviderOwners.mockReturnValueOnce([]);
284281providerDiscoveryMocks.resolveOwningPluginIdsForProvider.mockReturnValueOnce([
285282"workspace-static-provider",
286283]);
@@ -298,7 +295,7 @@ describe("loadProviderCatalogModelsForList", () => {
298295});
299296300297it("recognizes bundled provider hook aliases before the unknown-provider short-circuit", async () => {
301-providerDiscoveryMocks.resolveInstalledPluginContributionOwners.mockReturnValueOnce([]);
298+providerDiscoveryMocks.resolveProviderOwners.mockReturnValueOnce([]);
302299303300await expect(
304301resolveProviderCatalogPluginIdsForFilter({
@@ -350,7 +347,7 @@ describe("loadProviderCatalogModelsForList", () => {
350347});
351348352349it("keeps unknown provider filters eligible for early empty results", async () => {
353-providerDiscoveryMocks.resolveInstalledPluginContributionOwners.mockReturnValueOnce([]);
350+providerDiscoveryMocks.resolveProviderOwners.mockReturnValueOnce([]);
354351355352await expect(
356353resolveProviderCatalogPluginIdsForFilter({
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。