summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2022-01-08 16:02:56 +1100
committerJesse Duffield <jessedduffield@gmail.com>2022-01-09 14:09:53 +1100
commitccf90466fa1d7ed32a7211115d46c59846dfd622 (patch)
tree1f835a00f20833e3ba5379900ef1437eaa464af3
parent16c9b5404d52f3e2b93de7262fff607b18f98cea (diff)
fix test
-rw-r--r--pkg/commands/git_commands/working_tree.go21
-rw-r--r--pkg/commands/git_commands/working_tree_test.go43
-rw-r--r--pkg/commands/git_config/cached_git_config_test.go6
-rw-r--r--pkg/commands/loaders/files.go2
-rw-r--r--pkg/commands/loaders/files_test.go12
5 files changed, 49 insertions, 35 deletions
diff --git a/pkg/commands/git_commands/working_tree.go b/pkg/commands/git_commands/working_tree.go
index 084643532..06a64baa6 100644
--- a/pkg/commands/git_commands/working_tree.go
+++ b/pkg/commands/git_commands/working_tree.go
@@ -233,7 +233,7 @@ func (self *WorkingTreeCommands) WorktreeFileDiffCmdObj(node models.IFile, plain
ignoreWhitespaceArg := ""
contextSize := self.UserConfig.Git.DiffContextSize
if cached {
- cachedArg = "--cached"
+ cachedArg = " --cached"
}
if !node.GetIsTracked() && !node.GetHasStagedChanges() && !cached {
trackedArg = "--no-index -- /dev/null"
@@ -242,10 +242,10 @@ func (self *WorkingTreeCommands) WorktreeFileDiffCmdObj(node models.IFile, plain
colorArg = "never"
}
if ignoreWhitespace {
- ignoreWhitespaceArg = "--ignore-all-space"
+ ignoreWhitespaceArg = " --ignore-all-space"
}
- cmdStr := fmt.Sprintf("git diff --submodule --no-ext-diff --unified=%d --color=%s %s %s %s %s", contextSize, colorArg, ignoreWhitespaceArg, cachedArg, trackedArg, quotedPath)
+ cmdStr := fmt.Sprintf("git diff --submodule --no-ext-diff --unified=%d --color=%s%s%s %s %s", contextSize, colorArg, ignoreWhitespaceArg, cachedArg, trackedArg, quotedPath)
return self.cmd.New(cmdStr).DontLog()
}
@@ -280,14 +280,14 @@ func (self *WorkingTreeCommands) ShowFileDiffCmdObj(from string, to string, reve
reverseFlag := ""
if reverse {
- reverseFlag = " -R "
+ reverseFlag = " -R"
}
return self.cmd.
New(
fmt.Sprintf(
- "git diff --submodule --no-ext-diff --unified=%d --no-renames --color=%s %s %s %s -- %s",
- contextSize, colorArg, from, to, reverseFlag, self.cmd.Quote(fileName)),
+ "git diff --submodule --no-ext-diff --unified=%d --no-renames --color=%s%s%s%s -- %s",
+ contextSize, colorArg, pad(from), pad(to), reverseFlag, self.cmd.Quote(fileName)),
).
DontLog()
}
@@ -345,3 +345,12 @@ func (self *WorkingTreeCommands) ResetSoft(ref string) error {
func (self *WorkingTreeCommands) ResetMixed(ref string) error {
return self.cmd.New("git reset --mixed " + self.cmd.Quote(ref)).Run()
}
+
+// so that we don't have unnecessary space in our commands we use this helper function to prepend spaces to args so that in the format string we can go '%s%s%s' and if any args are missing we won't have gaps.
+func pad(str string) string {
+ if str == "" {
+ return ""
+ }
+
+ return " " + str
+}
diff --git a/pkg/commands/git_commands/working_tree_test.go b/pkg/commands/git_commands/working_tree_test.go
index ef3aedcf9..8b2c70714 100644
--- a/pkg/commands/git_commands/working_tree_test.go
+++ b/pkg/commands/git_commands/working_tree_test.go
@@ -15,7 +15,7 @@ import (
func TestWorkingTreeStageFile(t *testing.T) {
runner := oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "add", "--", "test.txt"}, "", nil)
+ Expect(`git add -- "test.txt"`, "", nil)
instance := buildWorkingTreeCommands(commonDeps{runner: runner})
@@ -36,7 +36,7 @@ func TestWorkingTreeUnstageFile(t *testing.T) {
testName: "Remove an untracked file from staging",
reset: false,
runner: oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "rm", "--cached", "--force", "--", "test.txt"}, "", nil),
+ Expect(`git rm --cached --force -- "test.txt"`, "", nil),
test: func(err error) {
assert.NoError(t, err)
},
@@ -45,7 +45,7 @@ func TestWorkingTreeUnstageFile(t *testing.T) {
testName: "Remove a tracked file from staging",
reset: true,
runner: oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "reset", "HEAD", "--", "test.txt"}, "", nil),
+ Expect(`git reset HEAD -- "test.txt"`, "", nil),
test: func(err error) {
assert.NoError(t, err)
},
@@ -82,7 +82,7 @@ func TestWorkingTreeDiscardAllFileChanges(t *testing.T) {
},
removeFile: func(string) error { return nil },
runner: oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "reset", "--", "test"}, "", errors.New("error")),
+ Expect(`git reset -- "test"`, "", errors.New("error")),
expectedError: "error",
},
{
@@ -107,7 +107,7 @@ func TestWorkingTreeDiscardAllFileChanges(t *testing.T) {
},
removeFile: func(string) error { return nil },
runner: oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "checkout", "--", "test"}, "", errors.New("error")),
+ Expect(`git checkout -- "test"`, "", errors.New("error")),
expectedError: "error",
},
{
@@ -119,7 +119,7 @@ func TestWorkingTreeDiscardAllFileChanges(t *testing.T) {
},
removeFile: func(string) error { return nil },
runner: oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "checkout", "--", "test"}, "", nil),
+ Expect(`git checkout -- "test"`, "", nil),
expectedError: "",
},
{
@@ -131,8 +131,8 @@ func TestWorkingTreeDiscardAllFileChanges(t *testing.T) {
},
removeFile: func(string) error { return nil },
runner: oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "reset", "--", "test"}, "", nil).
- ExpectArgs([]string{"git", "checkout", "--", "test"}, "", nil),
+ Expect(`git reset -- "test"`, "", nil).
+ Expect(`git checkout -- "test"`, "", nil),
expectedError: "",
},
{
@@ -144,8 +144,8 @@ func TestWorkingTreeDiscardAllFileChanges(t *testing.T) {
},
removeFile: func(string) error { return nil },
runner: oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "reset", "--", "test"}, "", nil).
- ExpectArgs([]string{"git", "checkout", "--", "test"}, "", nil),
+ Expect(`git reset -- "test"`, "", nil).
+ Expect(`git checkout -- "test"`, "", nil),
expectedError: "",
},
{
@@ -161,7 +161,7 @@ func TestWorkingTreeDiscardAllFileChanges(t *testing.T) {
return nil
},
runner: oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "reset", "--", "test"}, "", nil),
+ Expect(`git reset -- "test"`, "", nil),
expectedError: "",
},
{
@@ -223,7 +223,7 @@ func TestWorkingTreeDiff(t *testing.T) {
ignoreWhitespace: false,
contextSize: 3,
runner: oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "diff", "--submodule", "--no-ext-diff", "--unified=3", "--color=always", "--", "test.txt"}, expectedResult, nil),
+ Expect(`git diff --submodule --no-ext-diff --unified=3 --color=always -- "test.txt"`, expectedResult, nil),
},
{
testName: "cached",
@@ -237,7 +237,7 @@ func TestWorkingTreeDiff(t *testing.T) {
ignoreWhitespace: false,
contextSize: 3,
runner: oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "diff", "--submodule", "--no-ext-diff", "--unified=3", "--color=always", "--cached", "--", "test.txt"}, expectedResult, nil),
+ Expect(`git diff --submodule --no-ext-diff --unified=3 --color=always --cached -- "test.txt"`, expectedResult, nil),
},
{
testName: "plain",
@@ -251,7 +251,7 @@ func TestWorkingTreeDiff(t *testing.T) {
ignoreWhitespace: false,
contextSize: 3,
runner: oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "diff", "--submodule", "--no-ext-diff", "--unified=3", "--color=never", "--", "test.txt"}, expectedResult, nil),
+ Expect(`git diff --submodule --no-ext-diff --unified=3 --color=never -- "test.txt"`, expectedResult, nil),
},
{
testName: "File not tracked and file has no staged changes",
@@ -265,7 +265,7 @@ func TestWorkingTreeDiff(t *testing.T) {
ignoreWhitespace: false,
contextSize: 3,
runner: oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "diff", "--submodule", "--no-ext-diff", "--unified=3", "--color=always", "--no-index", "--", "/dev/null", "test.txt"}, expectedResult, nil),
+ Expect(`git diff --submodule --no-ext-diff --unified=3 --color=always --no-index -- /dev/null "test.txt"`, expectedResult, nil),
},
{
testName: "Default case (ignore whitespace)",
@@ -279,7 +279,7 @@ func TestWorkingTreeDiff(t *testing.T) {
ignoreWhitespace: true,
contextSize: 3,
runner: oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "diff", "--submodule", "--no-ext-diff", "--unified=3", "--color=always", "--ignore-all-space", "--", "test.txt"}, expectedResult, nil),
+ Expect(`git diff --submodule --no-ext-diff --unified=3 --color=always --ignore-all-space -- "test.txt"`, expectedResult, nil),
},
{
testName: "Show diff with custom context size",
@@ -293,7 +293,7 @@ func TestWorkingTreeDiff(t *testing.T) {
ignoreWhitespace: false,
contextSize: 17,
runner: oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "diff", "--submodule", "--no-ext-diff", "--unified=17", "--color=always", "--", "test.txt"}, expectedResult, nil),
+ Expect(`git diff --submodule --no-ext-diff --unified=17 --color=always -- "test.txt"`, expectedResult, nil),
},
}
@@ -333,7 +333,7 @@ func TestWorkingTreeShowFileDiff(t *testing.T) {
plain: false,
contextSize: 3,
runner: oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "diff", "--submodule", "--no-ext-diff", "--unified=3", "--no-renames", "--color=always", "1234567890", "0987654321", "--", "test.txt"}, expectedResult, nil),
+ Expect(`git diff --submodule --no-ext-diff --unified=3 --no-renames --color=always 1234567890 0987654321 -- "test.txt"`, expectedResult, nil),
},
{
testName: "Show diff with custom context size",
@@ -343,7 +343,7 @@ func TestWorkingTreeShowFileDiff(t *testing.T) {
plain: false,
contextSize: 123,
runner: oscommands.NewFakeRunner(t).
- ExpectArgs([]string{"git", "diff", "--submodule", "--no-ext-diff", "--unified=123", "--no-renames", "--color=always", "1234567890", "0987654321", "--", "test.txt"}, expectedResult, nil),
+ Expect(`git diff --submodule --no-ext-diff --unified=123 --no-renames --color=always 1234567890 0987654321 -- "test.txt"`, expectedResult, nil),
},
}
@@ -416,8 +416,9 @@ func TestWorkingTreeApplyPatch(t *testing.T) {
expectFn := func(regexStr string, errToReturn error) func(cmdObj oscommands.ICmdObj) (string, error) {
return func(cmdObj oscommands.ICmdObj) (string, error) {
re := regexp.MustCompile(regexStr)
- matches := re.FindStringSubmatch(cmdObj.ToString())
- assert.Equal(t, 2, len(matches))
+ cmdStr := cmdObj.ToString()
+ matches := re.FindStringSubmatch(cmdStr)
+ assert.Equal(t, 2, len(matches), fmt.Sprintf("unexpected command: %s", cmdStr))
filename := matches[1]
diff --git a/pkg/commands/git_config/cached_git_config_test.go b/pkg/commands/git_config/cached_git_config_test.go
index 1e58b2bf6..6ba2c5b91 100644
--- a/pkg/commands/git_config/cached_git_config_test.go
+++ b/pkg/commands/git_config/cached_git_config_test.go
@@ -55,7 +55,7 @@ func TestGetBool(t *testing.T) {
fake := NewFakeGitConfig(s.mockResponses)
real := NewCachedGitConfig(
func(cmd *exec.Cmd) (string, error) {
- assert.Equal(t, "git config --get --null commit.gpgsign", strings.Join(cmd.Args, " "))
+ assert.Equal(t, "config --get --null commit.gpgsign", strings.Join(cmd.Args[1:], " "))
return fake.Get("commit.gpgsign"), nil
},
utils.NewDummyLog(),
@@ -92,7 +92,7 @@ func TestGet(t *testing.T) {
fake := NewFakeGitConfig(s.mockResponses)
real := NewCachedGitConfig(
func(cmd *exec.Cmd) (string, error) {
- assert.Equal(t, "git config --get --null commit.gpgsign", strings.Join(cmd.Args, " "))
+ assert.Equal(t, "config --get --null commit.gpgsign", strings.Join(cmd.Args[1:], " "))
return fake.Get("commit.gpgsign"), nil
},
utils.NewDummyLog(),
@@ -107,7 +107,7 @@ func TestGet(t *testing.T) {
real := NewCachedGitConfig(
func(cmd *exec.Cmd) (string, error) {
count++
- assert.Equal(t, "git config --get --null commit.gpgsign", strings.Join(cmd.Args, " "))
+ assert.Equal(t, "config --get --null commit.gpgsign", strings.Join(cmd.Args[1:], " "))
return "blah", nil
},
utils.NewDummyLog(),
diff --git a/pkg/commands/loaders/files.go b/pkg/commands/loaders/files.go
index 3baa84c7c..1e056cb98 100644
--- a/pkg/commands/loaders/files.go
+++ b/pkg/commands/loaders/files.go
@@ -4,7 +4,6 @@ import (
"fmt"
"strings"
- "github.com/jesseduffield/lazygit/pkg/commands/git_config"
"github.com/jesseduffield/lazygit/pkg/commands/models"
"github.com/jesseduffield/lazygit/pkg/commands/oscommands"
"github.com/jesseduffield/lazygit/pkg/common"
@@ -19,7 +18,6 @@ type FileLoader struct {
*common.Common
cmd oscommands.ICmdObjBuilder
config FileLoaderConfig
- gitConfig git_config.IGitConfig
getFileType func(string) string
}
diff --git a/pkg/commands/loaders/files_test.go b/pkg/commands/loaders/files_test.go
index 825164e01..b860a1470 100644
--- a/pkg/commands/loaders/files_test.go
+++ b/pkg/commands/loaders/files_test.go
@@ -3,7 +3,6 @@ package loaders
import (
"testing"
- "github.com/jesseduffield/lazygit/pkg/commands/git_config"
"github.com/jesseduffield/lazygit/pkg/commands/models"
"github.com/jesseduffield/lazygit/pkg/commands/oscommands"
"github.com/jesseduffield/lazygit/pkg/utils"
@@ -189,12 +188,11 @@ func TestFileGetStatusFiles(t *testing.T) {
s := s
t.Run(s.testName, func(t *testing.T) {
cmd := oscommands.NewDummyCmdObjBuilder(s.runner)
- gitConfig := git_config.NewFakeGitConfig(map[string]string{"status.showUntrackedFiles": "yes"})
loader := &FileLoader{
Common: utils.NewDummyCommon(),
cmd: cmd,
- gitConfig: gitConfig,
+ config: &FakeFileLoaderConfig{showUntrackedFiles: "yes"},
getFileType: func(string) string { return "file" },
}
@@ -202,3 +200,11 @@ func TestFileGetStatusFiles(t *testing.T) {
})
}
}
+
+type FakeFileLoaderConfig struct {
+ showUntrackedFiles string
+}
+
+func (self *FakeFileLoaderConfig) GetShowUntrackedFiles() string {
+ return self.showUntrackedFiles
+}