37 lines
1.4 KiB
TypeScript
37 lines
1.4 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
||
import { __evalRouteTestUtils } from "../src/routes/eval";
|
||
|
||
describe("eval runtime question splitting", () => {
|
||
it("merges short conversational tails into previous question", () => {
|
||
const parsed = __evalRouteTestUtils.splitQuestionCandidate(
|
||
"Покажи контрагентов с риском несверки по акту? и коротко? без воды?"
|
||
);
|
||
|
||
expect(parsed).toHaveLength(1);
|
||
expect(parsed[0]).toMatch(/коротко/i);
|
||
expect(parsed[0]).toMatch(/без воды/i);
|
||
});
|
||
|
||
it("keeps independent full questions as separate items", () => {
|
||
const parsed = __evalRouteTestUtils.splitQuestionCandidate(
|
||
"Где зависли оплаты по счету 60? Какие документы не закрылись по 62 за июль 2020?"
|
||
);
|
||
|
||
expect(parsed).toHaveLength(2);
|
||
expect(parsed[0]).toMatch(/\?/);
|
||
expect(parsed[1]).toMatch(/\?/);
|
||
});
|
||
|
||
it("normalizes list input and removes placeholders and duplicates", () => {
|
||
const parsed = __evalRouteTestUtils.normalizeRuntimeQuestions([
|
||
"Вопросы",
|
||
"Покажи хвосты по поставщикам",
|
||
"и коротко?"
|
||
]);
|
||
|
||
expect(parsed).toHaveLength(1);
|
||
expect(parsed[0]).toMatch(/поставщик/i);
|
||
expect(parsed[0]).toMatch(/коротко/i);
|
||
});
|
||
});
|