43 lines
1.4 KiB
TypeScript
43 lines
1.4 KiB
TypeScript
import { describe, expect, test } from "vitest";
|
|
import { stripEnvelopeFromMessage } from "./chat-sanitize.js";
|
|
|
|
describe("stripEnvelopeFromMessage", () => {
|
|
test("removes message_id hint lines from user messages", () => {
|
|
const input = {
|
|
role: "user",
|
|
content: "[WhatsApp 2026-01-24 13:36] yolo\n[message_id: 7b8b]",
|
|
};
|
|
const result = stripEnvelopeFromMessage(input) as { content?: string };
|
|
expect(result.content).toBe("yolo");
|
|
});
|
|
|
|
test("removes message_id hint lines from text content arrays", () => {
|
|
const input = {
|
|
role: "user",
|
|
content: [{ type: "text", text: "hi\n[message_id: abc123]" }],
|
|
};
|
|
const result = stripEnvelopeFromMessage(input) as {
|
|
content?: Array<{ type: string; text?: string }>;
|
|
};
|
|
expect(result.content?.[0]?.text).toBe("hi");
|
|
});
|
|
|
|
test("does not strip inline message_id text that is part of a line", () => {
|
|
const input = {
|
|
role: "user",
|
|
content: "I typed [message_id: 123] on purpose",
|
|
};
|
|
const result = stripEnvelopeFromMessage(input) as { content?: string };
|
|
expect(result.content).toBe("I typed [message_id: 123] on purpose");
|
|
});
|
|
|
|
test("does not strip assistant messages", () => {
|
|
const input = {
|
|
role: "assistant",
|
|
content: "note\n[message_id: 123]",
|
|
};
|
|
const result = stripEnvelopeFromMessage(input) as { content?: string };
|
|
expect(result.content).toBe("note\n[message_id: 123]");
|
|
});
|
|
});
|