github.com/blend/go-sdk@v1.20220411.3/r2/opt_tls_handshake_timeout_test.go (about)

     1  /*
     2  
     3  Copyright (c) 2022 - Present. Blend Labs, Inc. All rights reserved
     4  Use of this source code is governed by a MIT license that can be found in the LICENSE file.
     5  
     6  */
     7  
     8  package r2
     9  
    10  import (
    11  	"net/http"
    12  	"testing"
    13  	"time"
    14  
    15  	"github.com/blend/go-sdk/assert"
    16  )
    17  
    18  func TestOptTLSHandshakeTimeout(t *testing.T) {
    19  	assert := assert.New(t)
    20  
    21  	r := New(TestURL, OptTLSHandshakeTimeout(time.Second))
    22  	assert.Equal(time.Second, r.Client.Transport.(*http.Transport).TLSHandshakeTimeout)
    23  }
    24  
    25  func TestOptTLSHandshakeTimeoutWithNilTransport(t *testing.T) {
    26  	assert := assert.New(t)
    27  
    28  	var transport *http.Transport
    29  	req := New(
    30  		TestURL,
    31  		// NOTE: Transport **must** come before the root CAs since the CAs get set
    32  		//       **on** the transport.
    33  		OptTransport(transport),
    34  		OptTLSHandshakeTimeout(time.Second),
    35  	)
    36  
    37  	assert.NotNil(req.Client)
    38  	assert.NotNil(req.Client.Transport)
    39  	typed, ok := req.Client.Transport.(*http.Transport)
    40  	assert.True(ok)
    41  	assert.NotNil(typed)
    42  	assert.Equal(time.Second, typed.TLSHandshakeTimeout)
    43  }