mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-06 05:51:15 +08:00
86 lines
3.2 KiB
TypeScript
86 lines
3.2 KiB
TypeScript
// Xiaomi tests cover onboard plugin behavior.
|
|
import {
|
|
expectProviderOnboardMergedLegacyConfig,
|
|
expectProviderOnboardPrimaryModel,
|
|
} from "openclaw/plugin-sdk/provider-test-contracts";
|
|
import { describe, expect, it } from "vitest";
|
|
import {
|
|
applyXiaomiConfig,
|
|
applyXiaomiProviderConfig,
|
|
applyXiaomiTokenPlanConfig,
|
|
applyXiaomiTokenPlanProviderConfig,
|
|
} from "./onboard.js";
|
|
import { buildXiaomiProvider, buildXiaomiTokenPlanProvider } from "./provider-catalog.js";
|
|
|
|
describe("xiaomi onboard", () => {
|
|
it("adds Xiaomi provider with correct settings", () => {
|
|
const cfg = applyXiaomiConfig({});
|
|
const provider = cfg.models?.providers?.xiaomi;
|
|
expect(provider).toEqual(buildXiaomiProvider());
|
|
expect(provider?.models.map((m) => m.id)).toEqual([
|
|
"mimo-v2-flash",
|
|
"mimo-v2-pro",
|
|
"mimo-v2-omni",
|
|
]);
|
|
expect(cfg.agents?.defaults?.models?.["xiaomi/mimo-v2-flash"]).toEqual({ alias: "Xiaomi" });
|
|
expect(cfg.agents?.defaults?.model).toEqual({ primary: "xiaomi/mimo-v2-flash" });
|
|
expectProviderOnboardPrimaryModel({
|
|
applyConfig: applyXiaomiConfig,
|
|
modelRef: "xiaomi/mimo-v2-flash",
|
|
});
|
|
});
|
|
|
|
it("merges Xiaomi models and keeps existing provider overrides", () => {
|
|
const provider = expectProviderOnboardMergedLegacyConfig({
|
|
applyProviderConfig: applyXiaomiProviderConfig,
|
|
providerId: "xiaomi",
|
|
providerApi: "openai-completions",
|
|
baseUrl: "https://api.xiaomimimo.com/v1",
|
|
legacyApi: "openai-completions",
|
|
legacyModelId: "custom-model",
|
|
legacyModelName: "Custom",
|
|
});
|
|
expect(provider?.models.map((m) => m.id)).toEqual([
|
|
"custom-model",
|
|
"mimo-v2-flash",
|
|
"mimo-v2-pro",
|
|
"mimo-v2-omni",
|
|
]);
|
|
});
|
|
|
|
it("adds Xiaomi Token Plan provider with a regional endpoint preset", () => {
|
|
const cfg = applyXiaomiTokenPlanConfig({}, "ams");
|
|
const provider = cfg.models?.providers?.["xiaomi-token-plan"];
|
|
expect(provider).toEqual({
|
|
...buildXiaomiTokenPlanProvider(),
|
|
baseUrl: "https://token-plan-ams.xiaomimimo.com/v1",
|
|
});
|
|
expect(provider?.models.map((m) => m.id)).toEqual(["mimo-v2.5-pro", "mimo-v2.5"]);
|
|
expect(cfg.agents?.defaults?.models?.["xiaomi-token-plan/mimo-v2.5-pro"]).toEqual({
|
|
alias: "Xiaomi MiMo V2.5 Pro",
|
|
});
|
|
expect(cfg.agents?.defaults?.model).toEqual({ primary: "xiaomi-token-plan/mimo-v2.5-pro" });
|
|
expectProviderOnboardPrimaryModel({
|
|
applyConfig: (config) => applyXiaomiTokenPlanConfig(config, "ams"),
|
|
modelRef: "xiaomi-token-plan/mimo-v2.5-pro",
|
|
});
|
|
});
|
|
|
|
it("merges Xiaomi Token Plan models and rewrites the selected regional base URL", () => {
|
|
const provider = expectProviderOnboardMergedLegacyConfig({
|
|
applyProviderConfig: (config) => applyXiaomiTokenPlanProviderConfig(config, "sgp"),
|
|
providerId: "xiaomi-token-plan",
|
|
providerApi: "openai-completions",
|
|
baseUrl: "https://token-plan-sgp.xiaomimimo.com/v1",
|
|
legacyApi: "openai-completions",
|
|
legacyModelId: "custom-token-plan-model",
|
|
legacyModelName: "Custom Token Plan",
|
|
});
|
|
expect(provider?.models.map((m) => m.id)).toEqual([
|
|
"custom-token-plan-model",
|
|
"mimo-v2.5-pro",
|
|
"mimo-v2.5",
|
|
]);
|
|
});
|
|
});
|