diff --git a/src/commands/auth-choice.test.ts b/src/commands/auth-choice.test.ts index a394bf00528..7b16ad47341 100644 --- a/src/commands/auth-choice.test.ts +++ b/src/commands/auth-choice.test.ts @@ -32,7 +32,7 @@ import { ZAI_CODING_GLOBAL_BASE_URL, } from "../plugins/provider-model-definitions.js"; import type { ProviderPlugin } from "../plugins/types.js"; -import { createCapturedPluginRegistration } from "../test-utils/plugin-registration.js"; +import { registerProviderPlugins } from "../test-utils/plugin-registration.js"; import type { WizardPrompter } from "../wizard/prompts.js"; import { applyAuthChoice, resolvePreferredProviderForAuthChoice } from "./auth-choice.js"; import { GOOGLE_GEMINI_DEFAULT_MODEL } from "./google-gemini-model-default.js"; @@ -82,8 +82,7 @@ type StoredAuthProfile = { }; function createDefaultProviderPlugins() { - const captured = createCapturedPluginRegistration(); - for (const plugin of [ + return registerProviderPlugins( anthropicPlugin, cloudflareAiGatewayPlugin, googlePlugin, @@ -106,10 +105,7 @@ function createDefaultProviderPlugins() { xaiPlugin, xiaomiPlugin, zaiPlugin, - ]) { - plugin.register(captured.api); - } - return captured.providers; + ); } describe("applyAuthChoice", () => { diff --git a/src/plugins/contracts/testkit.ts b/src/plugins/contracts/testkit.ts index e3f98c70759..32f36c502b9 100644 --- a/src/plugins/contracts/testkit.ts +++ b/src/plugins/contracts/testkit.ts @@ -1,25 +1,7 @@ -import { createCapturedPluginRegistration } from "../../test-utils/plugin-registration.js"; -import type { OpenClawPluginApi, ProviderPlugin } from "../types.js"; - -type RegistrablePlugin = { - register(api: OpenClawPluginApi): void; -}; - -export function registerProviders(...plugins: RegistrablePlugin[]) { - const captured = createCapturedPluginRegistration(); - for (const plugin of plugins) { - plugin.register(captured.api); - } - return captured.providers; -} - -export function requireProvider(providers: ProviderPlugin[], providerId: string) { - const provider = providers.find((entry) => entry.id === providerId); - if (!provider) { - throw new Error(`provider ${providerId} missing`); - } - return provider; -} +export { + registerProviderPlugins as registerProviders, + requireRegisteredProvider as requireProvider, +} from "../../test-utils/plugin-registration.js"; export function uniqueSortedStrings(values: readonly string[]) { return [...new Set(values)].toSorted((left, right) => left.localeCompare(right)); diff --git a/src/test-utils/plugin-registration.ts b/src/test-utils/plugin-registration.ts index 5251f82c051..e773e6848df 100644 --- a/src/test-utils/plugin-registration.ts +++ b/src/test-utils/plugin-registration.ts @@ -3,6 +3,10 @@ import type { OpenClawPluginApi, ProviderPlugin } from "../plugins/types.js"; export { createCapturedPluginRegistration }; +type RegistrablePlugin = { + register(api: OpenClawPluginApi): void; +}; + export function registerSingleProviderPlugin(params: { register(api: OpenClawPluginApi): void; }): ProviderPlugin { @@ -14,3 +18,19 @@ export function registerSingleProviderPlugin(params: { } return provider; } + +export function registerProviderPlugins(...plugins: RegistrablePlugin[]): ProviderPlugin[] { + const captured = createCapturedPluginRegistration(); + for (const plugin of plugins) { + plugin.register(captured.api); + } + return captured.providers; +} + +export function requireRegisteredProvider(providers: ProviderPlugin[], providerId: string) { + const provider = providers.find((entry) => entry.id === providerId); + if (!provider) { + throw new Error(`provider ${providerId} missing`); + } + return provider; +}