Files
2026-07-13 13:39:12 +08:00

40 lines
1.2 KiB
TypeScript

import test from "node:test";
import assert from "node:assert/strict";
import {
getStripTypesForProviderModel,
stripIncompatibleMessageContent,
} from "../../open-sse/services/modelStrip.ts";
test("stripIncompatibleMessageContent removes image and audio parts but preserves text", () => {
const originalMessages = [
{
role: "user",
content: [
{ type: "text", text: "Summarize this input." },
{ type: "image_url", image_url: { url: "https://example.com/image.png" } },
{ type: "input_audio", input_audio: { data: "abc", format: "wav" } },
],
},
];
const result = stripIncompatibleMessageContent(originalMessages, ["image", "audio"]);
assert.equal(result.removedParts, 2);
assert.deepEqual(result.messages, [
{
role: "user",
content: [{ type: "text", text: "Summarize this input." }],
},
]);
});
test("stripIncompatibleMessageContent leaves non-array content untouched", () => {
const originalMessages = [{ role: "user", content: "hello" }];
const result = stripIncompatibleMessageContent(originalMessages, ["image"]);
assert.equal(result.removedParts, 0);
assert.deepEqual(result.messages, originalMessages);
});