test(memory-core): add buildPromptSection unit tests

This commit is contained in:
Jari Mustonen 2026-03-18 11:22:35 +02:00 committed by Josh Lehman
parent f9744da64d
commit 6f8f78c652
No known key found for this signature in database
GPG Key ID: D141B425AC7F876B
2 changed files with 36 additions and 1 deletions

View File

@ -0,0 +1,32 @@
import { describe, expect, it } from "vitest";
import { buildPromptSection } from "./index.js";
describe("buildPromptSection", () => {
it("returns empty when no memory tools are available", () => {
expect(buildPromptSection({ availableTools: new Set() })).toEqual([]);
});
it("returns Memory Recall section when memory_search is available", () => {
const result = buildPromptSection({ availableTools: new Set(["memory_search"]) });
expect(result[0]).toBe("## Memory Recall");
expect(result).toContain(
"Citations: include Source: <path#line> when it helps the user verify memory snippets.",
);
expect(result.at(-1)).toBe("");
});
it("returns Memory Recall section when memory_get is available", () => {
const result = buildPromptSection({ availableTools: new Set(["memory_get"]) });
expect(result[0]).toBe("## Memory Recall");
});
it("includes citations-off instruction when citationsMode is off", () => {
const result = buildPromptSection({
availableTools: new Set(["memory_search"]),
citationsMode: "off",
});
expect(result).toContain(
"Citations are disabled: do not mention file paths or line numbers in replies unless the user explicitly asks.",
);
});
});

View File

@ -1,7 +1,10 @@
import { definePluginEntry } from "openclaw/plugin-sdk/core";
import type { MemoryPromptSectionBuilder } from "openclaw/plugin-sdk/memory-core";
const buildPromptSection: MemoryPromptSectionBuilder = ({ availableTools, citationsMode }) => {
export const buildPromptSection: MemoryPromptSectionBuilder = ({
availableTools,
citationsMode,
}) => {
if (!availableTools.has("memory_search") && !availableTools.has("memory_get")) {
return [];
}