...

Source file src/github.com/jarcoal/httpmock/env_test.go

Documentation: github.com/jarcoal/httpmock

     1  package httpmock_test
     2  
     3  import (
     4  	"net/http"
     5  	"os"
     6  	"testing"
     7  
     8  	"github.com/maxatome/go-testdeep/td"
     9  
    10  	"github.com/jarcoal/httpmock"
    11  )
    12  
    13  const envVarName = "GONOMOCKS"
    14  
    15  func TestEnv(t *testing.T) {
    16  	require := td.Require(t)
    17  
    18  	httpmock.DeactivateAndReset()
    19  
    20  	defer func(orig string) {
    21  		require.CmpNoError(os.Setenv(envVarName, orig))
    22  	}(os.Getenv(envVarName))
    23  
    24  	// put it in an enabled state
    25  	require.CmpNoError(os.Setenv(envVarName, ""))
    26  	require.False(httpmock.Disabled(), "expected not to be disabled")
    27  
    28  	client1 := &http.Client{Transport: &http.Transport{}}
    29  	client2 := &http.Client{Transport: &http.Transport{}}
    30  
    31  	// make sure an activation works
    32  	httpmock.Activate()
    33  	httpmock.ActivateNonDefault(client1)
    34  	httpmock.ActivateNonDefault(client2)
    35  	require.Cmp(http.DefaultTransport, httpmock.DefaultTransport,
    36  		"expected http.DefaultTransport to be our DefaultTransport")
    37  	require.Cmp(client1.Transport, httpmock.DefaultTransport,
    38  		"expected client1.Transport to be our DefaultTransport")
    39  	require.Cmp(client2.Transport, httpmock.DefaultTransport,
    40  		"expected client2.Transport to be our DefaultTransport")
    41  	httpmock.Deactivate()
    42  
    43  	require.CmpNoError(os.Setenv(envVarName, "1"))
    44  	require.True(httpmock.Disabled(), "expected to be disabled")
    45  
    46  	// make sure activation doesn't work
    47  	httpmock.Activate()
    48  	httpmock.ActivateNonDefault(client1)
    49  	httpmock.ActivateNonDefault(client2)
    50  	require.Not(http.DefaultTransport, httpmock.DefaultTransport,
    51  		"expected http.DefaultTransport to not be our DefaultTransport")
    52  	require.Not(client1.Transport, httpmock.DefaultTransport,
    53  		"expected client1.Transport to not be our DefaultTransport")
    54  	require.Not(client2.Transport, httpmock.DefaultTransport,
    55  		"expected client2.Transport to not be our DefaultTransport")
    56  	httpmock.Deactivate()
    57  }
    58  

View as plain text