mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-13 18:21:27 +00:00
51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
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: "<!-- start -->",
|
|
endMarker: "<!-- end -->",
|
|
body: "- first",
|
|
}),
|
|
).toBe("# Title\n\n## Generated\n<!-- start -->\n- first\n<!-- end -->\n");
|
|
});
|
|
|
|
it("replaces an existing managed block in place", () => {
|
|
expect(
|
|
replaceManagedMarkdownBlock({
|
|
original:
|
|
"# Title\n\n## Generated\n<!-- start -->\n- old\n<!-- end -->\n\n## Notes\nkept\n",
|
|
heading: "## Generated",
|
|
startMarker: "<!-- start -->",
|
|
endMarker: "<!-- end -->",
|
|
body: "- new",
|
|
}),
|
|
).toBe("# Title\n\n## Generated\n<!-- start -->\n- new\n<!-- end -->\n\n## Notes\nkept\n");
|
|
});
|
|
|
|
it("supports headingless blocks", () => {
|
|
expect(
|
|
replaceManagedMarkdownBlock({
|
|
original: "alpha\n",
|
|
startMarker: "<!-- start -->",
|
|
endMarker: "<!-- end -->",
|
|
body: "beta",
|
|
}),
|
|
).toBe("alpha\n\n<!-- start -->\nbeta\n<!-- end -->\n");
|
|
});
|
|
});
|