diff --git a/pkg/commands/stash_entries.go b/pkg/commands/stash_entries.go index 2707903d7..9c56c78dc 100644 --- a/pkg/commands/stash_entries.go +++ b/pkg/commands/stash_entries.go @@ -15,7 +15,7 @@ func (c *GitCommand) StashSave(message string) error { // GetStashEntryDiff stash diff func (c *GitCommand) ShowStashEntryCmdStr(index int) string { - return fmt.Sprintf("git stash show -p --stat --color=%s stash@{%d}", c.colorArg(), index) + return fmt.Sprintf("git stash show -p --stat --color=%s --unified=%d stash@{%d}", c.colorArg(), c.Config.GetUserConfig().Git.DiffContextSize, index) } // StashSaveStagedChanges stashes only the currently staged changes. This takes a few steps diff --git a/pkg/commands/stash_entries_test.go b/pkg/commands/stash_entries_test.go index bb4778dc6..29a9dc36f 100644 --- a/pkg/commands/stash_entries_test.go +++ b/pkg/commands/stash_entries_test.go @@ -33,3 +33,37 @@ func TestGitCommandStashSave(t *testing.T) { assert.NoError(t, gitCmd.StashSave("A stash message")) } + +// 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) + }) + } +}