From c8387ee6b21bf84677aa9c988fcbe425d9ef3317 Mon Sep 17 00:00:00 2001 From: presbrey Date: Fri, 9 Aug 2024 22:19:45 -0400 Subject: [PATCH] feat: add test for Client.RoundTripper --- multiproxy_test.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/multiproxy_test.go b/multiproxy_test.go index a27fb2a..08e78e4 100644 --- a/multiproxy_test.go +++ b/multiproxy_test.go @@ -398,6 +398,40 @@ func TestClientHead(t *testing.T) { assert.Equal(t, 1, client.states[0].requestCount) } +func TestClientRoundTripper(t *testing.T) { + testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + fmt.Fprint(w, "Hello from test server") + })) + defer testServer.Close() + + proxy, cleanup := setupSocks5Server(t, "", "") + defer cleanup() + + config := Config{ + Proxies: []Proxy{{URL: &url.URL{Scheme: "socks5", Host: proxy}}}, + DialTimeout: 5 * time.Second, + } + + client, err := NewClient(config) + require.NoError(t, err) + + httpClient := &http.Client{ + Transport: client.RoundTripper(), + } + + resp, err := httpClient.Get(testServer.URL) + require.NoError(t, err) + defer resp.Body.Close() + + assert.Equal(t, http.StatusOK, resp.StatusCode) + + body, err := io.ReadAll(resp.Body) + require.NoError(t, err) + assert.Equal(t, "Hello from test server", string(body)) + + assert.Equal(t, 1, client.states[0].requestCount) +} + func TestClientPost(t *testing.T) { testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if r.Method != "POST" {