diff options
Diffstat (limited to 'internal/testhelper/requesthandlers/requesthandlers.go')
| -rw-r--r-- | internal/testhelper/requesthandlers/requesthandlers.go | 58 |
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 +} |
