summaryrefslogtreecommitdiff
path: root/pkg/test/test.go
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-03-13 16:43:47 -0600
committermo khan <mo@mokhan.ca>2025-03-13 16:43:47 -0600
commitc9f394fe7fa0a5a6504b5b80ae7019cffdf4bb14 (patch)
treeda1ef1c59264221c2c483ddd76401ee19cd1015c /pkg/test/test.go
parentb55a6617971fa50bb064480f78343e6c0bc59dbe (diff)
refactor: extract authz interface to test out different PaC libraries
Diffstat (limited to 'pkg/test/test.go')
-rw-r--r--pkg/test/test.go49
1 files changed, 49 insertions, 0 deletions
diff --git a/pkg/test/test.go b/pkg/test/test.go
new file mode 100644
index 00000000..9963323a
--- /dev/null
+++ b/pkg/test/test.go
@@ -0,0 +1,49 @@
+package test
+
+import (
+ "context"
+ "io"
+ "net/http"
+ "net/http/httptest"
+)
+
+type RequestOption func(*http.Request) *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 WithRequestHeader(key, value string) RequestOption {
+ return func(r *http.Request) *http.Request {
+ r.Header.Set(key, value)
+ return r
+ }
+}
+
+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 WithCookie(cookie *http.Cookie) RequestOption {
+ return func(r *http.Request) *http.Request {
+ r.AddCookie(cookie)
+ return r
+ }
+}