diff --git a/src/media-understanding/provider-registry.test.ts b/src/media-understanding/provider-registry.test.ts index 4a920d3660f..167dc32d08f 100644 --- a/src/media-understanding/provider-registry.test.ts +++ b/src/media-understanding/provider-registry.test.ts @@ -18,6 +18,18 @@ function createMediaProvider( return params; } +function requireMediaProvider( + registry: Map, + 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,