summaryrefslogtreecommitdiff
path: root/internal/testhelper/requesthandlers/requesthandlers.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/testhelper/requesthandlers/requesthandlers.go')
-rw-r--r--internal/testhelper/requesthandlers/requesthandlers.go58
1 files changed, 58 insertions, 0 deletions
diff --git a/internal/testhelper/requesthandlers/requesthandlers.go b/internal/testhelper/requesthandlers/requesthandlers.go
new file mode 100644
index 0000000..a7bc427
--- /dev/null
+++ b/internal/testhelper/requesthandlers/requesthandlers.go
@@ -0,0 +1,58 @@
+package requesthandlers
+
+import (
+ "encoding/json"
+ "net/http"
+ "testing"
+
+ "github.com/stretchr/testify/require"
+
+ "gitlab.com/gitlab-org/gitlab-shell/go/internal/gitlabnet/testserver"
+)
+
+func BuildDisallowedByApiHandlers(t *testing.T) []testserver.TestRequestHandler {
+ requests := []testserver.TestRequestHandler{
+ {
+ Path: "/api/v4/internal/allowed",
+ Handler: func(w http.ResponseWriter, r *http.Request) {
+ body := map[string]interface{}{
+ "status": false,
+ "message": "Disallowed by API call",
+ }
+ w.WriteHeader(http.StatusForbidden)
+ require.NoError(t, json.NewEncoder(w).Encode(body))
+ },
+ },
+ }
+
+ return requests
+}
+
+func BuildAllowedWithGitalyHandlers(t *testing.T, gitalyAddress string) []testserver.TestRequestHandler {
+ requests := []testserver.TestRequestHandler{
+ {
+ Path: "/api/v4/internal/allowed",
+ Handler: func(w http.ResponseWriter, r *http.Request) {
+ body := map[string]interface{}{
+ "status": true,
+ "gl_id": "1",
+ "gitaly": map[string]interface{}{
+ "repository": map[string]interface{}{
+ "storage_name": "storage_name",
+ "relative_path": "relative_path",
+ "git_object_directory": "path/to/git_object_directory",
+ "git_alternate_object_directories": []string{"path/to/git_alternate_object_directory"},
+ "gl_repository": "group/repo",
+ "gl_project_path": "group/project-path",
+ },
+ "address": gitalyAddress,
+ "token": "token",
+ },
+ }
+ require.NoError(t, json.NewEncoder(w).Encode(body))
+ },
+ },
+ }
+
+ return requests
+}