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  }