


























@@ -50,13 +50,13 @@ function normalizeProviderFixture(provider: ProviderPlugin) {
50505151function expectNormalizedProviderFixture(params: {
5252provider: ProviderPlugin;
53-expectedProvider?: Record<string, unknown>;
53+expectedProvider?: ProviderPlugin | null;
5454expectedDiagnostics?: ReadonlyArray<{ level: PluginDiagnostic["level"]; message: string }>;
5555expectedDiagnosticText?: readonly string[];
5656}) {
5757const result = normalizeProviderFixture(params.provider);
5858if (params.expectedProvider) {
59-expect(result.provider).toMatchObject(params.expectedProvider);
59+expect(result.provider).toEqual(params.expectedProvider);
6060}
6161if (params.expectedDiagnostics) {
6262expectDiagnosticMessages(result.diagnostics, params.expectedDiagnostics);
@@ -69,19 +69,22 @@ function expectNormalizedProviderFixture(params: {
69697070function expectProviderNormalizationResult(params: {
7171provider: ProviderPlugin;
72-expectedProvider?: Record<string, unknown>;
72+expectedProvider?: ProviderPlugin | null;
7373expectedDiagnostics?: ReadonlyArray<{ level: PluginDiagnostic["level"]; message: string }>;
7474expectedDiagnosticText?: readonly string[];
7575assert?: (
7676provider: ReturnType<typeof normalizeRegisteredProvider>,
7777diagnostics: PluginDiagnostic[],
78+inputProvider: ProviderPlugin,
7879) => void;
7980}) {
8081const { diagnostics, provider } = expectNormalizedProviderFixture(params);
81-params.assert?.(provider, diagnostics);
82+params.assert?.(provider, diagnostics, params.provider);
8283}
83848485describe("normalizeRegisteredProvider", () => {
86+const primaryAuthRun = async () => ({ profiles: [] });
87+8588it.each([
8689{
8790name: "drops invalid and duplicate auth methods, and clears bad wizard method bindings",
@@ -105,7 +108,7 @@ describe("normalizeRegisteredProvider", () => {
105108message: " Demo models ",
106109},
107110},
108-run: async () => ({ profiles: [] }),
111+run: primaryAuthRun,
109112},
110113{
111114id: "primary",
@@ -136,6 +139,7 @@ describe("normalizeRegisteredProvider", () => {
136139{
137140id: "primary",
138141label: "Primary",
142+kind: "custom",
139143wizard: {
140144choiceId: "demo-primary",
141145modelAllowlist: {
@@ -145,6 +149,7 @@ describe("normalizeRegisteredProvider", () => {
145149message: "Demo models",
146150},
147151},
152+run: primaryAuthRun,
148153},
149154],
150155wizard: {
@@ -218,12 +223,20 @@ describe("normalizeRegisteredProvider", () => {
218223expectedDiagnosticText: [
219224'provider "demo" registered both catalog and discovery; using catalog',
220225],
221-assert: (provider: ReturnType<typeof normalizeRegisteredProvider>) => {
226+assert: (
227+provider: ReturnType<typeof normalizeRegisteredProvider>,
228+_diagnostics: PluginDiagnostic[],
229+inputProvider: ProviderPlugin,
230+) => {
222231if (!provider) {
223232throw new Error("expected provider");
224233}
225-expect(typeof provider.catalog?.run).toBe("function");
226-expect(provider.discovery).toBeUndefined();
234+expect(provider).toEqual({
235+id: "demo",
236+label: "Demo",
237+auth: [],
238+catalog: inputProvider.catalog,
239+});
227240},
228241},
229242{
@@ -242,11 +255,20 @@ describe("normalizeRegisteredProvider", () => {
242255expectedDiagnosticText: [
243256'provider "legacy-discovery-only" uses deprecated discovery; use catalog',
244257],
245-assert: (provider: ReturnType<typeof normalizeRegisteredProvider>) => {
258+assert: (
259+provider: ReturnType<typeof normalizeRegisteredProvider>,
260+_diagnostics: PluginDiagnostic[],
261+inputProvider: ProviderPlugin,
262+) => {
246263if (!provider) {
247264throw new Error("expected provider");
248265}
249-expect(provider).toMatchObject({ discovery: { run: expect.any(Function) } });
266+expect(provider).toEqual({
267+id: "legacy-discovery-only",
268+label: "Demo",
269+auth: [],
270+discovery: inputProvider.discovery,
271+});
250272},
251273},
252274] as const)(
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。