Files
openclaw/extensions/memory-wiki/index.test.ts
2026-04-06 05:19:51 +01:00

59 lines
1.6 KiB
TypeScript

import { describe, expect, it } from "vitest";
import plugin from "./index.js";
import { createMemoryWikiTestHarness } from "./src/test-helpers.js";
const { createPluginApi } = createMemoryWikiTestHarness();
describe("memory-wiki plugin", () => {
it("registers prompt supplement, gateway methods, tools, and wiki cli surface", async () => {
const {
api,
registerCli,
registerGatewayMethod,
registerMemoryCorpusSupplement,
registerMemoryPromptSupplement,
registerTool,
} = createPluginApi();
await plugin.register(api);
expect(registerMemoryCorpusSupplement).toHaveBeenCalledTimes(1);
expect(registerMemoryPromptSupplement).toHaveBeenCalledTimes(1);
expect(registerGatewayMethod.mock.calls.map((call) => call[0])).toEqual([
"wiki.status",
"wiki.init",
"wiki.doctor",
"wiki.compile",
"wiki.ingest",
"wiki.lint",
"wiki.bridge.import",
"wiki.unsafeLocal.import",
"wiki.search",
"wiki.apply",
"wiki.get",
"wiki.obsidian.status",
"wiki.obsidian.search",
"wiki.obsidian.open",
"wiki.obsidian.command",
"wiki.obsidian.daily",
]);
expect(registerTool).toHaveBeenCalledTimes(5);
expect(registerTool.mock.calls.map((call) => call[1]?.name)).toEqual([
"wiki_status",
"wiki_lint",
"wiki_apply",
"wiki_search",
"wiki_get",
]);
expect(registerCli).toHaveBeenCalledTimes(1);
expect(registerCli.mock.calls[0]?.[1]).toMatchObject({
descriptors: [
expect.objectContaining({
name: "wiki",
hasSubcommands: true,
}),
],
});
});
});