test(providers): share onboard smoke assertions

This commit is contained in:
Vincent Koc
2026-04-12 04:11:17 +01:00
parent e0a8a41247
commit 3f65e2545f
4 changed files with 76 additions and 87 deletions

View File

@@ -1,40 +1,25 @@
import { describe, it } from "vitest";
import {
resolveAgentModelFallbackValues,
resolveAgentModelPrimaryValue,
} from "openclaw/plugin-sdk/provider-onboard";
import { describe, expect, it } from "vitest";
import {
createConfigWithFallbacks,
EXPECTED_FALLBACKS,
} from "../../test/helpers/plugins/onboard-config.js";
expectProviderOnboardAllowlistAlias,
expectProviderOnboardPrimaryAndFallbacks,
} from "../../test/helpers/plugins/provider-onboard.js";
import { applyOpencodeGoConfig, applyOpencodeGoProviderConfig } from "./onboard.js";
const MODEL_REF = "opencode-go/kimi-k2.5";
describe("opencode-go onboard", () => {
it("adds allowlist entry and preserves alias", () => {
const withDefault = applyOpencodeGoProviderConfig({});
expect(Object.keys(withDefault.agents?.defaults?.models ?? {})).toContain(MODEL_REF);
const withAlias = applyOpencodeGoProviderConfig({
agents: {
defaults: {
models: {
[MODEL_REF]: { alias: "Kimi" },
},
},
},
expectProviderOnboardAllowlistAlias({
applyProviderConfig: applyOpencodeGoProviderConfig,
modelRef: MODEL_REF,
alias: "Kimi",
});
expect(withAlias.agents?.defaults?.models?.[MODEL_REF]?.alias).toBe("Kimi");
});
it("sets primary model and preserves existing model fallbacks", () => {
const cfg = applyOpencodeGoConfig({});
expect(resolveAgentModelPrimaryValue(cfg.agents?.defaults?.model)).toBe(MODEL_REF);
const cfgWithFallbacks = applyOpencodeGoConfig(createConfigWithFallbacks());
expect(resolveAgentModelFallbackValues(cfgWithFallbacks.agents?.defaults?.model)).toEqual([
...EXPECTED_FALLBACKS,
]);
expectProviderOnboardPrimaryAndFallbacks({
applyConfig: applyOpencodeGoConfig,
modelRef: MODEL_REF,
});
});
});

View File

@@ -1,40 +1,25 @@
import { describe, it } from "vitest";
import {
resolveAgentModelFallbackValues,
resolveAgentModelPrimaryValue,
} from "openclaw/plugin-sdk/provider-onboard";
import { describe, expect, it } from "vitest";
import {
createConfigWithFallbacks,
EXPECTED_FALLBACKS,
} from "../../test/helpers/plugins/onboard-config.js";
expectProviderOnboardAllowlistAlias,
expectProviderOnboardPrimaryAndFallbacks,
} from "../../test/helpers/plugins/provider-onboard.js";
import { applyOpencodeZenConfig, applyOpencodeZenProviderConfig } from "./onboard.js";
const MODEL_REF = "opencode/claude-opus-4-6";
describe("opencode onboard", () => {
it("adds allowlist entry and preserves alias", () => {
const withDefault = applyOpencodeZenProviderConfig({});
expect(Object.keys(withDefault.agents?.defaults?.models ?? {})).toContain(MODEL_REF);
const withAlias = applyOpencodeZenProviderConfig({
agents: {
defaults: {
models: {
[MODEL_REF]: { alias: "My Opus" },
},
},
},
expectProviderOnboardAllowlistAlias({
applyProviderConfig: applyOpencodeZenProviderConfig,
modelRef: MODEL_REF,
alias: "My Opus",
});
expect(withAlias.agents?.defaults?.models?.[MODEL_REF]?.alias).toBe("My Opus");
});
it("sets primary model and preserves existing model fallbacks", () => {
const cfg = applyOpencodeZenConfig({});
expect(resolveAgentModelPrimaryValue(cfg.agents?.defaults?.model)).toBe(MODEL_REF);
const cfgWithFallbacks = applyOpencodeZenConfig(createConfigWithFallbacks());
expect(resolveAgentModelFallbackValues(cfgWithFallbacks.agents?.defaults?.model)).toEqual([
...EXPECTED_FALLBACKS,
]);
expectProviderOnboardPrimaryAndFallbacks({
applyConfig: applyOpencodeZenConfig,
modelRef: MODEL_REF,
});
});
});

View File

@@ -1,12 +1,8 @@
import { describe, it } from "vitest";
import {
resolveAgentModelFallbackValues,
resolveAgentModelPrimaryValue,
} from "openclaw/plugin-sdk/provider-onboard";
import { describe, expect, it } from "vitest";
import {
createConfigWithFallbacks,
EXPECTED_FALLBACKS,
} from "../../test/helpers/plugins/onboard-config.js";
expectProviderOnboardAllowlistAlias,
expectProviderOnboardPrimaryAndFallbacks,
} from "../../test/helpers/plugins/provider-onboard.js";
import {
applyOpenrouterConfig,
applyOpenrouterProviderConfig,
@@ -15,34 +11,17 @@ import {
describe("openrouter onboard", () => {
it("adds allowlist entry and preserves alias", () => {
const withDefault = applyOpenrouterProviderConfig({});
expect(Object.keys(withDefault.agents?.defaults?.models ?? {})).toContain(
OPENROUTER_DEFAULT_MODEL_REF,
);
const withAlias = applyOpenrouterProviderConfig({
agents: {
defaults: {
models: {
[OPENROUTER_DEFAULT_MODEL_REF]: { alias: "Router" },
},
},
},
expectProviderOnboardAllowlistAlias({
applyProviderConfig: applyOpenrouterProviderConfig,
modelRef: OPENROUTER_DEFAULT_MODEL_REF,
alias: "Router",
});
expect(withAlias.agents?.defaults?.models?.[OPENROUTER_DEFAULT_MODEL_REF]?.alias).toBe(
"Router",
);
});
it("sets primary model and preserves existing model fallbacks", () => {
const cfg = applyOpenrouterConfig({});
expect(resolveAgentModelPrimaryValue(cfg.agents?.defaults?.model)).toBe(
OPENROUTER_DEFAULT_MODEL_REF,
);
const cfgWithFallbacks = applyOpenrouterConfig(createConfigWithFallbacks());
expect(resolveAgentModelFallbackValues(cfgWithFallbacks.agents?.defaults?.model)).toEqual([
...EXPECTED_FALLBACKS,
]);
expectProviderOnboardPrimaryAndFallbacks({
applyConfig: applyOpenrouterConfig,
modelRef: OPENROUTER_DEFAULT_MODEL_REF,
});
});
});

View File

@@ -0,0 +1,40 @@
import {
resolveAgentModelFallbackValues,
resolveAgentModelPrimaryValue,
} 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";
export function expectProviderOnboardAllowlistAlias(params: {
applyProviderConfig: (config: OpenClawConfig) => OpenClawConfig;
modelRef: string;
alias: string;
}) {
const withDefault = params.applyProviderConfig({});
expect(Object.keys(withDefault.agents?.defaults?.models ?? {})).toContain(params.modelRef);
const withAlias = params.applyProviderConfig({
agents: {
defaults: {
models: {
[params.modelRef]: { alias: params.alias },
},
},
},
});
expect(withAlias.agents?.defaults?.models?.[params.modelRef]?.alias).toBe(params.alias);
}
export function expectProviderOnboardPrimaryAndFallbacks(params: {
applyConfig: (config: OpenClawConfig) => OpenClawConfig;
modelRef: string;
}) {
const cfg = params.applyConfig({});
expect(resolveAgentModelPrimaryValue(cfg.agents?.defaults?.model)).toBe(params.modelRef);
const cfgWithFallbacks = params.applyConfig(createConfigWithFallbacks());
expect(resolveAgentModelFallbackValues(cfgWithFallbacks.agents?.defaults?.model)).toEqual([
...EXPECTED_FALLBACKS,
]);
}