summaryrefslogtreecommitdiff
path: root/go/internal/command/command_test.go
diff options
context:
space:
mode:
authorNick Thomas <nick@gitlab.com>2019-10-17 12:04:52 +0100
committerNick Thomas <nick@gitlab.com>2019-10-18 11:47:25 +0100
commit83d11f4deeb20b852a0af3433190a0f7250a0027 (patch)
tree1a9df18d6f9f59712c6f5c98e995a4918eb94a11 /go/internal/command/command_test.go
parent7d5229db263a62661653431881bef8b46984d0de (diff)
downloadgitlab-shell-83d11f4deeb20b852a0af3433190a0f7250a0027.tar.gz
Move go code up one level
Diffstat (limited to 'go/internal/command/command_test.go')
-rw-r--r--go/internal/command/command_test.go146
1 files changed, 0 insertions, 146 deletions
diff --git a/go/internal/command/command_test.go b/go/internal/command/command_test.go
deleted file mode 100644
index cd3ac9b..0000000
--- a/go/internal/command/command_test.go
+++ /dev/null
@@ -1,146 +0,0 @@
-package command
-
-import (
- "errors"
- "testing"
-
- "github.com/stretchr/testify/require"
-
- "gitlab.com/gitlab-org/gitlab-shell/go/internal/command/authorizedkeys"
- "gitlab.com/gitlab-org/gitlab-shell/go/internal/command/authorizedprincipals"
- "gitlab.com/gitlab-org/gitlab-shell/go/internal/command/discover"
- "gitlab.com/gitlab-org/gitlab-shell/go/internal/command/healthcheck"
- "gitlab.com/gitlab-org/gitlab-shell/go/internal/command/lfsauthenticate"
- "gitlab.com/gitlab-org/gitlab-shell/go/internal/command/receivepack"
- "gitlab.com/gitlab-org/gitlab-shell/go/internal/command/shared/disallowedcommand"
- "gitlab.com/gitlab-org/gitlab-shell/go/internal/command/twofactorrecover"
- "gitlab.com/gitlab-org/gitlab-shell/go/internal/command/uploadarchive"
- "gitlab.com/gitlab-org/gitlab-shell/go/internal/command/uploadpack"
- "gitlab.com/gitlab-org/gitlab-shell/go/internal/config"
- "gitlab.com/gitlab-org/gitlab-shell/go/internal/executable"
- "gitlab.com/gitlab-org/gitlab-shell/go/internal/testhelper"
-)
-
-var (
- authorizedKeysExec = &executable.Executable{Name: executable.AuthorizedKeysCheck}
- authorizedPrincipalsExec = &executable.Executable{Name: executable.AuthorizedPrincipalsCheck}
- checkExec = &executable.Executable{Name: executable.Healthcheck}
- gitlabShellExec = &executable.Executable{Name: executable.GitlabShell}
-
- basicConfig = &config.Config{GitlabUrl: "http+unix://gitlab.socket"}
-)
-
-func buildEnv(command string) map[string]string {
- return map[string]string{
- "SSH_CONNECTION": "1",
- "SSH_ORIGINAL_COMMAND": command,
- }
-}
-
-func TestNew(t *testing.T) {
- testCases := []struct {
- desc string
- executable *executable.Executable
- environment map[string]string
- arguments []string
- expectedType interface{}
- }{
- {
- desc: "it returns a Discover command",
- executable: gitlabShellExec,
- environment: buildEnv(""),
- expectedType: &discover.Command{},
- },
- {
- desc: "it returns a TwoFactorRecover command",
- executable: gitlabShellExec,
- environment: buildEnv("2fa_recovery_codes"),
- expectedType: &twofactorrecover.Command{},
- },
- {
- desc: "it returns an LfsAuthenticate command",
- executable: gitlabShellExec,
- environment: buildEnv("git-lfs-authenticate"),
- expectedType: &lfsauthenticate.Command{},
- },
- {
- desc: "it returns a ReceivePack command",
- executable: gitlabShellExec,
- environment: buildEnv("git-receive-pack"),
- expectedType: &receivepack.Command{},
- },
- {
- desc: "it returns an UploadPack command",
- executable: gitlabShellExec,
- environment: buildEnv("git-upload-pack"),
- expectedType: &uploadpack.Command{},
- },
- {
- desc: "it returns an UploadArchive command",
- executable: gitlabShellExec,
- environment: buildEnv("git-upload-archive"),
- expectedType: &uploadarchive.Command{},
- },
- {
- desc: "it returns a Healthcheck command",
- executable: checkExec,
- expectedType: &healthcheck.Command{},
- },
- {
- desc: "it returns a AuthorizedKeys command",
- executable: authorizedKeysExec,
- arguments: []string{"git", "git", "key"},
- expectedType: &authorizedkeys.Command{},
- },
- {
- desc: "it returns a AuthorizedPrincipals command",
- executable: authorizedPrincipalsExec,
- arguments: []string{"key", "principal"},
- expectedType: &authorizedprincipals.Command{},
- },
- }
-
- for _, tc := range testCases {
- t.Run(tc.desc, func(t *testing.T) {
- restoreEnv := testhelper.TempEnv(tc.environment)
- defer restoreEnv()
-
- command, err := New(tc.executable, tc.arguments, basicConfig, nil)
-
- require.NoError(t, err)
- require.IsType(t, tc.expectedType, command)
- })
- }
-}
-
-func TestFailingNew(t *testing.T) {
- testCases := []struct {
- desc string
- executable *executable.Executable
- environment map[string]string
- expectedError error
- }{
- {
- desc: "Parsing environment failed",
- executable: gitlabShellExec,
- expectedError: errors.New("Only SSH allowed"),
- },
- {
- desc: "Unknown command given",
- executable: gitlabShellExec,
- environment: buildEnv("unknown"),
- expectedError: disallowedcommand.Error,
- },
- }
-
- for _, tc := range testCases {
- t.Run(tc.desc, func(t *testing.T) {
- restoreEnv := testhelper.TempEnv(tc.environment)
- defer restoreEnv()
-
- command, err := New(tc.executable, []string{}, basicConfig, nil)
- require.Nil(t, command)
- require.Equal(t, tc.expectedError, err)
- })
- }
-}