



























@@ -5,9 +5,7 @@ import type {
55MemorySearchConfig,
66OpenClawConfig,
77} from "openclaw/plugin-sdk/memory-core-host-engine-foundation";
8-import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
9-import type { MemoryIndexManager } from "./index.js";
10-import { registerBuiltInMemoryEmbeddingProviders } from "./provider-adapters.js";
8+import { afterAll, afterEach, beforeEach, describe, expect, it, vi } from "vitest";
1191210type WatchIgnoredFn = (watchPath: string, stats?: { isDirectory?: () => boolean }) => boolean;
1311@@ -31,14 +29,17 @@ const { createdWatchers, watchMock } = vi.hoisted(() => {
3129return watcher;
3230}
3331const watchers: Array<ReturnType<typeof createMockWatcher>> = [];
34-return {
32+const result = {
3533createdWatchers: watchers,
3634watchMock: vi.fn(() => {
3735const watcher = createMockWatcher();
3836watchers.push(watcher);
3937return watcher;
4038}),
4139};
40+(globalThis as Record<PropertyKey, unknown>)[Symbol.for("openclaw.test.memoryWatchFactory")] =
41+result.watchMock;
42+return result;
4243});
43444445vi.mock("chokidar", () => ({
@@ -62,35 +63,32 @@ vi.mock("./embeddings.js", () => ({
6263}),
6364}));
646565-type MemoryIndexModule = typeof import("./index.js");
66-type MemoryEmbeddingProvidersModule =
67-typeof import("openclaw/plugin-sdk/memory-core-host-engine-embeddings");
68-69-let getMemorySearchManager: MemoryIndexModule["getMemorySearchManager"];
70-let closeAllMemorySearchManagers: MemoryIndexModule["closeAllMemorySearchManagers"];
71-let clearRegistry: MemoryEmbeddingProvidersModule["clearMemoryEmbeddingProviders"];
72-let registerAdapter: MemoryEmbeddingProvidersModule["registerMemoryEmbeddingProvider"];
66+import {
67+clearMemoryEmbeddingProviders as clearRegistry,
68+registerMemoryEmbeddingProvider as registerAdapter,
69+} from "openclaw/plugin-sdk/memory-core-host-engine-embeddings";
70+import {
71+closeAllMemorySearchManagers,
72+getMemorySearchManager,
73+type MemoryIndexManager,
74+} from "./index.js";
75+import { registerBuiltInMemoryEmbeddingProviders } from "./provider-adapters.js";
73767477describe("memory watcher config", () => {
7578let manager: MemoryIndexManager | null = null;
7679let workspaceDir = "";
7780let extraDir = "";
788179-beforeAll(async () => {
80-vi.resetModules();
81-({ getMemorySearchManager, closeAllMemorySearchManagers } = await import("./index.js"));
82-({
83-clearMemoryEmbeddingProviders: clearRegistry,
84-registerMemoryEmbeddingProvider: registerAdapter,
85-} = await import("openclaw/plugin-sdk/memory-core-host-engine-embeddings"));
86-});
87-8882beforeEach(async () => {
8983vi.clearAllMocks();
9084clearRegistry();
9185registerBuiltInMemoryEmbeddingProviders({ registerMemoryEmbeddingProvider: registerAdapter });
9286});
938788+afterAll(() => {
89+Reflect.deleteProperty(globalThis, Symbol.for("openclaw.test.memoryWatchFactory"));
90+});
91+9492afterEach(async () => {
9593vi.useRealTimers();
9694watchMock.mockClear();
@@ -108,10 +106,6 @@ describe("memory watcher config", () => {
108106}
109107});
110108111-afterAll(() => {
112-vi.resetModules();
113-});
114-115109async function setupWatcherWorkspace(seedFile: { name: string; contents: string }) {
116110workspaceDir = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-memory-watch-"));
117111extraDir = path.join(workspaceDir, "extra");
@@ -134,6 +128,7 @@ describe("memory watcher config", () => {
134128},
135129};
136130return {
131+memory: { backend: "builtin" },
137132agents: {
138133 defaults,
139134list: [{ id: "main", default: true }],
@@ -147,6 +142,8 @@ describe("memory watcher config", () => {
147142if (!result.manager) {
148143throw new Error("manager missing");
149144}
145+expect(result.manager.status().backend).toBe("builtin");
146+expect(result.manager.status().sources).toContain("memory");
150147manager = result.manager as unknown as MemoryIndexManager;
151148}
152149此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。