diff options
Diffstat (limited to 'pkg/commands/git_commands/git_command_builder_test.go')
-rw-r--r-- | pkg/commands/git_commands/git_command_builder_test.go | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/pkg/commands/git_commands/git_command_builder_test.go b/pkg/commands/git_commands/git_command_builder_test.go new file mode 100644 index 000000000..e3bc55ccf --- /dev/null +++ b/pkg/commands/git_commands/git_command_builder_test.go @@ -0,0 +1,56 @@ +package git_commands + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestGitCommandBuilder(t *testing.T) { + scenarios := []struct { + input string + expected string + }{ + { + input: NewGitCmd("push"). + Arg("--force-with-lease"). + Arg("--set-upstream"). + Arg("origin"). + Arg("master"). + ToString(), + expected: "git push --force-with-lease --set-upstream origin master", + }, + { + input: NewGitCmd("push").ArgIf(true, "--test").ToString(), + expected: "git push --test", + }, + { + input: NewGitCmd("push").ArgIf(false, "--test").ToString(), + expected: "git push", + }, + { + input: NewGitCmd("push").ArgIfElse(true, "-b", "-a").ToString(), + expected: "git push -b", + }, + { + input: NewGitCmd("push").ArgIfElse(false, "-a", "-b").ToString(), + expected: "git push -b", + }, + { + input: NewGitCmd("push").Args([]string{"-a", "-b"}).ToString(), + expected: "git push -a -b", + }, + { + input: NewGitCmd("push").Config("user.name=foo").Config("user.email=bar").ToString(), + expected: "git -c user.email=bar -c user.name=foo push", + }, + { + input: NewGitCmd("push").RepoPath("a/b/c").ToString(), + expected: "git -C a/b/c push", + }, + } + + for _, s := range scenarios { + assert.Equal(t, s.input, s.expected) + } +} |