























@@ -1,6 +1,7 @@
11import { beforeEach, describe, expect, it, vi } from "vitest";
22import type { OpenClawConfig } from "../config/types.js";
33import type { ImageGenerationProviderPlugin } from "../plugins/types.js";
4+import { getImageGenerationProvider, listImageGenerationProviders } from "./provider-registry.js";
4556const resolvePluginCapabilityProvidersMock = vi.hoisted(() =>
67vi.fn<() => ImageGenerationProviderPlugin[]>(() => []),
@@ -25,33 +26,21 @@ function createProvider(
2526};
2627}
272828-type ImageProviderRegistry = typeof import("./provider-registry.js");
29-30-function requireImageProvider(
31-registry: ImageProviderRegistry,
32-id: string,
33-): ImageGenerationProviderPlugin {
34-const provider = registry.getImageGenerationProvider(id);
29+function requireImageProvider(id: string): ImageGenerationProviderPlugin {
30+const provider = getImageGenerationProvider(id);
3531if (!provider) {
3632throw new Error(`expected image generation provider ${id}`);
3733}
3834return provider;
3935}
403641-async function loadProviderRegistry(): Promise<ImageProviderRegistry> {
42-vi.resetModules();
43-return await import("./provider-registry.js");
44-}
45-4637describe("image-generation provider registry", () => {
4738beforeEach(() => {
48-vi.resetModules();
4939resolvePluginCapabilityProvidersMock.mockReset();
5040resolvePluginCapabilityProvidersMock.mockReturnValue([]);
5141});
524253-it("delegates provider resolution to the capability provider boundary", async () => {
54-const { listImageGenerationProviders } = await loadProviderRegistry();
43+it("delegates provider resolution to the capability provider boundary", () => {
5544const cfg = {} as OpenClawConfig;
56455746expect(listImageGenerationProviders(cfg)).toStrictEqual([]);
@@ -61,9 +50,8 @@ describe("image-generation provider registry", () => {
6150});
6251});
635264-it("uses active plugin providers without loading from disk", async () => {
53+it("uses active plugin providers without loading from disk", () => {
6554resolvePluginCapabilityProvidersMock.mockReturnValue([createProvider({ id: "custom-image" })]);
66-const { getImageGenerationProvider } = await loadProviderRegistry();
67556856const provider = getImageGenerationProvider("custom-image");
6957@@ -74,17 +62,15 @@ describe("image-generation provider registry", () => {
7462});
7563});
766477-it("ignores prototype-like provider ids and aliases", async () => {
65+it("ignores prototype-like provider ids and aliases", () => {
7866resolvePluginCapabilityProvidersMock.mockReturnValue([
7967createProvider({ id: "__proto__", aliases: ["constructor", "prototype"] }),
8068createProvider({ id: "safe-image", aliases: ["safe-alias", "constructor"] }),
8169]);
82-const registry = await loadProviderRegistry();
83-const { getImageGenerationProvider, listImageGenerationProviders } = registry;
84708571expect(listImageGenerationProviders().map((provider) => provider.id)).toEqual(["safe-image"]);
8672expect(getImageGenerationProvider("__proto__")).toBeUndefined();
8773expect(getImageGenerationProvider("constructor")).toBeUndefined();
88-expect(requireImageProvider(registry, "safe-alias").id).toBe("safe-image");
74+expect(requireImageProvider("safe-alias").id).toBe("safe-image");
8975});
9076});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。