diff --git a/extensions/qa-lab/src/providers/image-generation.test.ts b/extensions/qa-lab/src/providers/image-generation.test.ts index a775e26713a..6077021d376 100644 --- a/extensions/qa-lab/src/providers/image-generation.test.ts +++ b/extensions/qa-lab/src/providers/image-generation.test.ts @@ -2,16 +2,18 @@ import { describe, expect, it } from "vitest"; import { buildQaImageGenerationConfigPatch } from "./image-generation.js"; describe("QA provider image generation config", () => { - it("uses the selected mock provider for mock-openai image generation", () => { + it("uses the OpenAI image provider against the selected mock-openai endpoint", () => { const patch = buildQaImageGenerationConfigPatch({ providerMode: "mock-openai", providerBaseUrl: "http://127.0.0.1:44080/v1", requiredPluginIds: ["qa-channel"], }); - expect(patch.plugins.allow).toEqual(["acpx", "memory-core", "qa-channel"]); - expect(patch.agents.defaults.imageGenerationModel.primary).toBe("mock-openai/gpt-image-1"); + expect(patch.plugins.allow).toEqual(["acpx", "memory-core", "openai", "qa-channel"]); + expect(patch.plugins.entries?.openai).toEqual({ enabled: true }); + expect(patch.agents.defaults.imageGenerationModel.primary).toBe("openai/gpt-image-1"); expect(patch.models?.providers["mock-openai"]?.baseUrl).toBe("http://127.0.0.1:44080/v1"); + expect(patch.models?.providers.openai?.baseUrl).toBe("http://127.0.0.1:44080/v1"); }); it("preserves already-allowed plugins when configuring image generation", () => { diff --git a/extensions/qa-lab/src/providers/image-generation.ts b/extensions/qa-lab/src/providers/image-generation.ts index 5606db95e07..acbe2d7343e 100644 --- a/extensions/qa-lab/src/providers/image-generation.ts +++ b/extensions/qa-lab/src/providers/image-generation.ts @@ -22,9 +22,12 @@ function uniqueNonEmpty(values: readonly (string | null | undefined)[]) { export function buildQaImageGenerationConfigPatch(input: QaImageGenerationPatchInput) { const provider = getQaProvider(input.providerMode); - const imageModelRef = provider.defaultImageGenerationModel({ - modelProviderIds: provider.defaultImageGenerationProviderIds, - }); + const usesOpenAiMockImageProvider = input.providerMode === "mock-openai"; + const imageModelRef = usesOpenAiMockImageProvider + ? "openai/gpt-image-1" + : provider.defaultImageGenerationModel({ + modelProviderIds: provider.defaultImageGenerationProviderIds, + }); if (!imageModelRef) { throw new Error( `QA provider "${input.providerMode}" does not expose an image generation model`, @@ -42,7 +45,8 @@ export function buildQaImageGenerationConfigPatch(input: QaImageGenerationPatchI providerBaseUrl: input.providerBaseUrl, }); })(); - const providerPluginIds = provider.usesModelProviderPlugins ? [imageProviderId] : []; + const providerPluginIds = + provider.usesModelProviderPlugins || usesOpenAiMockImageProvider ? [imageProviderId] : []; const enabledPluginIds = uniqueNonEmpty(providerPluginIds); return {