summaryrefslogtreecommitdiffstats
path: root/pkg/commands/loading_stash_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/commands/loading_stash_test.go')
-rw-r--r--pkg/commands/loading_stash_test.go61
1 files changed, 61 insertions, 0 deletions
diff --git a/pkg/commands/loading_stash_test.go b/pkg/commands/loading_stash_test.go
new file mode 100644
index 000000000..ea1f86ec1
--- /dev/null
+++ b/pkg/commands/loading_stash_test.go
@@ -0,0 +1,61 @@
+package commands
+
+import (
+ "os/exec"
+ "testing"
+
+ "github.com/jesseduffield/lazygit/pkg/commands/models"
+ "github.com/jesseduffield/lazygit/pkg/secureexec"
+ "github.com/stretchr/testify/assert"
+)
+
+// TestGitCommandGetStashEntries is a function.
+func TestGitCommandGetStashEntries(t *testing.T) {
+ type scenario struct {
+ testName string
+ command func(string, ...string) *exec.Cmd
+ test func([]*models.StashEntry)
+ }
+
+ scenarios := []scenario{
+ {
+ "No stash entries found",
+ func(string, ...string) *exec.Cmd {
+ return secureexec.Command("echo")
+ },
+ func(entries []*models.StashEntry) {
+ assert.Len(t, entries, 0)
+ },
+ },
+ {
+ "Several stash entries found",
+ func(string, ...string) *exec.Cmd {
+ return secureexec.Command("echo", "WIP on add-pkg-commands-test: 55c6af2 increase parallel build\nWIP on master: bb86a3f update github template")
+ },
+ func(entries []*models.StashEntry) {
+ expected := []*models.StashEntry{
+ {
+ Index: 0,
+ Name: "WIP on add-pkg-commands-test: 55c6af2 increase parallel build",
+ },
+ {
+ Index: 1,
+ Name: "WIP on master: bb86a3f update github template",
+ },
+ }
+
+ assert.Len(t, entries, 2)
+ assert.EqualValues(t, expected, entries)
+ },
+ },
+ }
+
+ for _, s := range scenarios {
+ t.Run(s.testName, func(t *testing.T) {
+ gitCmd := NewDummyGitCommand()
+ gitCmd.OSCommand.Command = s.command
+
+ s.test(gitCmd.GetStashEntries(""))
+ })
+ }
+}