

















@@ -25,23 +25,37 @@ type MockManifestRegistry = {
2525diagnostics: unknown[];
2626};
272728-const loadPluginManifestRegistry = vi.hoisted(() =>
29-vi.fn<() => MockManifestRegistry>(() => ({ plugins: [], diagnostics: [] })),
30-);
28+const pluginRegistryMocks = vi.hoisted(() => ({
29+loadPluginManifestRegistryForInstalledIndex: vi.fn<() => MockManifestRegistry>(() => ({
30+plugins: [],
31+diagnostics: [],
32+})),
33+loadPluginRegistrySnapshot: vi.fn(() => ({ plugins: [] })),
34+}));
35+36+vi.mock("../plugins/manifest-registry-installed.js", () => ({
37+loadPluginManifestRegistryForInstalledIndex:
38+pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex,
39+}));
314032-vi.mock("../plugins/manifest-registry.js", () => ({
33-loadPluginManifestRegistry,
41+vi.mock("../plugins/plugin-registry.js", () => ({
42+loadPluginRegistrySnapshot: pluginRegistryMocks.loadPluginRegistrySnapshot,
3443}));
35443645describe("provider env vars dynamic manifest metadata", () => {
3746beforeEach(() => {
38-loadPluginManifestRegistry.mockReset();
39-loadPluginManifestRegistry.mockReturnValue({ plugins: [], diagnostics: [] });
47+pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex.mockReset();
48+pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex.mockReturnValue({
49+plugins: [],
50+diagnostics: [],
51+});
52+pluginRegistryMocks.loadPluginRegistrySnapshot.mockReset();
53+pluginRegistryMocks.loadPluginRegistrySnapshot.mockReturnValue({ plugins: [] });
4054__testing.resetProviderEnvVarCachesForTests();
4155});
42564357it("includes later-installed plugin env vars without a bundled generated map", async () => {
44-loadPluginManifestRegistry.mockReturnValue({
58+pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex.mockReturnValue({
4559plugins: [
4660{
4761id: "external-fireworks",
@@ -64,7 +78,7 @@ describe("provider env vars dynamic manifest metadata", () => {
6478});
65796680it("includes setup provider env vars without loading setup runtime", async () => {
67-loadPluginManifestRegistry.mockReturnValue({
81+pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex.mockReturnValue({
6882plugins: [
6983{
7084id: "external-model-studio",
@@ -88,7 +102,7 @@ describe("provider env vars dynamic manifest metadata", () => {
88102});
8910390104it("appends setup provider env vars after explicit provider auth env vars", async () => {
91-loadPluginManifestRegistry.mockReturnValue({
105+pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex.mockReturnValue({
92106plugins: [
93107{
94108id: "external-fireworks",
@@ -113,7 +127,7 @@ describe("provider env vars dynamic manifest metadata", () => {
113127});
114128115129it("keeps lazy manifest-backed exports cold until accessed and resolves them once", async () => {
116-loadPluginManifestRegistry.mockReturnValue({
130+pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex.mockReturnValue({
117131plugins: [
118132{
119133id: "external-fireworks",
@@ -126,19 +140,22 @@ describe("provider env vars dynamic manifest metadata", () => {
126140diagnostics: [],
127141});
128142129-expect(loadPluginManifestRegistry).not.toHaveBeenCalled();
143+expect(pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex).not.toHaveBeenCalled();
130144expect(PROVIDER_ENV_VARS.fireworks).toEqual(["FIREWORKS_ALT_API_KEY"]);
131145expect(PROVIDER_AUTH_ENV_VAR_CANDIDATES.fireworks).toEqual(["FIREWORKS_ALT_API_KEY"]);
132-const initialLoads = loadPluginManifestRegistry.mock.calls.length;
146+const initialLoads =
147+pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex.mock.calls.length;
133148expect(initialLoads).toBeGreaterThan(0);
134149135150void PROVIDER_ENV_VARS.fireworks;
136151void PROVIDER_AUTH_ENV_VAR_CANDIDATES.fireworks;
137-expect(loadPluginManifestRegistry).toHaveBeenCalledTimes(initialLoads);
152+expect(pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex).toHaveBeenCalledTimes(
153+initialLoads,
154+);
138155});
139156140157it("reuses the lazy default lookup cache for repeated provider env var reads", async () => {
141-loadPluginManifestRegistry.mockReturnValue({
158+pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex.mockReturnValue({
142159plugins: [
143160{
144161id: "external-fireworks",
@@ -152,14 +169,17 @@ describe("provider env vars dynamic manifest metadata", () => {
152169});
153170154171expect(getProviderEnvVars("fireworks")).toEqual(["FIREWORKS_ALT_API_KEY"]);
155-const initialLoads = loadPluginManifestRegistry.mock.calls.length;
172+const initialLoads =
173+pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex.mock.calls.length;
156174expect(initialLoads).toBeGreaterThan(0);
157175expect(getProviderEnvVars("fireworks")).toEqual(["FIREWORKS_ALT_API_KEY"]);
158-expect(loadPluginManifestRegistry).toHaveBeenCalledTimes(initialLoads);
176+expect(pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex).toHaveBeenCalledTimes(
177+initialLoads,
178+);
159179});
160180161181it("keeps workspace plugin env vars in default lookups", async () => {
162-loadPluginManifestRegistry.mockReturnValue({
182+pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex.mockReturnValue({
163183plugins: [
164184{
165185id: "workspace-audio",
@@ -179,7 +199,7 @@ describe("provider env vars dynamic manifest metadata", () => {
179199});
180200181201it("excludes untrusted workspace plugin env vars when requested", async () => {
182-loadPluginManifestRegistry.mockReturnValue({
202+pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex.mockReturnValue({
183203plugins: [
184204{
185205id: "workspace-audio",
@@ -229,7 +249,7 @@ describe("provider env vars dynamic manifest metadata", () => {
229249});
230250231251it("keeps explicitly trusted workspace plugin env vars when requested", async () => {
232-loadPluginManifestRegistry.mockReturnValue({
252+pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex.mockReturnValue({
233253plugins: [
234254{
235255id: "workspace-audio",
@@ -257,7 +277,7 @@ describe("provider env vars dynamic manifest metadata", () => {
257277});
258278259279it("does not trust arbitrary workspace plugin ids from the context engine slot", async () => {
260-loadPluginManifestRegistry.mockReturnValue({
280+pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex.mockReturnValue({
261281plugins: [
262282{
263283id: "workspace-audio",
@@ -287,7 +307,7 @@ describe("provider env vars dynamic manifest metadata", () => {
287307});
288308289309it("keeps selected workspace context engine env vars when requested", async () => {
290-loadPluginManifestRegistry.mockReturnValue({
310+pluginRegistryMocks.loadPluginManifestRegistryForInstalledIndex.mockReturnValue({
291311plugins: [
292312{
293313id: "workspace-engine",
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。