Files
clawgo/pkg/providers/execution_test.go

34 lines
1.1 KiB
Go

package providers
import (
"context"
"net/http"
"net/http/httptest"
"testing"
"time"
)
func TestHTTPProviderExecuteJSONAttemptsReturnsEnvelope(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if got := r.Header.Get("Authorization"); got != "Bearer token" {
t.Fatalf("authorization = %q", got)
}
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
_, _ = w.Write([]byte(`{"ok":true}`))
}))
defer server.Close()
provider := NewHTTPProvider("test", "token", server.URL, "gpt-test", false, "bearer", 5*time.Second, nil)
result, err := provider.executeJSONAttempts(context.Background(), server.URL, map[string]any{"hello": "world"}, nil, classifyOAuthFailure)
if err != nil {
t.Fatalf("executeJSONAttempts error: %v", err)
}
if result.StatusCode != http.StatusOK || result.ContentType != "application/json" || result.AttemptKind != "api_key" {
t.Fatalf("unexpected envelope: %+v", result)
}
if string(result.Body) != `{"ok":true}` {
t.Fatalf("unexpected body: %s", string(result.Body))
}
}