mirror of
https://github.com/langgenius/dify.git
synced 2026-09-03 06:45:14 +08:00
Import the committed KnowledgeFS snapshot dc4072ee302317145612087ce7440851dc329fd0 under knowledge-fs/ without its Git history, local IDE settings, or build artifacts.
48 lines
1.4 KiB
TypeScript
48 lines
1.4 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { createRetrievalPreview } from "./retrieval-preview";
|
|
|
|
describe("createRetrievalPreview", () => {
|
|
it("summarizes streamed answer events into bounded UI state", () => {
|
|
const preview = createRetrievalPreview({
|
|
events: [
|
|
{ data: { delta: "The roadmap " }, event: "answer.delta" },
|
|
{ data: { delta: "changed." }, event: "answer.delta" },
|
|
{
|
|
data: {
|
|
finishReason: "stop",
|
|
metadata: {
|
|
citations: [
|
|
{ label: "roadmap.md#L4", nodeId: "node-1" },
|
|
{ label: "release.md#L9", nodeId: "node-2" },
|
|
],
|
|
confidence: 0.82,
|
|
freshness: "Updated today",
|
|
},
|
|
},
|
|
event: "answer.done",
|
|
},
|
|
],
|
|
maxAnswerChars: 64,
|
|
maxCitations: 1,
|
|
});
|
|
|
|
expect(preview).toEqual({
|
|
answer: "The roadmap changed.",
|
|
citations: [{ label: "roadmap.md#L4", nodeId: "node-1" }],
|
|
confidenceLabel: "82%",
|
|
freshness: "Updated today",
|
|
status: "complete",
|
|
});
|
|
});
|
|
|
|
it("rejects unbounded preview inputs before retaining oversized answers", () => {
|
|
expect(() =>
|
|
createRetrievalPreview({
|
|
events: [{ data: { delta: "x".repeat(11) }, event: "answer.delta" }],
|
|
maxAnswerChars: 10,
|
|
}),
|
|
).toThrow("Retrieval preview answer exceeds maxAnswerChars=10");
|
|
});
|
|
});
|