Skip to content

Commit 4e9deb3

Browse files
committed
chore(deps): remove testutil
Although a valid library to continue using, it's no longer our (internal) recommended library to be using for validating HTTP tests in the `oapi-codegen` ecosystem. To simplify our tests, we can replace it with pure `net/http` tests. Closes #5.
1 parent 649f3f5 commit 4e9deb3

File tree

9 files changed

+75
-24
lines changed

9 files changed

+75
-24
lines changed

internal/test/chi/go.mod

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ require (
88
github.com/getkin/kin-openapi v0.124.0
99
github.com/go-chi/chi/v5 v5.0.10
1010
github.com/oapi-codegen/nethttp-middleware v0.0.0-00010101000000-000000000000
11-
github.com/oapi-codegen/testutil v1.0.0
1211
github.com/stretchr/testify v1.8.4
1312
)
1413

internal/test/chi/go.sum

-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0
2121
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
2222
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
2323
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
24-
github.com/oapi-codegen/testutil v1.0.0 h1:1GI2IiMMLh2vDHr1OkNacaYU/VaApKdcmfgl4aeXAa8=
25-
github.com/oapi-codegen/testutil v1.0.0/go.mod h1:ttCaYbHvJtHuiyeBF0tPIX+4uhEPTeizXKx28okijLw=
2624
github.com/perimeterx/marshmallow v1.1.5 h1:a2LALqQ1BlHM8PZblsDdidgv1mWi1DgC2UmX50IvK2s=
2725
github.com/perimeterx/marshmallow v1.1.5/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw=
2826
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=

internal/test/chi/oapi_validate_test.go

+25-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package chi
22

33
import (
4+
"bytes"
45
"context"
56
_ "embed"
7+
"encoding/json"
68
"errors"
79
"io"
810
"net/http"
@@ -15,7 +17,6 @@ import (
1517
"github.com/getkin/kin-openapi/openapi3"
1618
"github.com/getkin/kin-openapi/openapi3filter"
1719
"github.com/go-chi/chi/v5"
18-
"github.com/oapi-codegen/testutil"
1920
"github.com/stretchr/testify/assert"
2021
"github.com/stretchr/testify/require"
2122
)
@@ -29,8 +30,16 @@ func doGet(t *testing.T, mux http.Handler, rawURL string) *httptest.ResponseReco
2930
t.Fatalf("Invalid url: %s", rawURL)
3031
}
3132

32-
response := testutil.NewRequest().Get(u.RequestURI()).WithHost(u.Host).WithAcceptJson().GoWithHTTPHandler(t, mux)
33-
return response.Recorder
33+
req, err := http.NewRequest(http.MethodGet, u.String(), nil)
34+
require.NoError(t, err)
35+
36+
req.Header.Set("accept", "application/json")
37+
38+
rr := httptest.NewRecorder()
39+
40+
mux.ServeHTTP(rr, req)
41+
42+
return rr
3443
}
3544

3645
func doPost(t *testing.T, mux http.Handler, rawURL string, jsonBody interface{}) *httptest.ResponseRecorder {
@@ -39,8 +48,19 @@ func doPost(t *testing.T, mux http.Handler, rawURL string, jsonBody interface{})
3948
t.Fatalf("Invalid url: %s", rawURL)
4049
}
4150

42-
response := testutil.NewRequest().Post(u.RequestURI()).WithHost(u.Host).WithJsonBody(jsonBody).GoWithHTTPHandler(t, mux)
43-
return response.Recorder
51+
data, err := json.Marshal(jsonBody)
52+
require.NoError(t, err)
53+
54+
req, err := http.NewRequest(http.MethodPost, u.String(), bytes.NewReader(data))
55+
require.NoError(t, err)
56+
57+
req.Header.Set("content-type", "application/json")
58+
59+
rr := httptest.NewRecorder()
60+
61+
mux.ServeHTTP(rr, req)
62+
63+
return rr
4464
}
4565

4666
func TestOapiRequestValidator(t *testing.T) {

internal/test/gorilla/go.mod

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ require (
88
github.com/getkin/kin-openapi v0.124.0
99
github.com/gorilla/mux v1.8.1
1010
github.com/oapi-codegen/nethttp-middleware v0.0.0-00010101000000-000000000000
11-
github.com/oapi-codegen/testutil v1.0.0
1211
github.com/stretchr/testify v1.8.4
1312
)
1413

internal/test/gorilla/go.sum

-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0
1919
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
2020
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
2121
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
22-
github.com/oapi-codegen/testutil v1.0.0 h1:1GI2IiMMLh2vDHr1OkNacaYU/VaApKdcmfgl4aeXAa8=
23-
github.com/oapi-codegen/testutil v1.0.0/go.mod h1:ttCaYbHvJtHuiyeBF0tPIX+4uhEPTeizXKx28okijLw=
2422
github.com/perimeterx/marshmallow v1.1.5 h1:a2LALqQ1BlHM8PZblsDdidgv1mWi1DgC2UmX50IvK2s=
2523
github.com/perimeterx/marshmallow v1.1.5/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw=
2624
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=

internal/test/gorilla/oapi_validate_test.go

+25-5
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
package gorilla
22

33
import (
4+
"bytes"
45
"context"
56
_ "embed"
7+
"encoding/json"
68
"errors"
79
"io"
810
"net/http"
911
"net/http/httptest"
1012
"net/url"
1113
"testing"
1214

13-
"github.com/oapi-codegen/testutil"
1415
middleware "github.com/oapi-codegen/nethttp-middleware"
1516

1617
"github.com/getkin/kin-openapi/openapi3"
@@ -29,8 +30,16 @@ func doGet(t *testing.T, mux http.Handler, rawURL string) *httptest.ResponseReco
2930
t.Fatalf("Invalid url: %s", rawURL)
3031
}
3132

32-
response := testutil.NewRequest().Get(u.RequestURI()).WithHost(u.Host).WithAcceptJson().GoWithHTTPHandler(t, mux)
33-
return response.Recorder
33+
req, err := http.NewRequest(http.MethodGet, u.String(), nil)
34+
require.NoError(t, err)
35+
36+
req.Header.Set("accept", "application/json")
37+
38+
rr := httptest.NewRecorder()
39+
40+
mux.ServeHTTP(rr, req)
41+
42+
return rr
3443
}
3544

