Documentation
¶
Index ¶
- func GracefulExitAfter(duration time.Duration)
- type Client
- func (c *Client) DELETE(path string) *RequestBuilder
- func (c *Client) GET(path string) *RequestBuilder
- func (c *Client) HEAD(path string) *RequestBuilder
- func (c *Client) OPTIONS(path string) *RequestBuilder
- func (c *Client) PATCH(path string) *RequestBuilder
- func (c *Client) POST(path string) *RequestBuilder
- func (c *Client) PUT(path string) *RequestBuilder
- type FileField
- type RequestBuilder
- func Delete(url string) *RequestBuilder
- func Get(url string) *RequestBuilder
- func Head(url string) *RequestBuilder
- func NewRequest() *RequestBuilder
- func Options(url string) *RequestBuilder
- func Patch(url string) *RequestBuilder
- func Post(url string) *RequestBuilder
- func Put(url string) *RequestBuilder
- func (rb *RequestBuilder) Body(body io.Reader) *RequestBuilder
- func (rb *RequestBuilder) Do() (*Response, error)
- func (rb *RequestBuilder) Execute() (*Response, error)
- func (rb *RequestBuilder) FileUpload(fieldName, filePath string) *RequestBuilder
- func (rb *RequestBuilder) FormBody(values map[string]string) *RequestBuilder
- func (rb *RequestBuilder) Header(k, v string) *RequestBuilder
- func (rb *RequestBuilder) Headers(headers map[string]string) *RequestBuilder
- func (rb *RequestBuilder) JSONBody(v any) *RequestBuilder
- func (rb *RequestBuilder) Method(method string) *RequestBuilder
- func (rb *RequestBuilder) MultipartBody(fields map[string]string, files ...FileField) *RequestBuilder
- func (rb *RequestBuilder) Path(path string) *RequestBuilder
- func (rb *RequestBuilder) QueryParam(key, value string) *RequestBuilder
- func (rb *RequestBuilder) QueryParams(params map[string]string) *RequestBuilder
- func (rb *RequestBuilder) SetBasicAuth(username, password string) *RequestBuilder
- func (rb *RequestBuilder) SetBearerAuth(token string) *RequestBuilder
- func (rb *RequestBuilder) SetCookie(name, value string) *RequestBuilder
- func (rb *RequestBuilder) SetCookies(cookies []*http.Cookie) *RequestBuilder
- func (rb *RequestBuilder) Timeout(timeout time.Duration) *RequestBuilder
- func (rb *RequestBuilder) URL(rawURL string) *RequestBuilder
- func (rb *RequestBuilder) WithHTTPClient(client *http.Client) *RequestBuilder
- type Response
- type TestClient
- func (tc *TestClient) DELETE(path string) *TestRequestBuilder
- func (tc *TestClient) GET(path string) *TestRequestBuilder
- func (tc *TestClient) HEAD(path string) *TestRequestBuilder
- func (tc *TestClient) OPTIONS(path string) *TestRequestBuilder
- func (tc *TestClient) PATCH(path string) *TestRequestBuilder
- func (tc *TestClient) POST(path string) *TestRequestBuilder
- func (tc *TestClient) PUT(path string) *TestRequestBuilder
- type TestRequestBuilder
- func DELETE(t *testing.T, url string) *TestRequestBuilder
- func Expect(t *testing.T, rb *RequestBuilder) *TestRequestBuilder
- func FromRecorder(t *testing.T, recorder interface{ ... }) *TestRequestBuilder
- func GET(t *testing.T, url string) *TestRequestBuilder
- func HEAD(t *testing.T, url string) *TestRequestBuilder
- func OPTIONS(t *testing.T, url string) *TestRequestBuilder
- func PATCH(t *testing.T, url string) *TestRequestBuilder
- func POST(t *testing.T, url string) *TestRequestBuilder
- func PUT(t *testing.T, url string) *TestRequestBuilder
- func Request(t *testing.T) *TestRequestBuilder
- func (trb *TestRequestBuilder) Body(body io.Reader) *TestRequestBuilder
- func (trb *TestRequestBuilder) Execute() (*http.Response, []byte)
- func (trb *TestRequestBuilder) ExpectBody(expected string) *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectBodyContains(substr string) *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectBodyNotContains(substr string) *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectContains(substr string) *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectContentType(contentType string) *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectCookie(key, expectedValue string) *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectCookieExist(key string) *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectEmptyBody() *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectHeader(key, value string) *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectHeaderContains(key, substr string) *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectHeaderExists(key string) *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectJSON(expected any) *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectJSONPath(path string, expected any) *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectStatus(code int) *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectStatusAccepted() *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectStatusBadRequest() *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectStatusConflict() *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectStatusCreated() *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectStatusForbidden() *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectStatusInternalServerError() *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectStatusNoContent() *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectStatusNotFound() *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectStatusOK() *TestRequestBuilder
- func (trb *TestRequestBuilder) ExpectStatusUnauthorized() *TestRequestBuilder
- func (trb *TestRequestBuilder) FileUpload(fieldName, filePath string) *TestRequestBuilder
- func (trb *TestRequestBuilder) FormBody(values map[string]string) *TestRequestBuilder
- func (trb *TestRequestBuilder) Header(k, v string) *TestRequestBuilder
- func (trb *TestRequestBuilder) Headers(headers map[string]string) *TestRequestBuilder
- func (trb *TestRequestBuilder) JSONBody(v any) *TestRequestBuilder
- func (trb *TestRequestBuilder) Method(method string) *TestRequestBuilder
- func (trb *TestRequestBuilder) MultipartBody(fields map[string]string, files ...FileField) *TestRequestBuilder
- func (trb *TestRequestBuilder) ParseJSON(target any) *TestRequestBuilder
- func (trb *TestRequestBuilder) Path(path string) *TestRequestBuilder
- func (trb *TestRequestBuilder) QueryParam(key, value string) *TestRequestBuilder
- func (trb *TestRequestBuilder) QueryParams(params map[string]string) *TestRequestBuilder
- func (trb *TestRequestBuilder) SetBasicAuth(username, password string) *TestRequestBuilder
- func (trb *TestRequestBuilder) SetBearerAuth(token string) *TestRequestBuilder
- func (trb *TestRequestBuilder) SetCookie(name, value string) *TestRequestBuilder
- func (trb *TestRequestBuilder) SetCookies(cookies []*http.Cookie) *TestRequestBuilder
- func (trb *TestRequestBuilder) Timeout(timeout time.Duration) *TestRequestBuilder
- func (trb *TestRequestBuilder) URL(url string) *TestRequestBuilder
- func (trb *TestRequestBuilder) WithHTTPClient(client *http.Client) *TestRequestBuilder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GracefulExitAfter ¶
Types ¶
type Client ¶
type Client struct {
// BaseURL is the base URL prepended to all request paths.
BaseURL string
// Headers are default headers included in every request.
Headers map[string]string
// HTTPClient is the underlying http.Client used for requests.
HTTPClient *http.Client
}
Client is a general-purpose HTTP client with a base URL and default headers. Use NewClient to create one. For testing with assertions, use NewTestClient instead.
func NewClientWithCookieJar ¶
NewClientWithCookieJar creates a new Client with a cookie jar that automatically persists cookies across requests.
func (*Client) DELETE ¶
func (c *Client) DELETE(path string) *RequestBuilder
func (*Client) GET ¶
func (c *Client) GET(path string) *RequestBuilder
func (*Client) HEAD ¶
func (c *Client) HEAD(path string) *RequestBuilder
func (*Client) OPTIONS ¶
func (c *Client) OPTIONS(path string) *RequestBuilder
func (*Client) PATCH ¶
func (c *Client) PATCH(path string) *RequestBuilder
func (*Client) POST ¶
func (c *Client) POST(path string) *RequestBuilder
func (*Client) PUT ¶
func (c *Client) PUT(path string) *RequestBuilder
type RequestBuilder ¶
type RequestBuilder struct {
// contains filtered or unexported fields
}
RequestBuilder provides a fluent API for building and executing HTTP requests. Use NewRequest() to create one, or use Client methods for a base-URL-scoped builder.
func Delete ¶ added in v0.0.2
func Delete(url string) *RequestBuilder
func Get ¶ added in v0.0.2
func Get(url string) *RequestBuilder
func Head ¶ added in v0.0.2
func Head(url string) *RequestBuilder
func NewRequest ¶
func NewRequest() *RequestBuilder
NewRequest creates a new RequestBuilder for building an HTTP request.
func Options ¶ added in v0.0.2
func Options(url string) *RequestBuilder
func Patch ¶ added in v0.0.2
func Patch(url string) *RequestBuilder
func Post ¶ added in v0.0.2
func Post(url string) *RequestBuilder
func Put ¶ added in v0.0.2
func Put(url string) *RequestBuilder
func (*RequestBuilder) Body ¶
func (rb *RequestBuilder) Body(body io.Reader) *RequestBuilder
func (*RequestBuilder) Do ¶
func (rb *RequestBuilder) Do() (*Response, error)
Do is an alias for Execute.
func (*RequestBuilder) Execute ¶
func (rb *RequestBuilder) Execute() (*Response, error)
Execute performs the HTTP request and returns the Response.
func (*RequestBuilder) FileUpload ¶
func (rb *RequestBuilder) FileUpload(fieldName, filePath string) *RequestBuilder
FileUpload adds a file from disk to a multipart form upload.
func (*RequestBuilder) FormBody ¶
func (rb *RequestBuilder) FormBody(values map[string]string) *RequestBuilder
func (*RequestBuilder) Header ¶
func (rb *RequestBuilder) Header(k, v string) *RequestBuilder
func (*RequestBuilder) Headers ¶
func (rb *RequestBuilder) Headers(headers map[string]string) *RequestBuilder
func (*RequestBuilder) JSONBody ¶
func (rb *RequestBuilder) JSONBody(v any) *RequestBuilder
func (*RequestBuilder) Method ¶
func (rb *RequestBuilder) Method(method string) *RequestBuilder
func (*RequestBuilder) MultipartBody ¶
func (rb *RequestBuilder) MultipartBody(fields map[string]string, files ...FileField) *RequestBuilder
MultipartBody sets the request body as a multipart form with text fields and file attachments.
func (*RequestBuilder) Path ¶
func (rb *RequestBuilder) Path(path string) *RequestBuilder
Path appends a path segment to the existing URL.
func (*RequestBuilder) QueryParam ¶
func (rb *RequestBuilder) QueryParam(key, value string) *RequestBuilder
func (*RequestBuilder) QueryParams ¶
func (rb *RequestBuilder) QueryParams(params map[string]string) *RequestBuilder
func (*RequestBuilder) SetBasicAuth ¶
func (rb *RequestBuilder) SetBasicAuth(username, password string) *RequestBuilder
func (*RequestBuilder) SetBearerAuth ¶
func (rb *RequestBuilder) SetBearerAuth(token string) *RequestBuilder
func (*RequestBuilder) SetCookie ¶
func (rb *RequestBuilder) SetCookie(name, value string) *RequestBuilder
SetCookie adds a cookie to the request.
func (*RequestBuilder) SetCookies ¶
func (rb *RequestBuilder) SetCookies(cookies []*http.Cookie) *RequestBuilder
SetCookies adds multiple cookies to the request.
func (*RequestBuilder) Timeout ¶
func (rb *RequestBuilder) Timeout(timeout time.Duration) *RequestBuilder
func (*RequestBuilder) URL ¶
func (rb *RequestBuilder) URL(rawURL string) *RequestBuilder
URL sets the request URL.
func (*RequestBuilder) WithHTTPClient ¶
func (rb *RequestBuilder) WithHTTPClient(client *http.Client) *RequestBuilder
WithHTTPClient sets a custom http.Client for this request.
type Response ¶
type Response struct {
// StatusCode is the HTTP status code (e.g. 200).
StatusCode int
// Status is the HTTP status line (e.g. "200 OK").
Status string
// Header contains the response headers.
Header http.Header
// Body is the raw response body bytes.
Body []byte
// Raw is the underlying *http.Response.
Raw *http.Response
}
Response wraps an HTTP response with convenience methods.
type TestClient ¶
type TestClient struct {
*Client
// contains filtered or unexported fields
}
func NewTestClient ¶
func NewTestClient(t *testing.T, baseURL string) *TestClient
NewTestClient creates a new TestClient for testing with the specified base URL.
func NewTestClientWithCookieJar ¶
func NewTestClientWithCookieJar(t *testing.T, baseURL string) *TestClient
NewTestClientWithCookieJar creates a new TestClient with a cookie jar for session persistence.
func (*TestClient) DELETE ¶
func (tc *TestClient) DELETE(path string) *TestRequestBuilder
func (*TestClient) GET ¶
func (tc *TestClient) GET(path string) *TestRequestBuilder
func (*TestClient) HEAD ¶
func (tc *TestClient) HEAD(path string) *TestRequestBuilder
func (*TestClient) OPTIONS ¶
func (tc *TestClient) OPTIONS(path string) *TestRequestBuilder
func (*TestClient) PATCH ¶
func (tc *TestClient) PATCH(path string) *TestRequestBuilder
func (*TestClient) POST ¶
func (tc *TestClient) POST(path string) *TestRequestBuilder
func (*TestClient) PUT ¶
func (tc *TestClient) PUT(path string) *TestRequestBuilder
type TestRequestBuilder ¶
type TestRequestBuilder struct {
// contains filtered or unexported fields
}
func Expect ¶
func Expect(t *testing.T, rb *RequestBuilder) *TestRequestBuilder
Expect wraps a RequestBuilder for test assertions.
func FromRecorder ¶
func FromRecorder(t *testing.T, recorder interface{ Result() *http.Response }) *TestRequestBuilder
FromRecorder creates a TestRequestBuilder from a httptest.ResponseRecorder. This is useful for testing handlers directly without making HTTP requests.
func Request ¶
func Request(t *testing.T) *TestRequestBuilder
Request creates a new TestRequestBuilder for building test assertions.
func (*TestRequestBuilder) Body ¶
func (trb *TestRequestBuilder) Body(body io.Reader) *TestRequestBuilder
func (*TestRequestBuilder) Execute ¶
func (trb *TestRequestBuilder) Execute() (*http.Response, []byte)
Execute performs the request and returns the raw response for manual inspection.
func (*TestRequestBuilder) ExpectBody ¶
func (trb *TestRequestBuilder) ExpectBody(expected string) *TestRequestBuilder
func (*TestRequestBuilder) ExpectBodyContains ¶
func (trb *TestRequestBuilder) ExpectBodyContains(substr string) *TestRequestBuilder
func (*TestRequestBuilder) ExpectBodyNotContains ¶
func (trb *TestRequestBuilder) ExpectBodyNotContains(substr string) *TestRequestBuilder
func (*TestRequestBuilder) ExpectContains ¶
func (trb *TestRequestBuilder) ExpectContains(substr string) *TestRequestBuilder
func (*TestRequestBuilder) ExpectContentType ¶
func (trb *TestRequestBuilder) ExpectContentType(contentType string) *TestRequestBuilder
func (*TestRequestBuilder) ExpectCookie ¶
func (trb *TestRequestBuilder) ExpectCookie(key, expectedValue string) *TestRequestBuilder
func (*TestRequestBuilder) ExpectCookieExist ¶
func (trb *TestRequestBuilder) ExpectCookieExist(key string) *TestRequestBuilder
func (*TestRequestBuilder) ExpectEmptyBody ¶
func (trb *TestRequestBuilder) ExpectEmptyBody() *TestRequestBuilder
func (*TestRequestBuilder) ExpectHeader ¶
func (trb *TestRequestBuilder) ExpectHeader(key, value string) *TestRequestBuilder
func (*TestRequestBuilder) ExpectHeaderContains ¶
func (trb *TestRequestBuilder) ExpectHeaderContains(key, substr string) *TestRequestBuilder
func (*TestRequestBuilder) ExpectHeaderExists ¶
func (trb *TestRequestBuilder) ExpectHeaderExists(key string) *TestRequestBuilder
func (*TestRequestBuilder) ExpectJSON ¶
func (trb *TestRequestBuilder) ExpectJSON(expected any) *TestRequestBuilder
func (*TestRequestBuilder) ExpectJSONPath ¶
func (trb *TestRequestBuilder) ExpectJSONPath(path string, expected any) *TestRequestBuilder
func (*TestRequestBuilder) ExpectStatus ¶
func (trb *TestRequestBuilder) ExpectStatus(code int) *TestRequestBuilder
func (*TestRequestBuilder) ExpectStatusAccepted ¶
func (trb *TestRequestBuilder) ExpectStatusAccepted() *TestRequestBuilder
func (*TestRequestBuilder) ExpectStatusBadRequest ¶
func (trb *TestRequestBuilder) ExpectStatusBadRequest() *TestRequestBuilder
func (*TestRequestBuilder) ExpectStatusConflict ¶
func (trb *TestRequestBuilder) ExpectStatusConflict() *TestRequestBuilder
func (*TestRequestBuilder) ExpectStatusCreated ¶
func (trb *TestRequestBuilder) ExpectStatusCreated() *TestRequestBuilder
func (*TestRequestBuilder) ExpectStatusForbidden ¶
func (trb *TestRequestBuilder) ExpectStatusForbidden() *TestRequestBuilder
func (*TestRequestBuilder) ExpectStatusInternalServerError ¶
func (trb *TestRequestBuilder) ExpectStatusInternalServerError() *TestRequestBuilder
func (*TestRequestBuilder) ExpectStatusNoContent ¶
func (trb *TestRequestBuilder) ExpectStatusNoContent() *TestRequestBuilder
func (*TestRequestBuilder) ExpectStatusNotFound ¶
func (trb *TestRequestBuilder) ExpectStatusNotFound() *TestRequestBuilder
func (*TestRequestBuilder) ExpectStatusOK ¶
func (trb *TestRequestBuilder) ExpectStatusOK() *TestRequestBuilder
func (*TestRequestBuilder) ExpectStatusUnauthorized ¶
func (trb *TestRequestBuilder) ExpectStatusUnauthorized() *TestRequestBuilder
func (*TestRequestBuilder) FileUpload ¶
func (trb *TestRequestBuilder) FileUpload(fieldName, filePath string) *TestRequestBuilder
func (*TestRequestBuilder) FormBody ¶
func (trb *TestRequestBuilder) FormBody(values map[string]string) *TestRequestBuilder
func (*TestRequestBuilder) Header ¶
func (trb *TestRequestBuilder) Header(k, v string) *TestRequestBuilder
func (*TestRequestBuilder) Headers ¶
func (trb *TestRequestBuilder) Headers(headers map[string]string) *TestRequestBuilder
func (*TestRequestBuilder) JSONBody ¶
func (trb *TestRequestBuilder) JSONBody(v any) *TestRequestBuilder
func (*TestRequestBuilder) Method ¶
func (trb *TestRequestBuilder) Method(method string) *TestRequestBuilder
func (*TestRequestBuilder) MultipartBody ¶
func (trb *TestRequestBuilder) MultipartBody(fields map[string]string, files ...FileField) *TestRequestBuilder
func (*TestRequestBuilder) ParseJSON ¶
func (trb *TestRequestBuilder) ParseJSON(target any) *TestRequestBuilder
func (*TestRequestBuilder) Path ¶
func (trb *TestRequestBuilder) Path(path string) *TestRequestBuilder
func (*TestRequestBuilder) QueryParam ¶
func (trb *TestRequestBuilder) QueryParam(key, value string) *TestRequestBuilder
func (*TestRequestBuilder) QueryParams ¶
func (trb *TestRequestBuilder) QueryParams(params map[string]string) *TestRequestBuilder
func (*TestRequestBuilder) SetBasicAuth ¶
func (trb *TestRequestBuilder) SetBasicAuth(username, password string) *TestRequestBuilder
func (*TestRequestBuilder) SetBearerAuth ¶
func (trb *TestRequestBuilder) SetBearerAuth(token string) *TestRequestBuilder
func (*TestRequestBuilder) SetCookie ¶
func (trb *TestRequestBuilder) SetCookie(name, value string) *TestRequestBuilder
func (*TestRequestBuilder) SetCookies ¶
func (trb *TestRequestBuilder) SetCookies(cookies []*http.Cookie) *TestRequestBuilder
func (*TestRequestBuilder) Timeout ¶
func (trb *TestRequestBuilder) Timeout(timeout time.Duration) *TestRequestBuilder
func (*TestRequestBuilder) URL ¶
func (trb *TestRequestBuilder) URL(url string) *TestRequestBuilder
func (*TestRequestBuilder) WithHTTPClient ¶
func (trb *TestRequestBuilder) WithHTTPClient(client *http.Client) *TestRequestBuilder