test(memory-core): reuse workspace helper in dreaming tests

This commit is contained in:
Vincent Koc
2026-04-06 05:27:17 +01:00
parent 036b35e137
commit 39099b8022

View File

@@ -1,8 +1,7 @@
import fs from "node:fs/promises";
import os from "node:os";
import path from "node:path";
import type { OpenClawConfig } from "openclaw/plugin-sdk/memory-core";
import { afterEach, describe, expect, it, vi } from "vitest";
import { describe, expect, it, vi } from "vitest";
import {
__testing,
reconcileShortTermDreamingCronJob,
@@ -10,8 +9,10 @@ import {
runShortTermDreamingPromotionIfTriggered,
} from "./dreaming.js";
import { recordShortTermRecalls } from "./short-term-promotion.js";
import { createMemoryCoreTestHarness } from "./test-helpers.js";
const constants = __testing.constants;
const { createTempWorkspace } = createMemoryCoreTestHarness();
type CronParam = NonNullable<Parameters<typeof reconcileShortTermDreamingCronJob>[0]["cron"]>;
type CronJobLike = Awaited<ReturnType<CronParam["list"]>>[number];
@@ -621,17 +622,9 @@ describe("short-term dreaming cron reconciliation", () => {
});
describe("short-term dreaming trigger", () => {
const tempDirs: string[] = [];
afterEach(async () => {
await Promise.all(tempDirs.map((dir) => fs.rm(dir, { recursive: true, force: true })));
tempDirs.length = 0;
});
it("applies promotions when the managed dreaming heartbeat event fires", async () => {
const logger = createLogger();
const workspaceDir = await fs.mkdtemp(path.join(os.tmpdir(), "memory-dreaming-"));
tempDirs.push(workspaceDir);
const workspaceDir = await createTempWorkspace("memory-dreaming-");
await writeDailyMemoryNote(workspaceDir, "2026-04-02", ["Move backups to S3 Glacier."]);
await recordShortTermRecalls({
@@ -673,8 +666,7 @@ describe("short-term dreaming trigger", () => {
it("keeps one-off recalls out of long-term memory under default thresholds", async () => {
const logger = createLogger();
const workspaceDir = await fs.mkdtemp(path.join(os.tmpdir(), "memory-dreaming-strict-"));
tempDirs.push(workspaceDir);
const workspaceDir = await createTempWorkspace("memory-dreaming-strict-");
await writeDailyMemoryNote(workspaceDir, "2026-04-03", [
"Move backups to S3 Glacier.",
"Retain quarterly snapshots.",
@@ -747,8 +739,7 @@ describe("short-term dreaming trigger", () => {
it("skips dreaming promotion cleanly when limit is zero", async () => {
const logger = createLogger();
const workspaceDir = await fs.mkdtemp(path.join(os.tmpdir(), "memory-dreaming-limit-zero-"));
tempDirs.push(workspaceDir);
const workspaceDir = await createTempWorkspace("memory-dreaming-limit-zero-");
const result = await runShortTermDreamingPromotionIfTriggered({
cleanedBody: constants.DREAMING_SYSTEM_EVENT_TEXT,
@@ -781,8 +772,7 @@ describe("short-term dreaming trigger", () => {
it("repairs recall artifacts before dreaming promotion runs", async () => {
const logger = createLogger();
const workspaceDir = await fs.mkdtemp(path.join(os.tmpdir(), "memory-dreaming-repair-"));
tempDirs.push(workspaceDir);
const workspaceDir = await createTempWorkspace("memory-dreaming-repair-");
await writeDailyMemoryNote(workspaceDir, "2026-04-03", [
"Move backups to S3 Glacier and sync router failover notes.",
"Keep router recovery docs current.",
@@ -862,8 +852,7 @@ describe("short-term dreaming trigger", () => {
it("emits detailed run logs when verboseLogging is enabled", async () => {
const logger = createLogger();
const workspaceDir = await fs.mkdtemp(path.join(os.tmpdir(), "memory-dreaming-verbose-"));
tempDirs.push(workspaceDir);
const workspaceDir = await createTempWorkspace("memory-dreaming-verbose-");
await writeDailyMemoryNote(workspaceDir, "2026-04-02", ["Move backups to S3 Glacier."]);
await recordShortTermRecalls({
@@ -912,8 +901,7 @@ describe("short-term dreaming trigger", () => {
it("fans out one dreaming run across configured agent workspaces", async () => {
const logger = createLogger();
const workspaceRoot = await fs.mkdtemp(path.join(os.tmpdir(), "memory-dreaming-multi-"));
tempDirs.push(workspaceRoot);
const workspaceRoot = await createTempWorkspace("memory-dreaming-multi-");
const alphaWorkspace = path.join(workspaceRoot, "alpha");
const betaWorkspace = path.join(workspaceRoot, "beta");