refactor(thinking-tests): share assistant drop helper
This commit is contained in:
parent
68f3e537d3
commit
0956de7316
@ -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: "" }]);
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user