2021-04-10 03:40:42 +02:00
|
|
|
package commands
|
|
|
|
|
|
|
|
import (
|
|
|
|
"os/exec"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/jesseduffield/lazygit/pkg/secureexec"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
|
|
|
// TestGitCommandStashDo is a function.
|
|
|
|
func TestGitCommandStashDo(t *testing.T) {
|
|
|
|
gitCmd := NewDummyGitCommand()
|
|
|
|
gitCmd.OSCommand.Command = func(cmd string, args ...string) *exec.Cmd {
|
|
|
|
assert.EqualValues(t, "git", cmd)
|
|
|
|
assert.EqualValues(t, []string{"stash", "drop", "stash@{1}"}, args)
|
|
|
|
|
|
|
|
return secureexec.Command("echo")
|
|
|
|
}
|
|
|
|
|
|
|
|
assert.NoError(t, gitCmd.StashDo(1, "drop"))
|
|
|
|
}
|
|
|
|
|
|
|
|
// TestGitCommandStashSave is a function.
|
|
|
|
func TestGitCommandStashSave(t *testing.T) {
|
|
|
|
gitCmd := NewDummyGitCommand()
|
|
|
|
gitCmd.OSCommand.Command = func(cmd string, args ...string) *exec.Cmd {
|
|
|
|
assert.EqualValues(t, "git", cmd)
|
|
|
|
assert.EqualValues(t, []string{"stash", "save", "A stash message"}, args)
|
|
|
|
|
|
|
|
return secureexec.Command("echo")
|
|
|
|
}
|
|
|
|
|
|
|
|
assert.NoError(t, gitCmd.StashSave("A stash message"))
|
|
|
|
}
|
2021-09-11 00:47:50 +02:00
|
|
|
|
|
|
|
// TestGitCommandShowStashEntryCmdStr is a function.
|
|
|
|
func TestGitCommandShowStashEntryCmdStr(t *testing.T) {
|
|
|
|
type scenario struct {
|
|
|
|
testName string
|
|
|
|
index int
|
|
|
|
contextSize int
|
|
|
|
expected string
|
|
|
|
}
|
|
|
|
|
|
|
|
scenarios := []scenario{
|
|
|
|
{
|
|
|
|
testName: "Default case",
|
|
|
|
index: 5,
|
|
|
|
contextSize: 3,
|
|
|
|
expected: "git stash show -p --stat --color=always --unified=3 stash@{5}",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
testName: "Show diff with custom context size",
|
|
|
|
index: 5,
|
|
|
|
contextSize: 77,
|
|
|
|
expected: "git stash show -p --stat --color=always --unified=77 stash@{5}",
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, s := range scenarios {
|
|
|
|
t.Run(s.testName, func(t *testing.T) {
|
|
|
|
gitCmd := NewDummyGitCommand()
|
|
|
|
gitCmd.Config.GetUserConfig().Git.DiffContextSize = s.contextSize
|
|
|
|
cmdStr := gitCmd.ShowStashEntryCmdStr(s.index)
|
|
|
|
assert.Equal(t, s.expected, cmdStr)
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|