NODEDC_1C/llm_normalizer/backend/tests/answerComposerFormatting.te...

61 lines
2.3 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { describe, expect, it } from "vitest";
import { sanitizeAssistantReplyForUserFacing } from "../src/services/answerComposer";
describe("answer composer user-facing formatting", () => {
it("keeps intentional blank lines between semantic blocks", () => {
const source = [
"Блок 1. Статус результата",
"- Дата среза: 31.07.2020.",
"",
"Блок 2. Что учтено",
"- Контур: дебиторка 62/76.",
"",
"Блок 3. Сводка",
"- Строк: 24."
].join("\n");
const sanitized = sanitizeAssistantReplyForUserFacing(source);
expect(sanitized).toContain("Блок 1. Статус результата");
expect(sanitized).toContain("\n\nБлок 2. Что учтено\n");
expect(sanitized).toContain("\n\nБлок 3. Сводка\n");
});
it("removes debug payload and still preserves block separators", () => {
const source = [
"Итого подтвержденная дебиторка: 1.000,00 ₽.",
"",
"Блок 1. Статус результата",
"- Exact route.",
"",
"Блок 2. Что учтено",
"- Дата среза: 31.07.2020.",
"",
"### technical_debug_payload_json",
"```json",
"{\"trace_id\":\"t-1\"}",
"```"
].join("\n");
const sanitized = sanitizeAssistantReplyForUserFacing(source);
expect(sanitized).toContain("Блок 1. Статус результата");
expect(sanitized).toContain("\n\nБлок 2. Что учтено\n");
expect(sanitized).not.toContain("technical_debug_payload_json");
expect(sanitized).not.toContain("trace_id");
});
it("keeps short uppercase Cyrillic counterparty acronyms in user-facing text", () => {
const source = [
"Контрагент: Группа СВК. Найдено документов: 2.",
"1. 2021-11-10 | Поступление на расчетный счет.",
"2. 2021-09-29 | Поступление на расчетный счет."
].join("\n");
const sanitized = sanitizeAssistantReplyForUserFacing(source);
expect(sanitized).toContain("Группа СВК");
expect(sanitized).toContain("Найдено документов: 2.");
});
});