diff --git a/extensions/memory-core/src/memory/qmd-manager.test.ts b/extensions/memory-core/src/memory/qmd-manager.test.ts index 000de83e23b..6085edd1c4c 100644 --- a/extensions/memory-core/src/memory/qmd-manager.test.ts +++ b/extensions/memory-core/src/memory/qmd-manager.test.ts @@ -25,6 +25,7 @@ const { withFileLockMock } = vi.hoisted(() => ({ async (_filePath: string, _options: unknown, fn: () => Promise) => await fn(), ), })); +const MEMORY_EMBEDDING_PROVIDERS_KEY = Symbol.for("openclaw.memoryEmbeddingProviders"); const MCPORTER_STATE_KEY = Symbol.for("openclaw.mcporterState"); const QMD_EMBED_QUEUE_KEY = Symbol.for("openclaw.qmdEmbedQueueTail"); @@ -146,6 +147,22 @@ describe("QmdMemoryManager", () => { const openManagers = new Set(); let embedStartupJitterSpy: ReturnType | null = null; + function seedMemoryEmbeddingProviders(): void { + (globalThis as Record)[MEMORY_EMBEDDING_PROVIDERS_KEY] = new Map([ + [ + "openai", + { + adapter: { + id: "openai", + defaultModel: "text-embedding-3-small", + transport: "remote", + create: async () => ({ provider: null }), + }, + }, + ], + ]); + } + function trackManager(manager: T): T { if (manager) { openManagers.add(manager); @@ -220,6 +237,7 @@ describe("QmdMemoryManager", () => { }, }, } as OpenClawConfig; + seedMemoryEmbeddingProviders(); embedStartupJitterSpy = vi .spyOn( QmdMemoryManager.prototype as unknown as { @@ -259,6 +277,7 @@ describe("QmdMemoryManager", () => { } delete (globalThis as Record)[MCPORTER_STATE_KEY]; delete (globalThis as Record)[QMD_EMBED_QUEUE_KEY]; + delete (globalThis as Record)[MEMORY_EMBEDDING_PROVIDERS_KEY]; }); it("debounces back-to-back sync calls", async () => {