From 18ef01f2133b0208348c15a0227c04cbb8c5748a Mon Sep 17 00:00:00 2001 From: Jan Svabenik Date: Fri, 27 Mar 2026 08:06:25 +0100 Subject: [PATCH] test: cover llm runtime provider errors --- internal/llmruntime/runtime_test.go | 61 +++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 internal/llmruntime/runtime_test.go diff --git a/internal/llmruntime/runtime_test.go b/internal/llmruntime/runtime_test.go new file mode 100644 index 0000000..736f852 --- /dev/null +++ b/internal/llmruntime/runtime_test.go @@ -0,0 +1,61 @@ +package llmruntime + +import ( + "context" + "encoding/json" + "net/http" + "net/http/httptest" + "strings" + "testing" + "time" +) + +func TestOpenAICompatibleClient_ForwardsTemperatureAndMaxTokens(t *testing.T) { + t.Parallel() + + var got struct { + Temperature float64 `json:"temperature"` + MaxTokens int `json:"max_tokens"` + } + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + _ = json.NewDecoder(r.Body).Decode(&got) + _, _ = w.Write([]byte(`{"choices":[{"message":{"content":"ok"}}]}`)) + })) + defer server.Close() + + factory := NewFactory(2 * time.Second) + client, err := factory.ClientFor("openai") + if err != nil { + t.Fatalf("client creation failed: %v", err) + } + temperature := 0.77 + maxTokens := 777 + _, err = client.Generate(context.Background(), Request{ + Provider: "openai", + BaseURL: server.URL, + Model: "gpt-5.4", + APIKey: "key", + Temperature: &temperature, + MaxTokens: &maxTokens, + SystemPrompt: "system", + UserPrompt: "user", + }) + if err != nil { + t.Fatalf("generate failed: %v", err) + } + if got.Temperature != 0.77 { + t.Fatalf("unexpected temperature: %v", got.Temperature) + } + if got.MaxTokens != 777 { + t.Fatalf("unexpected max tokens: %v", got.MaxTokens) + } +} + +func TestExtractProviderErrorMessage(t *testing.T) { + t.Parallel() + + msg := extractProviderErrorMessage([]byte(`{"error":{"message":"invalid key"}}`)) + if !strings.Contains(msg, "invalid key") { + t.Fatalf("unexpected message: %q", msg) + } +}