import { describe, expect, it } from "vitest"; import { replaceManagedMarkdownBlock, withTrailingNewline } from "./memory-host-markdown.js"; describe("withTrailingNewline", () => { it("preserves trailing newlines", () => { expect(withTrailingNewline("hello\n")).toBe("hello\n"); }); it("adds a trailing newline when missing", () => { expect(withTrailingNewline("hello")).toBe("hello\n"); }); }); describe("replaceManagedMarkdownBlock", () => { it("appends a managed block when missing", () => { expect( replaceManagedMarkdownBlock({ original: "# Title\n", heading: "## Generated", startMarker: "", endMarker: "", body: "- first", }), ).toBe("# Title\n\n## Generated\n\n- first\n\n"); }); it("replaces an existing managed block in place", () => { expect( replaceManagedMarkdownBlock({ original: "# Title\n\n## Generated\n\n- old\n\n\n## Notes\nkept\n", heading: "## Generated", startMarker: "", endMarker: "", body: "- new", }), ).toBe("# Title\n\n## Generated\n\n- new\n\n\n## Notes\nkept\n"); }); it("supports headingless blocks", () => { expect( replaceManagedMarkdownBlock({ original: "alpha\n", startMarker: "", endMarker: "", body: "beta", }), ).toBe("alpha\n\n\nbeta\n\n"); }); });