| import { describe, expect, it } from "vitest"; |
| import { buildCopilotModelDefinition, getDefaultCopilotModelIds } from "./github-copilot-models.js"; |
|
|
| describe("github-copilot-models", () => { |
| describe("getDefaultCopilotModelIds", () => { |
| it("includes claude-sonnet-4.6", () => { |
| expect(getDefaultCopilotModelIds()).toContain("claude-sonnet-4.6"); |
| }); |
|
|
| it("includes claude-sonnet-4.5", () => { |
| expect(getDefaultCopilotModelIds()).toContain("claude-sonnet-4.5"); |
| }); |
|
|
| it("returns a mutable copy", () => { |
| const a = getDefaultCopilotModelIds(); |
| const b = getDefaultCopilotModelIds(); |
| expect(a).not.toBe(b); |
| expect(a).toEqual(b); |
| }); |
| }); |
|
|
| describe("buildCopilotModelDefinition", () => { |
| it("builds a valid definition for claude-sonnet-4.6", () => { |
| const def = buildCopilotModelDefinition("claude-sonnet-4.6"); |
| expect(def.id).toBe("claude-sonnet-4.6"); |
| expect(def.api).toBe("openai-responses"); |
| }); |
|
|
| it("trims whitespace from model id", () => { |
| const def = buildCopilotModelDefinition(" gpt-4o "); |
| expect(def.id).toBe("gpt-4o"); |
| }); |
|
|
| it("throws on empty model id", () => { |
| expect(() => buildCopilotModelDefinition("")).toThrow("Model id required"); |
| expect(() => buildCopilotModelDefinition(" ")).toThrow("Model id required"); |
| }); |
| }); |
| }); |
|
|