package client import ( "io/ioutil" "log" "net/http" "net/http/httptest" "testing" "github.com/stretchr/testify/require" ) func TestHTTPClientMakeHTTPDialer(t *testing.T) { handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { _, _ = w.Write([]byte("Hi!\n")) }) ts := httptest.NewServer(handler) defer ts.Close() tsTLS := httptest.NewTLSServer(handler) defer tsTLS.Close() // This silences a TLS handshake error, caused by the dialer just immediately // disconnecting, which we can just ignore. tsTLS.Config.ErrorLog = log.New(ioutil.Discard, "", 0) for _, testURL := range []string{ts.URL, tsTLS.URL} { u, err := newParsedURL(testURL) require.NoError(t, err) dialFn, err := makeHTTPDialer(testURL) require.Nil(t, err) addr, err := dialFn(u.Scheme, u.GetHostWithPath()) require.NoError(t, err) require.NotNil(t, addr) } }