package executor import ( "net/http" "testing" "github.com/router-for-me/CLIProxyAPI/v6/internal/config" cliproxyauth "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth" ) func TestProxyAwareClient_KeepAlivePoolReuse(t *testing.T) { cfg := &config.Config{} cfg.HTTPKeepAlive.Enabled = true cfg.HTTPKeepAlive.MaxIdleConns = 32 cfg.HTTPKeepAlive.MaxIdleConnsPerHost = 8 cfg.HTTPKeepAlive.IdleConnTimeoutSeconds = 30 auth := &cliproxyauth.Auth{} c1 := newProxyAwareHTTPClient(t.Context(), cfg, auth, 0) c2 := newProxyAwareHTTPClient(t.Context(), cfg, auth, 0) if c1.Transport == nil || c2.Transport == nil { t.Fatalf("expected non-nil transports") } if c1.Transport != c2.Transport { t.Fatalf("expected pooled transport reuse") } } func TestProxyAwareClient_KeepAliveDisabledNoPoolReuse(t *testing.T) { cfg := &config.Config{} cfg.HTTPKeepAlive.Enabled = false auth := &cliproxyauth.Auth{ProxyURL: "http://127.0.0.1:8080"} c1 := newProxyAwareHTTPClient(t.Context(), cfg, auth, 0) c2 := newProxyAwareHTTPClient(t.Context(), cfg, auth, 0) if c1.Transport == nil || c2.Transport == nil { t.Fatalf("expected non-nil transports") } if c1.Transport == c2.Transport { t.Fatalf("expected distinct transports when keepalive pool disabled") } tr, ok := c1.Transport.(*http.Transport) if !ok { t.Fatalf("expected *http.Transport") } if !tr.DisableKeepAlives { t.Fatalf("expected keep-alives disabled when feature disabled") } }