diff options
author | feistel <6742251-feistel@users.noreply.gitlab.com> | 2021-12-31 05:16:27 +0300 |
---|---|---|
committer | feistel <6742251-feistel@users.noreply.gitlab.com> | 2022-01-24 15:23:10 +0300 |
commit | d36080a959f3f13238ee5f853f4a66a699363965 (patch) | |
tree | 2b0a54e367572c1e387590a4dba159c8c8ff33f8 /internal/request | |
parent | 88656e8f55e74ea5d7adf703e36dac23726a139b (diff) |
test: expand request package tests and migrate to table-driven tests
Diffstat (limited to 'internal/request')
-rw-r--r-- | internal/request/request_test.go | 98 |
1 files changed, 71 insertions, 27 deletions
diff --git a/internal/request/request_test.go b/internal/request/request_test.go index 0455fc55..9e71db37 100644 --- a/internal/request/request_test.go +++ b/internal/request/request_test.go @@ -9,37 +9,81 @@ import ( ) func TestIsHTTPS(t *testing.T) { - t.Run("when scheme is http", func(t *testing.T) { - httpRequest, err := http.NewRequest("GET", "/", nil) - require.NoError(t, err) - httpRequest.URL.Scheme = SchemeHTTP - require.False(t, IsHTTPS(httpRequest)) - }) - - t.Run("when scheme is https", func(t *testing.T) { - httpsRequest, err := http.NewRequest("GET", "/", nil) - require.NoError(t, err) - httpsRequest.URL.Scheme = SchemeHTTPS - require.True(t, IsHTTPS(httpsRequest)) - }) + tests := map[string]struct { + u string + scheme string + }{ + "when scheme is http": { + u: "/", + scheme: SchemeHTTP, + }, + "when scheme is https": { + u: "/", + scheme: SchemeHTTPS, + }, + } + for name, test := range tests { + t.Run(name, func(t *testing.T) { + req := httptest.NewRequest(http.MethodGet, test.u, nil) + req.URL.Scheme = test.scheme + + require.Equal(t, test.scheme == SchemeHTTPS, IsHTTPS(req)) + }) + } } func TestGetHostWithoutPort(t *testing.T) { - t.Run("when port component is provided", func(t *testing.T) { - request := httptest.NewRequest("GET", "https://example.com:443", nil) - request.Host = "my.example.com:8080" - - host := GetHostWithoutPort(request) + tests := map[string]struct { + u string + host string + expected string + }{ + "when port component is provided": { + u: "https://example.com:443", + host: "my.example.com:8080", + expected: "my.example.com", + }, + "when port component is not provided": { + u: "http://example.com", + host: "my.example.com", + expected: "my.example.com", + }, + } + for name, test := range tests { + t.Run(name, func(t *testing.T) { + req := httptest.NewRequest(http.MethodGet, test.u, nil) + req.Host = test.host - require.Equal(t, "my.example.com", host) - }) - - t.Run("when port component is not provided", func(t *testing.T) { - request := httptest.NewRequest("GET", "http://example.com", nil) - request.Host = "my.example.com" + host := GetHostWithoutPort(req) + require.Equal(t, test.expected, host) + }) + } +} - host := GetHostWithoutPort(request) +func TestGetRemoteAddrWithoutPort(t *testing.T) { + tests := map[string]struct { + u string + remoteAddr string + expected string + }{ + "when port component is provided": { + u: "https://example.com:443", + remoteAddr: "127.0.0.1:1000", + expected: "127.0.0.1", + }, + "when port component is not provided": { + u: "http://example.com", + remoteAddr: "127.0.0.1", + expected: "127.0.0.1", + }, + } + for name, test := range tests { + t.Run(name, func(t *testing.T) { + req := httptest.NewRequest(http.MethodGet, test.u, nil) + req.RemoteAddr = test.remoteAddr - require.Equal(t, "my.example.com", host) - }) + addr := GetRemoteAddrWithoutPort(req) + require.Equal(t, test.expected, addr) + }) + } } |