import { describe, expect, it } from "vitest"; import { applyModelDefaults } from "./defaults.js"; import type { ClawdbotConfig } from "./types.js"; describe("applyModelDefaults", () => { it("adds default aliases when models are present", () => { const cfg = { agents: { defaults: { models: { "anthropic/claude-opus-4-5": {}, "openai/gpt-5.2": {}, }, }, }, } satisfies ClawdbotConfig; const next = applyModelDefaults(cfg); expect(next.agents?.defaults?.models?.["anthropic/claude-opus-4-5"]?.alias).toBe("opus"); expect(next.agents?.defaults?.models?.["openai/gpt-5.2"]?.alias).toBe("gpt"); }); it("does not override existing aliases", () => { const cfg = { agents: { defaults: { models: { "anthropic/claude-opus-4-5": { alias: "Opus" }, }, }, }, } satisfies ClawdbotConfig; const next = applyModelDefaults(cfg); expect(next.agents?.defaults?.models?.["anthropic/claude-opus-4-5"]?.alias).toBe("Opus"); }); it("respects explicit empty alias disables", () => { const cfg = { agents: { defaults: { models: { "google/gemini-3-pro-preview": { alias: "" }, "google/gemini-3-flash-preview": {}, }, }, }, } satisfies ClawdbotConfig; const next = applyModelDefaults(cfg); expect(next.agents?.defaults?.models?.["google/gemini-3-pro-preview"]?.alias).toBe(""); expect(next.agents?.defaults?.models?.["google/gemini-3-flash-preview"]?.alias).toBe( "gemini-flash", ); }); });