diff options
author | Nick Thomas <nick@gitlab.com> | 2019-10-17 12:04:52 +0100 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2019-10-18 11:47:25 +0100 |
commit | 83d11f4deeb20b852a0af3433190a0f7250a0027 (patch) | |
tree | 1a9df18d6f9f59712c6f5c98e995a4918eb94a11 /go/internal/command/command_test.go | |
parent | 7d5229db263a62661653431881bef8b46984d0de (diff) | |
download | gitlab-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.go | 146 |
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) - }) - } -} |