refactor(thinking-tests): share assistant drop helper

This commit is contained in:
Peter Steinberger 2026-03-17 07:37:36 +00:00
parent 68f3e537d3
commit 0956de7316

View File

@ -3,6 +3,22 @@ import { describe, expect, it } from "vitest";
import { castAgentMessage } from "../test-helpers/agent-message-fixtures.js";
import { dropThinkingBlocks, isAssistantMessageWithContent } from "./thinking.js";
function dropSingleAssistantContent(content: Array<Record<string, unknown>>) {
const messages: AgentMessage[] = [
castAgentMessage({
role: "assistant",
content,
}),
];
const result = dropThinkingBlocks(messages);
return {
assistant: result[0] as Extract<AgentMessage, { role: "assistant" }>,
messages,
result,
};
}
describe("isAssistantMessageWithContent", () => {
it("accepts assistant messages with array content and rejects others", () => {
const assistant = castAgentMessage({
@ -30,32 +46,18 @@ describe("dropThinkingBlocks", () => {
});
it("drops thinking blocks while preserving non-thinking assistant content", () => {
const messages: AgentMessage[] = [
castAgentMessage({
role: "assistant",
content: [
{ type: "thinking", thinking: "internal" },
{ type: "text", text: "final" },
],
}),
];
const result = dropThinkingBlocks(messages);
const assistant = result[0] as Extract<AgentMessage, { role: "assistant" }>;
const { assistant, messages, result } = dropSingleAssistantContent([
{ type: "thinking", thinking: "internal" },
{ type: "text", text: "final" },
]);
expect(result).not.toBe(messages);
expect(assistant.content).toEqual([{ type: "text", text: "final" }]);
});
it("keeps assistant turn structure when all content blocks were thinking", () => {
const messages: AgentMessage[] = [
castAgentMessage({
role: "assistant",
content: [{ type: "thinking", thinking: "internal-only" }],
}),
];
const result = dropThinkingBlocks(messages);
const assistant = result[0] as Extract<AgentMessage, { role: "assistant" }>;
const { assistant } = dropSingleAssistantContent([
{ type: "thinking", thinking: "internal-only" },
]);
expect(assistant.content).toEqual([{ type: "text", text: "" }]);
});
});