65 lines
1.9 KiB
TypeScript
65 lines
1.9 KiB
TypeScript
import { describe, it, expect, beforeEach } from "vitest";
|
|
import {
|
|
registerMemoryPromptSection,
|
|
buildMemoryPromptSection,
|
|
clearMemoryPromptSection,
|
|
_resetMemoryPromptSection,
|
|
} from "./prompt-section.js";
|
|
|
|
describe("memory prompt section registry", () => {
|
|
beforeEach(() => {
|
|
_resetMemoryPromptSection();
|
|
});
|
|
|
|
it("returns empty array when no builder is registered", () => {
|
|
const result = buildMemoryPromptSection({
|
|
availableTools: new Set(["memory_search", "memory_get"]),
|
|
});
|
|
expect(result).toEqual([]);
|
|
});
|
|
|
|
it("delegates to the registered builder", () => {
|
|
registerMemoryPromptSection(({ availableTools }) => {
|
|
if (!availableTools.has("memory_search")) {
|
|
return [];
|
|
}
|
|
return ["## Custom Memory", "Use custom memory tools.", ""];
|
|
});
|
|
|
|
const result = buildMemoryPromptSection({
|
|
availableTools: new Set(["memory_search"]),
|
|
});
|
|
expect(result).toEqual(["## Custom Memory", "Use custom memory tools.", ""]);
|
|
});
|
|
|
|
it("passes citationsMode to the builder", () => {
|
|
registerMemoryPromptSection(({ citationsMode }) => {
|
|
return [`citations: ${citationsMode ?? "default"}`];
|
|
});
|
|
|
|
expect(
|
|
buildMemoryPromptSection({
|
|
availableTools: new Set(),
|
|
citationsMode: "off",
|
|
}),
|
|
).toEqual(["citations: off"]);
|
|
});
|
|
|
|
it("last registration wins", () => {
|
|
registerMemoryPromptSection(() => ["first"]);
|
|
registerMemoryPromptSection(() => ["second"]);
|
|
|
|
const result = buildMemoryPromptSection({ availableTools: new Set() });
|
|
expect(result).toEqual(["second"]);
|
|
});
|
|
|
|
it("clearMemoryPromptSection resets the builder", () => {
|
|
registerMemoryPromptSection(() => ["stale section"]);
|
|
expect(buildMemoryPromptSection({ availableTools: new Set() })).toEqual(["stale section"]);
|
|
|
|
clearMemoryPromptSection();
|
|
|
|
expect(buildMemoryPromptSection({ availableTools: new Set() })).toEqual([]);
|
|
});
|
|
});
|