



























@@ -1,12 +1,25 @@
11import type { MemoryEmbeddingProviderAdapter } from "openclaw/plugin-sdk/memory-core-host-engine-embeddings";
2-import { afterEach, beforeEach, describe, expect, it } from "vitest";
2+import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
33import type { OpenClawConfig } from "../../../../src/config/types.openclaw.js";
4-import {
5-clearMemoryEmbeddingProviders,
6-registerMemoryEmbeddingProvider,
7-} from "../../../../src/plugins/memory-embedding-providers.js";
84import { createEmbeddingProvider } from "./embeddings.js";
956+const mockEmbeddingRegistry = vi.hoisted(() => ({
7+adapters: [] as MemoryEmbeddingProviderAdapter[],
8+}));
9+10+vi.mock("openclaw/plugin-sdk/memory-core-host-engine-embeddings", () => ({
11+DEFAULT_LOCAL_MODEL: "nomic-embed-text",
12+createLocalEmbeddingProvider: async () => {
13+throw new Error("local embedding provider is not used by these tests");
14+},
15+getMemoryEmbeddingProvider: (id: string) =>
16+mockEmbeddingRegistry.adapters.find((adapter) => adapter.id === id),
17+listMemoryEmbeddingProviders: () => [...mockEmbeddingRegistry.adapters],
18+listRegisteredMemoryEmbeddingProviderAdapters: () => [...mockEmbeddingRegistry.adapters],
19+listRegisteredMemoryEmbeddingProviders: () =>
20+mockEmbeddingRegistry.adapters.map((adapter) => ({ adapter })),
21+}));
22+1023const missingBedrockCredentialsError = new Error(
1124'No API key found for provider "bedrock". AWS credentials are not available.',
1225);
@@ -52,6 +65,17 @@ function createMissingCredentialsAdapter(
5265};
5366}
546768+function clearMemoryEmbeddingProviders(): void {
69+mockEmbeddingRegistry.adapters = [];
70+}
71+72+function registerMemoryEmbeddingProvider(adapter: MemoryEmbeddingProviderAdapter): void {
73+mockEmbeddingRegistry.adapters = mockEmbeddingRegistry.adapters.filter(
74+(candidate) => candidate.id !== adapter.id,
75+);
76+mockEmbeddingRegistry.adapters.push(adapter);
77+}
78+5579describe("createEmbeddingProvider", () => {
5680beforeEach(() => {
5781clearMemoryEmbeddingProviders();
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。