From a35ca6f40de73e93372ade6f2d74c231389799e2 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 20 Apr 2026 00:02:07 +0300 Subject: Fix task 25: keep comic generation single-language and single-style --- internal/image/gemini.go | 2 +- internal/image/gemini_test.go | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) (limited to 'internal/image') diff --git a/internal/image/gemini.go b/internal/image/gemini.go index 85da3a8..15373e2 100644 --- a/internal/image/gemini.go +++ b/internal/image/gemini.go @@ -185,7 +185,7 @@ func (c *GeminiProvider) GenerateImage(ctx context.Context, prompt, outputFile s if strings.TrimSpace(outputFile) == "" { return fmt.Errorf("output file is required") } - results, err := c.Search(ctx, &SearchOptions{Query: prompt}) + results, err := c.Search(ctx, &SearchOptions{CustomPrompt: prompt}) if err != nil { return err } diff --git a/internal/image/gemini_test.go b/internal/image/gemini_test.go index bb3affe..bbc9dcd 100644 --- a/internal/image/gemini_test.go +++ b/internal/image/gemini_test.go @@ -107,6 +107,34 @@ func TestGeminiProvider_Search_CustomPromptSkipsTextGeneration(t *testing.T) { } } +func TestGeminiProvider_GenerateImage_UsesCustomPrompt(t *testing.T) { + originalText := geminiGenerateText + originalImage := geminiGenerateImage + t.Cleanup(func() { + geminiGenerateText = originalText + geminiGenerateImage = originalImage + }) + + geminiGenerateText = func(context.Context, *GeminiProvider, string, string, string, float32, int32) (string, error) { + t.Fatal("unexpected text generation for comic prompt") + return "", nil + } + + var gotPrompt string + geminiGenerateImage = func(_ context.Context, _ *GeminiProvider, prompt, _ string) ([]byte, string, error) { + gotPrompt = prompt + return mustJPEGBytes(t), "image/jpeg", nil + } + + client := NewGeminiProvider(&GeminiConfig{APIKey: "test-key"}) + if err := client.GenerateImage(context.Background(), "Art style: comic. FULL-BLEED SINGLE ILLUSTRATION.", t.TempDir()+"/out.png"); err != nil { + t.Fatalf("GenerateImage() unexpected error: %v", err) + } + if gotPrompt != "Art style: comic. FULL-BLEED SINGLE ILLUSTRATION." { + t.Fatalf("GenerateImage() prompt = %q, want custom prompt", gotPrompt) + } +} + func TestGeminiProvider_Search_GeneratedPromptFlow(t *testing.T) { originalText := geminiGenerateText originalImage := geminiGenerateImage -- cgit v1.2.3