...
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
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
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
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