test: tighten media provider registry assertions

This commit is contained in:
Shakker
2026-05-08 19:34:09 +01:00
parent ffb1cc97cb
commit 64862c7ff5

View File

@@ -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,