mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 07:40:44 +00:00
test(providers): share onboard smoke assertions
This commit is contained in:
@@ -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,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
40
test/helpers/plugins/provider-onboard.ts
Normal file
40
test/helpers/plugins/provider-onboard.ts
Normal 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,
|
||||
]);
|
||||
}
|
||||
Reference in New Issue
Block a user