From 659605ceef24f8ea86070ef2482add0e44de759f Mon Sep 17 00:00:00 2001 From: Nicolas Beauvais Date: Tue, 18 Nov 2025 21:31:11 +0100 Subject: [PATCH] Add HTTPS request with trace test for coverage --- request_test.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/request_test.go b/request_test.go index 784bc5dd..b6978b69 100644 --- a/request_test.go +++ b/request_test.go @@ -13,6 +13,7 @@ import ( "errors" "io" "net/http" + "net/http/httptest" "net/url" "os" "path/filepath" @@ -1974,6 +1975,34 @@ func TestTraceInfoOnTimeoutWithSetTimeout(t *testing.T) { assertEqual(t, true, tr.TotalTime > 0) assertEqual(t, true, tr.TotalTime == resp.Duration()) }) + + t.Run("HTTPS request with TLS handshake", func(t *testing.T) { + ts := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + _, _ = w.Write([]byte("OK")) + })) + defer ts.Close() + + client := New(). + SetTimeout(5 * time.Second). + SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true}). + EnableTrace() + + resp, err := client.R().Get(ts.URL) + assertNil(t, err) + assertNotNil(t, resp) + + tr := resp.Request.TraceInfo() + + assertEqual(t, true, tr.TLSHandshake > 0) + assertEqual(t, true, tr.DNSLookup >= 0) + assertEqual(t, true, tr.ConnTime >= 0) + assertEqual(t, true, tr.TCPConnTime >= 0) + assertEqual(t, true, tr.ServerTime >= 0) + assertEqual(t, true, tr.ResponseTime >= 0) + assertEqual(t, true, tr.TotalTime > 0) + assertEqual(t, true, tr.TotalTime == resp.Duration()) + }) } func TestDebugLoggerRequestBodyTooLarge(t *testing.T) {