import { resolveAgentModelPrimaryValue } from "openclaw/plugin-sdk/provider-onboard" ;
import { describe, expect, it } from "vitest" ;
import { expectProviderOnboardPreservesPrimary } from "../../test/helpers/plugins/provider-onboard.js" ;
import { ZAI_CODING_CN_BASE_URL, ZAI_GLOBAL_BASE_URL } from "./model-definitions.js" ;
import { applyZaiConfig, applyZaiProviderConfig } from "./onboard.js" ;
describe("zai onboard" , () => {
it("adds zai provider with correct settings" , () => {
const cfg = applyZaiConfig({});
expect(cfg.models?.providers?.zai).toMatchObject({
baseUrl: ZAI_GLOBAL_BASE_URL,
api: "openai-completions" ,
});
const ids = cfg.models?.providers?.zai?.models?.map((m) => m.id);
expect(ids).toContain("glm-5" );
expect(ids).toContain("glm-5-turbo" );
expect(ids).toContain("glm-4.7" );
expect(ids).toContain("glm-4.7-flash" );
expect(ids).toContain("glm-4.7-flashx" );
});
it("supports CN endpoint for supported coding models" , () => {
for (const modelId of ["glm-4.7-flash" , "glm-4.7-flashx" ] as const ) {
const cfg = applyZaiConfig({}, { endpoint: "coding-cn" , modelId });
expect(cfg.models?.providers?.zai?.baseUrl).toBe(ZAI_CODING_CN_BASE_URL);
expect(resolveAgentModelPrimaryValue(cfg.agents?.defaults?.model)).toBe(`zai/${modelId}`);
}
});
it("does not overwrite existing primary model in provider-only mode" , () => {
expectProviderOnboardPreservesPrimary({
applyProviderConfig: applyZaiProviderConfig,
primaryModelRef: "anthropic/claude-opus-4-5" ,
});
});
});
Messung V0.5 in Prozent C=100 H=82 G=91
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-12)
¤
*© Formatika GbR, Deutschland