summaryrefslogtreecommitdiff
path: root/go/internal/command/fallback/fallback_test.go
diff options
context:
space:
mode:
authorPatrick Bajao <ebajao@gitlab.com>2019-08-02 16:10:17 +0800
committerPatrick Bajao <ebajao@gitlab.com>2019-08-02 16:10:17 +0800
commit3b6f9f7583755e041e76142d7caf7716937907fa (patch)
treeed7f7281633d97933e4465a2ac0f86d62c9a216e /go/internal/command/fallback/fallback_test.go
parent592823d5e25006331b361b36cc61df7802fc1938 (diff)
downloadgitlab-shell-3b6f9f7583755e041e76142d7caf7716937907fa.tar.gz
This struct is responsible for determining the name and root dir of the executable. The `RootDir` property will be used to find the config. The `Name` property will be used to determine what `Command` and `CommandArgs` to be built.
Diffstat (limited to 'go/internal/command/fallback/fallback_test.go')
-rw-r--r--go/internal/command/fallback/fallback_test.go33
1 files changed, 11 insertions, 22 deletions
diff --git a/go/internal/command/fallback/fallback_test.go b/go/internal/command/fallback/fallback_test.go
index 669aad1..7485084 100644
--- a/go/internal/command/fallback/fallback_test.go
+++ b/go/internal/command/fallback/fallback_test.go
@@ -8,6 +8,7 @@ import (
"github.com/stretchr/testify/require"
"gitlab.com/gitlab-org/gitlab-shell/go/internal/command/commandargs"
+ "gitlab.com/gitlab-org/gitlab-shell/go/internal/executable"
)
type fakeExec struct {
@@ -20,26 +21,8 @@ type fakeExec struct {
Env []string
}
-type FakeCommandArgs struct {
- executable commandargs.Executable
- arguments []string
-}
-
-func (f *FakeCommandArgs) Parse() error {
- // Do nothing as no need to parse anything
- return nil
-}
-
-func (f *FakeCommandArgs) Executable() commandargs.Executable {
- return f.executable
-}
-
-func (f *FakeCommandArgs) Arguments() []string {
- return f.arguments
-}
-
var (
- fakeArgs = &FakeCommandArgs{executable: commandargs.GitlabShell, arguments: []string{"foo", "bar"}}
+ fakeArgs = &commandargs.GenericArgs{Arguments: []string{"foo", "bar"}}
)
func (f *fakeExec) Exec(filename string, args []string, env []string) error {
@@ -62,7 +45,7 @@ func (f *fakeExec) Cleanup() {
}
func TestExecuteExecsCommandSuccesfully(t *testing.T) {
- cmd := &Command{RootDir: "/tmp", Args: fakeArgs}
+ cmd := &Command{Executable: &executable.Executable{Name: executable.GitlabShell}, RootDir: "/tmp", Args: fakeArgs}
// Override the exec func
fake := &fakeExec{}
@@ -76,8 +59,14 @@ func TestExecuteExecsCommandSuccesfully(t *testing.T) {
require.Equal(t, fake.Env, os.Environ())
}
+func TestExecuteExecsUnknownExecutable(t *testing.T) {
+ cmd := &Command{Executable: &executable.Executable{Name: "unknown"}, RootDir: "/test"}
+
+ require.Error(t, cmd.Execute())
+}
+
func TestExecuteExecsCommandOnError(t *testing.T) {
- cmd := &Command{RootDir: "/test", Args: fakeArgs}
+ cmd := &Command{Executable: &executable.Executable{Name: executable.GitlabShell}, RootDir: "/test", Args: fakeArgs}
// Override the exec func
fake := &fakeExec{Error: errors.New("Test error")}
@@ -89,7 +78,7 @@ func TestExecuteExecsCommandOnError(t *testing.T) {
}
func TestExecuteGivenNonexistentCommand(t *testing.T) {
- cmd := &Command{RootDir: "/tmp/does/not/exist", Args: fakeArgs}
+ cmd := &Command{Executable: &executable.Executable{Name: executable.GitlabShell}, RootDir: "/tmp/does/not/exist", Args: fakeArgs}
require.Error(t, cmd.Execute())
}