test(providers): share onboard merge assertions

This commit is contained in:
Vincent Koc
2026-04-12 04:16:10 +01:00
parent 3f65e2545f
commit a800dfc8f3
4 changed files with 73 additions and 44 deletions

View File

@@ -4,7 +4,11 @@ import {
} from "openclaw/plugin-sdk/provider-onboard";
import { expect } from "vitest";
import type { OpenClawConfig } from "../../../src/config/config.js";
import { createConfigWithFallbacks, EXPECTED_FALLBACKS } from "./onboard-config.js";
import {
createConfigWithFallbacks,
createLegacyProviderConfig,
EXPECTED_FALLBACKS,
} from "./onboard-config.js";
export function expectProviderOnboardAllowlistAlias(params: {
applyProviderConfig: (config: OpenClawConfig) => OpenClawConfig;
@@ -38,3 +42,38 @@ export function expectProviderOnboardPrimaryAndFallbacks(params: {
...EXPECTED_FALLBACKS,
]);
}
export function expectProviderOnboardMergedLegacyConfig(params: {
applyProviderConfig: (config: OpenClawConfig) => OpenClawConfig;
providerId: string;
providerApi: OpenClawConfig["models"] extends { providers?: infer P }
? P extends Record<string, infer Provider>
? Provider extends { api?: infer Api }
? Api
: never
: never
: never;
baseUrl: string;
legacyApi: Parameters<typeof createLegacyProviderConfig>[0]["api"];
legacyModelId?: string;
legacyModelName?: string;
legacyBaseUrl?: string;
legacyApiKey?: string;
}) {
const cfg = params.applyProviderConfig(
createLegacyProviderConfig({
providerId: params.providerId,
api: params.legacyApi,
modelId: params.legacyModelId,
modelName: params.legacyModelName,
baseUrl: params.legacyBaseUrl,
apiKey: params.legacyApiKey,
}),
);
const provider = cfg.models?.providers?.[params.providerId];
expect(provider?.baseUrl).toBe(params.baseUrl);
expect(provider?.api).toBe(params.providerApi);
expect(provider?.apiKey).toBe((params.legacyApiKey ?? "old-key").trim());
return provider;
}