52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { buildSessionConnectionUpdate } from "./chat-session";
|
|
|
|
describe("buildSessionConnectionUpdate", () => {
|
|
it("does not clear reasoning settings when config omits reasoning fields", () => {
|
|
const update = buildSessionConnectionUpdate({
|
|
provider: "cline",
|
|
model: "anthropic/claude-sonnet-4.6",
|
|
});
|
|
|
|
expect(update).toEqual({
|
|
providerId: "cline",
|
|
modelId: "anthropic/claude-sonnet-4.6",
|
|
});
|
|
expect(Object.hasOwn(update, "thinking")).toBe(false);
|
|
expect(Object.hasOwn(update, "reasoningEffort")).toBe(false);
|
|
expect(Object.hasOwn(update, "thinkingBudgetTokens")).toBe(false);
|
|
});
|
|
|
|
it("clears reasoning settings when thinking is explicitly disabled", () => {
|
|
expect(
|
|
buildSessionConnectionUpdate({
|
|
provider: "cline",
|
|
model: "anthropic/claude-sonnet-4.6",
|
|
thinking: false,
|
|
}),
|
|
).toEqual({
|
|
providerId: "cline",
|
|
modelId: "anthropic/claude-sonnet-4.6",
|
|
thinking: false,
|
|
reasoningEffort: null,
|
|
thinkingBudgetTokens: null,
|
|
});
|
|
});
|
|
|
|
it("updates explicit reasoning settings without clearing omitted settings", () => {
|
|
const update = buildSessionConnectionUpdate({
|
|
provider: "cline",
|
|
model: "anthropic/claude-sonnet-4.6",
|
|
reasoningEffort: "high",
|
|
});
|
|
|
|
expect(update).toEqual({
|
|
providerId: "cline",
|
|
modelId: "anthropic/claude-sonnet-4.6",
|
|
thinking: true,
|
|
reasoningEffort: "high",
|
|
});
|
|
expect(Object.hasOwn(update, "thinkingBudgetTokens")).toBe(false);
|
|
});
|
|
});
|