test(providers): share onboard primary model checks

This commit is contained in:
Vincent Koc
2026-04-12 04:30:19 +01:00
parent 3d0ddccf73
commit 9c7c360fed
3 changed files with 33 additions and 10 deletions

View File

@@ -1,6 +1,8 @@
import { resolveAgentModelPrimaryValue } from "openclaw/plugin-sdk/provider-onboard";
import { describe, expect, it } from "vitest";
import { expectProviderOnboardMergedLegacyConfig } from "../../test/helpers/plugins/provider-onboard.js";
import {
expectProviderOnboardMergedLegacyConfig,
expectProviderOnboardPrimaryModel,
} from "../../test/helpers/plugins/provider-onboard.js";
import { SYNTHETIC_DEFAULT_MODEL_REF as SYNTHETIC_DEFAULT_MODEL_REF_PUBLIC } from "./api.js";
import {
applySyntheticConfig,
@@ -15,9 +17,18 @@ describe("synthetic onboard", () => {
baseUrl: "https://api.synthetic.new/anthropic",
api: "anthropic-messages",
});
expect(resolveAgentModelPrimaryValue(cfg.agents?.defaults?.model)).toBe(
SYNTHETIC_DEFAULT_MODEL_REF_PUBLIC,
);
expectProviderOnboardPrimaryModel({
applyConfig: applySyntheticConfig,
modelRef: SYNTHETIC_DEFAULT_MODEL_REF_PUBLIC,
});
});
it("keeps the public default model ref aligned", () => {
expect(SYNTHETIC_DEFAULT_MODEL_REF).toBe(SYNTHETIC_DEFAULT_MODEL_REF_PUBLIC);
expectProviderOnboardPrimaryModel({
applyConfig: applySyntheticConfig,
modelRef: SYNTHETIC_DEFAULT_MODEL_REF,
});
});
it("merges existing synthetic provider models", () => {

View File

@@ -1,6 +1,8 @@
import { resolveAgentModelPrimaryValue } from "openclaw/plugin-sdk/provider-onboard";
import { describe, expect, it } from "vitest";
import { expectProviderOnboardMergedLegacyConfig } from "../../test/helpers/plugins/provider-onboard.js";
import {
expectProviderOnboardMergedLegacyConfig,
expectProviderOnboardPrimaryModel,
} from "../../test/helpers/plugins/provider-onboard.js";
import { applyXiaomiConfig, applyXiaomiProviderConfig } from "./onboard.js";
describe("xiaomi onboard", () => {
@@ -15,7 +17,10 @@ describe("xiaomi onboard", () => {
"mimo-v2-pro",
"mimo-v2-omni",
]);
expect(resolveAgentModelPrimaryValue(cfg.agents?.defaults?.model)).toBe("xiaomi/mimo-v2-flash");
expectProviderOnboardPrimaryModel({
applyConfig: applyXiaomiConfig,
modelRef: "xiaomi/mimo-v2-flash",
});
});
it("merges Xiaomi models and keeps existing provider overrides", () => {

View File

@@ -35,8 +35,7 @@ export function expectProviderOnboardPrimaryAndFallbacks(params: {
applyConfig: (config: OpenClawConfig) => OpenClawConfig;
modelRef: string;
}) {
const cfg = params.applyConfig({});
expect(resolveAgentModelPrimaryValue(cfg.agents?.defaults?.model)).toBe(params.modelRef);
expectProviderOnboardPrimaryModel(params);
const cfgWithFallbacks = params.applyConfig(createConfigWithFallbacks());
expect(resolveAgentModelFallbackValues(cfgWithFallbacks.agents?.defaults?.model)).toEqual([
@@ -44,6 +43,14 @@ export function expectProviderOnboardPrimaryAndFallbacks(params: {
]);
}
export function expectProviderOnboardPrimaryModel(params: {
applyConfig: (config: OpenClawConfig) => OpenClawConfig;
modelRef: string;
}) {
const cfg = params.applyConfig({});
expect(resolveAgentModelPrimaryValue(cfg.agents?.defaults?.model)).toBe(params.modelRef);
}
export function expectProviderOnboardPreservesPrimary(params: {
applyProviderConfig: (config: OpenClawConfig) => OpenClawConfig;
primaryModelRef: string;