...
1
2
3
4
5
6
7
8 package proxytest
9
10 import (
11 "net/http"
12 "net/http/httptest"
13 "os"
14 "testing"
15
16 "github.com/stretchr/testify/assert"
17 "github.com/stretchr/testify/require"
18
19 "github.com/launchdarkly/go-test-helpers/v3/httphelpers"
20
21 "github.com/launchdarkly/go-server-sdk/v6/ldhttp"
22 )
23
24 func TestDefaultTransportUsesProxyEnvVars(t *testing.T) {
25 oldHttpProxy := os.Getenv("HTTP_PROXY")
26 defer os.Setenv("HTTP_PROXY", oldHttpProxy)
27
28 targetURL := "http://badhost/url"
29
30
31
32
33 handler, requestsCh := httphelpers.RecordingHandler(httphelpers.HandlerWithStatus(200))
34 httphelpers.WithServer(handler, func(proxy *httptest.Server) {
35
36
37
38 os.Setenv("HTTP_PROXY", proxy.URL)
39
40 transport, _, err := ldhttp.NewHTTPTransport()
41 require.NoError(t, err)
42
43 client := *http.DefaultClient
44 client.Transport = transport
45 resp, err := client.Get(targetURL)
46 require.NoError(t, err)
47
48 assert.Equal(t, 200, resp.StatusCode)
49 assert.Equal(t, 1, len(requestsCh))
50 r := <-requestsCh
51 assert.Equal(t, targetURL, r.Request.URL.String())
52 })
53 }
54
View as plain text