Plugins: speed up auth-choice contracts

This commit is contained in:
Vincent Koc
2026-03-16 17:57:09 -07:00
parent 8b2f0cbb6c
commit 4194bba575

View File

@@ -1,7 +1,6 @@
import { afterEach, describe, expect, it, vi } from "vitest";
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
import { clearRuntimeAuthProfileStoreSnapshots } from "../../agents/auth-profiles/store.js";
import { applyAuthChoiceLoadedPluginProvider } from "../../commands/auth-choice.apply.plugin-provider.js";
import { resolvePreferredProviderForAuthChoice } from "../../commands/auth-choice.preferred-provider.js";
import type { AuthChoice } from "../../commands/onboard-types.js";
import {
createAuthTestLifecycle,
@@ -13,6 +12,7 @@ import {
} from "../../commands/test-wizard-helpers.js";
import { createCapturedPluginRegistration } from "../../test-utils/plugin-registration.js";
import type { OpenClawPluginApi, ProviderPlugin } from "../types.js";
import { providerContractRegistry } from "./registry.js";
type ResolvePluginProviders =
typeof import("../../commands/auth-choice.apply.plugin-provider.runtime.js").resolvePluginProviders;
@@ -28,6 +28,7 @@ const resolveProviderPluginChoiceMock = vi.hoisted(() => vi.fn<ResolveProviderPl
const runProviderModelSelectedHookMock = vi.hoisted(() =>
vi.fn<RunProviderModelSelectedHook>(async () => {}),
);
const resolvePreferredProviderPluginProvidersMock = vi.hoisted(() => vi.fn());
vi.mock("../../../extensions/qwen-portal-auth/oauth.js", () => ({
loginQwenPortalOAuth: loginQwenPortalOAuthMock,
@@ -43,6 +44,18 @@ vi.mock("../../commands/auth-choice.apply.plugin-provider.runtime.js", () => ({
runProviderModelSelectedHook: runProviderModelSelectedHookMock,
}));
vi.mock("../../plugins/providers.js", async () => {
const actual = await vi.importActual<object>("../../plugins/providers.js");
return {
...actual,
resolvePluginProviders: (...args: unknown[]) =>
resolvePreferredProviderPluginProvidersMock(...args),
};
});
const { resolvePreferredProviderForAuthChoice } =
await import("../../commands/auth-choice.preferred-provider.js");
type StoredAuthProfile = {
type?: string;
provider?: string;
@@ -87,6 +100,15 @@ describe("provider auth-choice contract", () => {
lifecycle.setStateDir(env.stateDir);
}
beforeEach(() => {
resolvePreferredProviderPluginProvidersMock.mockReset();
resolvePreferredProviderPluginProvidersMock.mockReturnValue([
...new Map(
providerContractRegistry.map((entry) => [entry.provider.id, entry.provider]),
).values(),
]);
});
afterEach(async () => {
loginQwenPortalOAuthMock.mockReset();
githubCopilotLoginCommandMock.mockReset();