Menu
popagent
publicLatest change d5a81ac70da6d50a1569e53ed1ca90ed4e9f707d - Support local Qwen chat streams by AkurAI Build
import { describe, expect, test } from "bun:test";
import { agentRuntimeSettings } from "./agent-runtime-settings";
import { listModelCatalog, normalizeChatRequest, resolveModel } from "./models";
describe("resolveModel", () => {
test("requires an explicit model id", () => {
expect(resolveModel("test/model").modelId).toBe("test/model");
});
test("resolves an explicit model id", () => {
expect(resolveModel("cc/claude-sonnet-5").modelId).toBe("cc/claude-sonnet-5");
});
});
describe("normalizeChatRequest", () => {
test("merges leading system messages for the local Qwen chat template", () => {
const body = {
model: "titan/qwen3.5-4b",
messages: [
{ role: "system", content: "Agent instructions" },
{ role: "system", content: "Workspace instructions" },
{ role: "user", content: "hi" },
],
};
expect(normalizeChatRequest(body)).toEqual({
model: "titan/qwen3.5-4b",
messages: [
{ role: "system", content: "Agent instructions\n\nWorkspace instructions" },
{ role: "user", content: "hi" },
],
});
});
test("preserves multi-system requests for compatible models", () => {
const body = { model: "cx/gpt-5.6-sol", messages: [
{ role: "system", content: "One" },
{ role: "system", content: "Two" },
] };
expect(normalizeChatRequest(body)).toBe(body);
});
});
describe("listModelCatalog", () => {
test("returns context windows for the configured default model", async () => {
const configured = await agentRuntimeSettings.get();
const catalog = await listModelCatalog();
expect(catalog.models).toContain(configured.defaultModel);
expect(catalog.contextWindows[configured.defaultModel]).toBeGreaterThan(0);
});
});