github.com/argoproj/argo-cd/v3@v3.2.1/applicationset/services/util_test.go (about) 1 package services 2 3 import ( 4 "context" 5 "crypto/tls" 6 "net/http" 7 "testing" 8 "time" 9 10 bitbucketv1 "github.com/gfleury/go-bitbucket-v1" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestSetupBitbucketClient(t *testing.T) { 15 ctx := context.Background() 16 cfg := &bitbucketv1.Configuration{} 17 18 // Act 19 client := SetupBitbucketClient(ctx, cfg, "", false, nil) 20 21 // Assert 22 require.NotNil(t, client, "expected client to be created") 23 require.NotNil(t, cfg.HTTPClient, "expected HTTPClient to be set") 24 25 // The transport should be a clone of DefaultTransport 26 tr, ok := cfg.HTTPClient.Transport.(*http.Transport) 27 require.True(t, ok, "expected HTTPClient.Transport to be *http.Transport") 28 require.NotSame(t, http.DefaultTransport, tr, "transport should be a clone, not the global DefaultTransport") 29 30 // Ensure TLSClientConfig is set 31 require.IsType(t, &tls.Config{}, tr.TLSClientConfig) 32 33 // Defaults from http.DefaultTransport.Clone() should be preserved 34 require.Greater(t, tr.IdleConnTimeout, time.Duration(0), "IdleConnTimeout should be non-zero") 35 require.Positive(t, tr.MaxIdleConns, "MaxIdleConns should be non-zero") 36 require.Greater(t, tr.TLSHandshakeTimeout, time.Duration(0), "TLSHandshakeTimeout should be non-zero") 37 }