diff --git a/test/textsplitters/html_text_splitter.test.ts b/test/textsplitters/html_text_splitter.test.ts index 1dab8b8..b5e74ed 100644 --- a/test/textsplitters/html_text_splitter.test.ts +++ b/test/textsplitters/html_text_splitter.test.ts @@ -223,6 +223,45 @@ describe("HTMLTextSplitter", () => { }); }); + test("prepends chunkHeader in splitDocuments output", async () => { + const splitter = new HTMLTextSplitter({ + chunkSize: 18, + separators: ["h2"], + }); + + const documents = await splitter.splitDocuments( + [ + new Document({ + pageContent: + "

Intro text

Section Title

Body text

", + metadata: { source: "sample.html" }, + }), + ], + { + chunkHeader: "Header: ", + }, + ); + + expect(documents).toHaveLength(2); + expect(documents[0].pageContent).toBe("Header: Intro text"); + expect(documents[1].pageContent).toBe("Header: Section Title Body text"); + }); + + test("returns no documents when source content produces no chunks", async () => { + const splitter = new HTMLTextSplitter({ + chunkSize: 18, + }); + + const documents = await splitter.splitDocuments([ + new Document({ + pageContent: "
", + metadata: { source: "empty.html" }, + }), + ]); + + expect(documents).toEqual([]); + }); + test("resets part metadata per input document", async () => { const splitter = new HTMLTextSplitter({ chunkSize: 18,