


























@@ -12,6 +12,13 @@ import {
1212QIANFAN_DEFAULT_MODEL_REF,
1313} from "./onboard.js";
141415+function expectRecord<T>(value: T | undefined, label: string): T {
16+if (!value) {
17+throw new Error(`Expected ${label}`);
18+}
19+return value;
20+}
21+1522describe("qianfan provider plugin", () => {
1623it("registers Qianfan with api-key auth wizard metadata", async () => {
1724const provider = await registerSingleProviderPlugin(qianfanPlugin);
@@ -37,19 +44,28 @@ describe("qianfan provider plugin", () => {
37443845expect(catalogProvider.api).toBe("openai-completions");
3946expect(catalogProvider.baseUrl).toBe("https://qianfan.baidubce.com/v2");
40-expect(catalogProvider.models?.map((model) => model.id)).toEqual([
47+const models = expectRecord(catalogProvider.models, "Qianfan catalog models");
48+expect(models.map((model) => model.id)).toEqual([
4149"deepseek-v3.2",
4250"ernie-5.0-thinking-preview",
4351]);
44-expect(catalogProvider.models?.find((model) => model.id === "deepseek-v3.2")).toMatchObject({
52+expect(
53+expectRecord(
54+models.find((model) => model.id === "deepseek-v3.2"),
55+"deepseek model",
56+),
57+).toMatchObject({
4558name: "DEEPSEEK V3.2",
4659reasoning: true,
4760input: ["text"],
4861contextWindow: 98304,
4962maxTokens: 32768,
5063});
5164expect(
52-catalogProvider.models?.find((model) => model.id === "ernie-5.0-thinking-preview"),
65+expectRecord(
66+models.find((model) => model.id === "ernie-5.0-thinking-preview"),
67+"ernie model",
68+),
5369).toMatchObject({
5470name: "ERNIE-5.0-Thinking-Preview",
5571reasoning: true,
@@ -68,25 +84,34 @@ describe("qianfan provider plugin", () => {
6884},
6985});
708671-expect(cfg.models?.providers?.qianfan).toMatchObject({
87+const modelsConfig = expectRecord(cfg.models, "models config");
88+const providers = expectRecord(modelsConfig.providers, "model providers");
89+const providerConfig = expectRecord(providers.qianfan, "Qianfan provider config");
90+expect(providerConfig).toMatchObject({
7291api: "openai-completions",
7392baseUrl: "https://qianfan.baidubce.com/v2",
7493});
75-expect(cfg.models?.providers?.qianfan?.models?.map((model) => model.id)).toEqual([
94+const providerModels = expectRecord(providerConfig.models, "Qianfan provider models");
95+expect(providerModels.map((model) => model.id)).toEqual([
7696"deepseek-v3.2",
7797"ernie-5.0-thinking-preview",
7898]);
79-expect(cfg.agents?.defaults?.models?.[QIANFAN_DEFAULT_MODEL_REF]?.alias).toBe("QIANFAN");
80-expect(resolveAgentModelPrimaryValue(cfg.agents?.defaults?.model)).toBe(
81-"anthropic/claude-opus-4-6",
99+const agentsConfig = expectRecord(cfg.agents, "agents config");
100+const agentDefaults = expectRecord(agentsConfig.defaults, "agent defaults");
101+const agentModelAliases = expectRecord(agentDefaults.models, "agent model aliases");
102+const qianfanAlias = expectRecord(
103+agentModelAliases[QIANFAN_DEFAULT_MODEL_REF],
104+"Qianfan model alias",
82105);
106+expect(qianfanAlias.alias).toBe("QIANFAN");
107+expect(resolveAgentModelPrimaryValue(agentDefaults.model)).toBe("anthropic/claude-opus-4-6");
83108});
8410985110it("sets Qianfan as the agent primary model in full onboarding mode", () => {
86111const cfg = applyQianfanConfig({});
8711288-expect(resolveAgentModelPrimaryValue(cfg.agents?.defaults?.model)).toBe(
89- QIANFAN_DEFAULT_MODEL_REF,
90-);
113+const agentsConfig = expectRecord(cfg.agents, "agents config");
114+const agentDefaults = expectRecord(agentsConfig.defaults, "agent defaults");
115+expect(resolveAgentModelPrimaryValue(agentDefaults.model)).toBe(QIANFAN_DEFAULT_MODEL_REF);
91116});
92117});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。