



























@@ -2,6 +2,8 @@ import { beforeEach, describe, expect, it, vi } from "vitest";
2233const mocks = vi.hoisted(() => ({
44loadPluginManifestRegistryForPluginRegistry: vi.fn(),
5+loadPluginMetadataSnapshot: vi.fn(),
6+loadPluginRegistrySnapshotWithMetadata: vi.fn(),
57resolveBundledExplicitWebSearchProvidersFromPublicArtifacts: vi.fn(() => null),
68resolveBundledExplicitWebFetchProvidersFromPublicArtifacts: vi.fn(() => null),
79loadBundledWebSearchProviderEntriesFromDir: vi.fn(),
@@ -10,6 +12,11 @@ const mocks = vi.hoisted(() => ({
10121113vi.mock("./plugin-registry.js", () => ({
1214loadPluginManifestRegistryForPluginRegistry: mocks.loadPluginManifestRegistryForPluginRegistry,
15+loadPluginRegistrySnapshotWithMetadata: mocks.loadPluginRegistrySnapshotWithMetadata,
16+}));
17+18+vi.mock("./plugin-metadata-snapshot.js", () => ({
19+loadPluginMetadataSnapshot: mocks.loadPluginMetadataSnapshot,
1320}));
14211522vi.mock("./web-search-providers.shared.js", () => ({
@@ -58,6 +65,28 @@ describe("web provider public artifact manifest fallback", () => {
5865},
5966],
6067});
68+mocks.loadPluginMetadataSnapshot.mockReturnValue({
69+diagnostics: [],
70+plugins: [
71+{
72+id: "fallback-search",
73+origin: "bundled",
74+rootDir: "/tmp/fallback-search",
75+contracts: { webSearchProviders: ["fallback-search"] },
76+},
77+{
78+id: "fallback-fetch",
79+origin: "bundled",
80+rootDir: "/tmp/fallback-fetch",
81+contracts: { webFetchProviders: ["fallback-fetch"] },
82+},
83+],
84+});
85+mocks.loadPluginRegistrySnapshotWithMetadata.mockReturnValue({
86+source: "derived",
87+snapshot: { plugins: [] },
88+diagnostics: [],
89+});
6190mocks.loadBundledWebSearchProviderEntriesFromDir.mockReturnValue([
6291{ id: "fallback-search", pluginId: "fallback-search" },
6392]);
@@ -70,7 +99,8 @@ describe("web provider public artifact manifest fallback", () => {
7099const providers = resolveBundledWebSearchProvidersFromPublicArtifacts({ config: {} });
7110072101expect(providers).toEqual([{ id: "fallback-search", pluginId: "fallback-search" }]);
73-expect(mocks.loadPluginManifestRegistryForPluginRegistry).toHaveBeenCalledOnce();
102+expect(mocks.loadPluginMetadataSnapshot).toHaveBeenCalledOnce();
103+expect(mocks.loadPluginManifestRegistryForPluginRegistry).not.toHaveBeenCalled();
74104expect(mocks.loadBundledWebSearchProviderEntriesFromDir).toHaveBeenCalledWith({
75105dirName: "fallback-search",
76106pluginId: "fallback-search",
@@ -81,7 +111,8 @@ describe("web provider public artifact manifest fallback", () => {
81111const providers = resolveBundledWebFetchProvidersFromPublicArtifacts({ config: {} });
8211283113expect(providers).toEqual([{ id: "fallback-fetch", pluginId: "fallback-fetch" }]);
84-expect(mocks.loadPluginManifestRegistryForPluginRegistry).toHaveBeenCalledOnce();
114+expect(mocks.loadPluginMetadataSnapshot).toHaveBeenCalledOnce();
115+expect(mocks.loadPluginManifestRegistryForPluginRegistry).not.toHaveBeenCalled();
85116expect(mocks.loadBundledWebFetchProviderEntriesFromDir).toHaveBeenCalledWith({
86117dirName: "fallback-fetch",
87118pluginId: "fallback-fetch",
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。