mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-13 18:21:27 +00:00
56 lines
1.8 KiB
TypeScript
56 lines
1.8 KiB
TypeScript
import fs from "node:fs/promises";
|
|
import path from "node:path";
|
|
import { describe, expect, it } from "vitest";
|
|
import {
|
|
appendMemoryHostEvent,
|
|
readMemoryHostEvents,
|
|
resolveMemoryHostEventLogPath,
|
|
} from "./memory-host-events.js";
|
|
import { createPluginSdkTestHarness } from "./test-helpers.js";
|
|
|
|
const { createTempDir } = createPluginSdkTestHarness();
|
|
|
|
describe("memory host event journal helpers", () => {
|
|
it("appends and reads typed workspace events", async () => {
|
|
const workspaceDir = await createTempDir("memory-host-events-");
|
|
|
|
await appendMemoryHostEvent(workspaceDir, {
|
|
type: "memory.recall.recorded",
|
|
timestamp: "2026-04-05T12:00:00.000Z",
|
|
query: "glacier backup",
|
|
resultCount: 1,
|
|
results: [
|
|
{
|
|
path: "memory/2026-04-05.md",
|
|
startLine: 1,
|
|
endLine: 3,
|
|
score: 0.9,
|
|
},
|
|
],
|
|
});
|
|
await appendMemoryHostEvent(workspaceDir, {
|
|
type: "memory.dream.completed",
|
|
timestamp: "2026-04-05T13:00:00.000Z",
|
|
phase: "light",
|
|
lineCount: 4,
|
|
storageMode: "both",
|
|
inlinePath: path.join(workspaceDir, "memory", "2026-04-05.md"),
|
|
reportPath: path.join(workspaceDir, "memory", "dreaming", "light", "2026-04-05.md"),
|
|
});
|
|
|
|
const eventLogPath = resolveMemoryHostEventLogPath(workspaceDir);
|
|
await expect(fs.readFile(eventLogPath, "utf8")).resolves.toContain(
|
|
'"type":"memory.recall.recorded"',
|
|
);
|
|
|
|
const events = await readMemoryHostEvents({ workspaceDir });
|
|
const tail = await readMemoryHostEvents({ workspaceDir, limit: 1 });
|
|
|
|
expect(events).toHaveLength(2);
|
|
expect(events[0]?.type).toBe("memory.recall.recorded");
|
|
expect(events[1]?.type).toBe("memory.dream.completed");
|
|
expect(tail).toHaveLength(1);
|
|
expect(tail[0]?.type).toBe("memory.dream.completed");
|
|
});
|
|
});
|