diff options
Diffstat (limited to 'pkg/test/http.go')
| -rw-r--r-- | pkg/test/http.go | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/pkg/test/http.go b/pkg/test/http.go deleted file mode 100644 index b65ccc9..0000000 --- a/pkg/test/http.go +++ /dev/null @@ -1,68 +0,0 @@ -package test - -import ( - "bytes" - "context" - "io" - "net/http" - "net/http/httptest" - - xcontext "github.com/xlgmokha/x/pkg/context" - "github.com/xlgmokha/x/pkg/serde" - "github.com/xlgmokha/x/pkg/x" -) - -type RequestOption x.Option[*http.Request] - -func Request(method, target string, options ...RequestOption) *http.Request { - request := httptest.NewRequest(method, target, nil) - for _, option := range options { - request = option(request) - } - return request -} - -func RequestResponse(method, target string, options ...RequestOption) (*http.Request, *httptest.ResponseRecorder) { - return Request(method, target, options...), httptest.NewRecorder() -} - -func WithAcceptHeader(value serde.MediaType) RequestOption { - return WithRequestHeader("Accept", string(value)) -} - -func WithRequestHeader(key, value string) RequestOption { - return func(r *http.Request) *http.Request { - r.Header.Set(key, value) - return r - } -} - -func WithContentType[T any](item T, mediaType serde.MediaType) RequestOption { - body := bytes.NewBuffer(nil) - x.Check(serde.To[T](body, item, mediaType)) - return WithRequestBody(io.NopCloser(body)) -} - -func WithRequestBody(body io.ReadCloser) RequestOption { - return func(r *http.Request) *http.Request { - r.Body = body - return r - } -} - -func WithContext(ctx context.Context) RequestOption { - return func(r *http.Request) *http.Request { - return r.WithContext(ctx) - } -} - -func WithContextKeyValue[T any](ctx context.Context, key xcontext.Key[T], item T) RequestOption { - return WithContext(key.With(ctx, item)) -} - -func WithCookie(cookie *http.Cookie) RequestOption { - return func(r *http.Request) *http.Request { - r.AddCookie(cookie) - return r - } -} |