3645
func doPost(t *testing.T, mux http.Handler, rawURL string, jsonBody interface{}) *httptest.ResponseRecorder {
@@ -39,8 +48,19 @@ func doPost(t *testing.T, mux http.Handler, rawURL string, jsonBody interface{})
3948
t.Fatalf("Invalid url: %s", rawURL)
4049
}
4150

42-
response := testutil.NewRequest().Post(u.RequestURI()).WithHost(u.Host).WithJsonBody(jsonBody).GoWithHTTPHandler(t, mux)
43-
return response.Recorder
51+
data, err := json.Marshal(jsonBody)
52+
require.NoError(t, err)
53+
54+
req, err := http.NewRequest(http.MethodPost, u.String(), bytes.NewReader(data))
55+
require.NoError(t, err)
56+
57+
req.Header.Set("content-type", "application/json")
58+
59+
rr := httptest.NewRecorder()
60+
61+
mux.ServeHTTP(rr, req)
62+
63+
return rr
4464
}
4565

4666
func TestOapiRequestValidator(t *testing.T) {

internal/test/nethttp/go.mod

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ replace github.com/oapi-codegen/nethttp-middleware => ../../../
77
require (
88
github.com/getkin/kin-openapi v0.124.0
99
github.com/oapi-codegen/nethttp-middleware v0.0.0-00010101000000-000000000000
10-
github.com/oapi-codegen/testutil v1.0.0
1110
github.com/stretchr/testify v1.8.4
1211
)
1312

internal/test/nethttp/go.sum

-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0
1919
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
2020
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
2121
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
22-
github.com/oapi-codegen/testutil v1.0.0 h1:1GI2IiMMLh2vDHr1OkNacaYU/VaApKdcmfgl4aeXAa8=
23-
github.com/oapi-codegen/testutil v1.0.0/go.mod h1:ttCaYbHvJtHuiyeBF0tPIX+4uhEPTeizXKx28okijLw=
2422
github.com/perimeterx/marshmallow v1.1.5 h1:a2LALqQ1BlHM8PZblsDdidgv1mWi1DgC2UmX50IvK2s=
2523
github.com/perimeterx/marshmallow v1.1.5/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw=
2624
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=

internal/test/nethttp/oapi_validate_test.go

+25-5
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
package gorilla
22

33
import (
4+
"bytes"
45
"context"
56
_ "embed"
7+
"encoding/json"
68
"errors"
79
"io"
810
"net/http"
911
"net/http/httptest"
1012
"net/url"
1113
"testing"
1214

13-
"github.com/oapi-codegen/testutil"
1415
middleware "github.com/oapi-codegen/nethttp-middleware"
1516

1617
"github.com/getkin/kin-openapi/openapi3"
@@ -28,8 +29,16 @@ func doGet(t *testing.T, mux http.Handler, rawURL string) *httptest.ResponseReco
2829
t.Fatalf("Invalid url: %s", rawURL)
2930
}
3031

31-
response := testutil.NewRequest().Get(u.RequestURI()).WithHost(u.Host).WithAcceptJson().GoWithHTTPHandler(t, mux)
32-
return response.Recorder
32+
req, err := http.NewRequest(http.MethodGet, u.String(), nil)
33+
require.NoError(t, err)
34+
35+
req.Header.Set("accept", "application/json")
36+
37+
rr := httptest.NewRecorder()
38+
39+
mux.ServeHTTP(rr, req)
40+
41+
return rr
3342
}
3443

3544
func doPost(t *testing.T, mux http.Handler, rawURL string, jsonBody interface{}) *httptest.ResponseRecorder {
@@ -38,8 +47,19 @@ func doPost(t *testing.T, mux http.Handler, rawURL string, jsonBody interface{})
3847
t.Fatalf("Invalid url: %s", rawURL)
3948
}
4049

41-
response := testutil.NewRequest().Post(u.RequestURI()).WithHost(u.Host).WithJsonBody(jsonBody).GoWithHTTPHandler(t, mux)
42-
return response.Recorder
50+
data, err := json.Marshal(jsonBody)
51+
require.NoError(t, err)
52+
53+
req, err := http.NewRequest(http.MethodPost, u.String(), bytes.NewReader(data))
54+
require.NoError(t, err)
55+
56+
req.Header.Set("content-type", "application/json")
57+
58+
rr := httptest.NewRecorder()
59+
60+
mux.ServeHTTP(rr, req)
61+
62+
return rr
4363
}
4464

4565
// use wraps a given http.ServeMux with middleware for execution

0 commit comments

Comments
 (0)