diff --git a/extensions/memory-lancedb/index.test.ts b/extensions/memory-lancedb/index.test.ts index c0aa2cbf62d..712e87c8f6c 100644 --- a/extensions/memory-lancedb/index.test.ts +++ b/extensions/memory-lancedb/index.test.ts @@ -8,10 +8,7 @@ * - Auto-capture filtering */ -import fs from "node:fs/promises"; -import os from "node:os"; -import path from "node:path"; -import { describe, test, expect, beforeEach, afterEach, vi } from "vitest"; +import { describe, test, expect, vi } from "vitest"; import memoryPlugin, { detectCategory, formatRelevantMemoriesContext, @@ -19,6 +16,7 @@ import memoryPlugin, { shouldCapture, } from "./index.js"; import { createLanceDbRuntimeLoader, type LanceDbRuntimeLogger } from "./lancedb-runtime.js"; +import { installTmpDirHarness } from "./test-helpers.js"; const OPENAI_API_KEY = process.env.OPENAI_API_KEY ?? "test-key"; type MemoryPluginTestConfig = { @@ -51,27 +49,6 @@ type RuntimeManifest = { dependencies: Record; }; -function installTmpDirHarness(params: { prefix: string }) { - let tmpDir = ""; - let dbPath = ""; - - beforeEach(async () => { - tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), params.prefix)); - dbPath = path.join(tmpDir, "lancedb"); - }); - - afterEach(async () => { - if (tmpDir) { - await fs.rm(tmpDir, { recursive: true, force: true }); - } - }); - - return { - getTmpDir: () => tmpDir, - getDbPath: () => dbPath, - }; -} - function createMockModule(): LanceDbModule { return { connect: vi.fn(), diff --git a/extensions/memory-lancedb/memory-lancedb.live.test.ts b/extensions/memory-lancedb/memory-lancedb.live.test.ts index 663a6dd5bcc..dd983ea2c7b 100644 --- a/extensions/memory-lancedb/memory-lancedb.live.test.ts +++ b/extensions/memory-lancedb/memory-lancedb.live.test.ts @@ -1,34 +1,11 @@ -import fs from "node:fs/promises"; -import os from "node:os"; -import path from "node:path"; -import { afterEach, beforeEach, describe, expect, test } from "vitest"; +import { describe, expect, test } from "vitest"; +import { installTmpDirHarness } from "./test-helpers.js"; const OPENAI_API_KEY = process.env.OPENAI_API_KEY ?? ""; const HAS_OPENAI_KEY = Boolean(process.env.OPENAI_API_KEY); const liveEnabled = HAS_OPENAI_KEY && process.env.OPENCLAW_LIVE_TEST === "1"; const describeLive = liveEnabled ? describe : describe.skip; -function installTmpDirHarness(params: { prefix: string }) { - let tmpDir = ""; - let dbPath = ""; - - beforeEach(async () => { - tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), params.prefix)); - dbPath = path.join(tmpDir, "lancedb"); - }); - - afterEach(async () => { - if (tmpDir) { - await fs.rm(tmpDir, { recursive: true, force: true }); - } - }); - - return { - getTmpDir: () => tmpDir, - getDbPath: () => dbPath, - }; -} - // Live tests that require OpenAI API key and actually use LanceDB describeLive("memory plugin live tests", () => { const { getDbPath } = installTmpDirHarness({ prefix: "openclaw-memory-live-" }); diff --git a/extensions/memory-lancedb/test-helpers.ts b/extensions/memory-lancedb/test-helpers.ts new file mode 100644 index 00000000000..aaf5791bf50 --- /dev/null +++ b/extensions/memory-lancedb/test-helpers.ts @@ -0,0 +1,25 @@ +import fs from "node:fs/promises"; +import os from "node:os"; +import path from "node:path"; +import { afterEach, beforeEach } from "vitest"; + +export function installTmpDirHarness(params: { prefix: string }) { + let tmpDir = ""; + let dbPath = ""; + + beforeEach(async () => { + tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), params.prefix)); + dbPath = path.join(tmpDir, "lancedb"); + }); + + afterEach(async () => { + if (tmpDir) { + await fs.rm(tmpDir, { recursive: true, force: true }); + } + }); + + return { + getTmpDir: () => tmpDir, + getDbPath: () => dbPath, + }; +}