mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-10 01:10:44 +00:00
test: tighten media provider registry assertions
This commit is contained in:
@@ -18,6 +18,18 @@ function createMediaProvider(
|
||||
return params;
|
||||
}
|
||||
|
||||
function requireMediaProvider(
|
||||
registry: Map<string, MediaUnderstandingProvider>,
|
||||
providerId: string,
|
||||
): MediaUnderstandingProvider {
|
||||
const provider = getMediaUnderstandingProvider(providerId, registry);
|
||||
expect(provider).toBeDefined();
|
||||
if (!provider) {
|
||||
throw new Error(`expected media-understanding provider ${providerId}`);
|
||||
}
|
||||
return provider;
|
||||
}
|
||||
|
||||
describe("media-understanding provider registry", () => {
|
||||
beforeEach(() => {
|
||||
resolvePluginCapabilityProvidersMock.mockReset();
|
||||
@@ -32,8 +44,8 @@ describe("media-understanding provider registry", () => {
|
||||
|
||||
const registry = buildMediaUnderstandingRegistry();
|
||||
|
||||
expect(getMediaUnderstandingProvider("groq", registry)?.id).toBe("groq");
|
||||
expect(getMediaUnderstandingProvider("deepgram", registry)?.id).toBe("deepgram");
|
||||
expect(requireMediaProvider(registry, "groq").id).toBe("groq");
|
||||
expect(requireMediaProvider(registry, "deepgram").id).toBe("deepgram");
|
||||
expect(resolvePluginCapabilityProvidersMock).toHaveBeenCalledWith({
|
||||
key: "mediaUnderstandingProviders",
|
||||
cfg: undefined,
|
||||
@@ -47,7 +59,7 @@ describe("media-understanding provider registry", () => {
|
||||
|
||||
const registry = buildMediaUnderstandingRegistry();
|
||||
|
||||
expect(getMediaUnderstandingProvider("gemini", registry)?.id).toBe("google");
|
||||
expect(requireMediaProvider(registry, "gemini").id).toBe("google");
|
||||
});
|
||||
|
||||
it("auto-registers media-understanding for config providers with image-capable models (#51392)", () => {
|
||||
@@ -96,11 +108,19 @@ describe("media-understanding provider registry", () => {
|
||||
} as never;
|
||||
|
||||
const registry = buildMediaUnderstandingRegistry(undefined, cfg);
|
||||
const provider = getMediaUnderstandingProvider("google", registry);
|
||||
const provider = requireMediaProvider(registry, "google");
|
||||
|
||||
expect(provider?.capabilities).toEqual(["image", "audio", "video"]);
|
||||
expect(await provider?.describeImage?.({} as never)).toEqual({ text: "plugin image" });
|
||||
expect(await provider?.transcribeAudio?.({} as never)).toEqual({ text: "plugin audio" });
|
||||
expect(provider.capabilities).toEqual(["image", "audio", "video"]);
|
||||
expect(provider.describeImage).toBeTypeOf("function");
|
||||
if (!provider.describeImage) {
|
||||
throw new Error("expected google describeImage provider hook");
|
||||
}
|
||||
expect(provider.transcribeAudio).toBeTypeOf("function");
|
||||
if (!provider.transcribeAudio) {
|
||||
throw new Error("expected google transcribeAudio provider hook");
|
||||
}
|
||||
expect(await provider.describeImage({} as never)).toEqual({ text: "plugin image" });
|
||||
expect(await provider.transcribeAudio({} as never)).toEqual({ text: "plugin audio" });
|
||||
expect(resolvePluginCapabilityProvidersMock).toHaveBeenCalledWith({
|
||||
key: "mediaUnderstandingProviders",
|
||||
cfg,
|
||||
|
||||
Reference in New Issue
Block a user