diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2023-05-21 17:00:29 +1000 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2023-05-23 19:49:19 +1000 |
commit | 63dc07fdedec58ae5836a601d9c8839d0481eda6 (patch) | |
tree | e49ce7cf9284ebebfd9d4f4d87311418a8993913 /pkg/commands/git_commands/file_loader_test.go | |
parent | 70e473b25d05d94f07c9d5c7751aaf826e7ad08d (diff) |
Construct arg vector manually rather than parse string
By constructing an arg vector manually, we no longer need to quote arguments
Mandate that args must be passed when building a command
Now you need to provide an args array when building a command.
There are a handful of places where we need to deal with a string,
such as with user-defined custom commands, and for those we now require
that at the callsite they use str.ToArgv to do that. I don't want
to provide a method out of the box for it because I want to discourage its
use.
For some reason we were invoking a command through a shell when amending a
commit, and I don't believe we needed to do that as there was nothing user-
supplied about the command. So I've switched to using a regular command out-
side the shell there
Diffstat (limited to 'pkg/commands/git_commands/file_loader_test.go')
-rw-r--r-- | pkg/commands/git_commands/file_loader_test.go | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/pkg/commands/git_commands/file_loader_test.go b/pkg/commands/git_commands/file_loader_test.go index fac93eb52..02ea390a7 100644 --- a/pkg/commands/git_commands/file_loader_test.go +++ b/pkg/commands/git_commands/file_loader_test.go @@ -20,14 +20,13 @@ func TestFileGetStatusFiles(t *testing.T) { { "No files found", oscommands.NewFakeRunner(t). - Expect(`git status --untracked-files=yes --porcelain -z`, "", nil), + ExpectGitArgs([]string{"status", "--untracked-files=yes", "--porcelain", "-z"}, "", nil), []*models.File{}, }, { "Several files found", oscommands.NewFakeRunner(t). - Expect( - `git status --untracked-files=yes --porcelain -z`, + ExpectGitArgs([]string{"status", "--untracked-files=yes", "--porcelain", "-z"}, "MM file1.txt\x00A file3.txt\x00AM file2.txt\x00?? file4.txt\x00UU file5.txt", nil, ), @@ -102,7 +101,7 @@ func TestFileGetStatusFiles(t *testing.T) { { "File with new line char", oscommands.NewFakeRunner(t). - Expect(`git status --untracked-files=yes --porcelain -z`, "MM a\nb.txt", nil), + ExpectGitArgs([]string{"status", "--untracked-files=yes", "--porcelain", "-z"}, "MM a\nb.txt", nil), []*models.File{ { Name: "a\nb.txt", @@ -122,8 +121,7 @@ func TestFileGetStatusFiles(t *testing.T) { { "Renamed files", oscommands.NewFakeRunner(t). - Expect( - `git status --untracked-files=yes --porcelain -z`, + ExpectGitArgs([]string{"status", "--untracked-files=yes", "--porcelain", "-z"}, "R after1.txt\x00before1.txt\x00RM after2.txt\x00before2.txt", nil, ), @@ -161,8 +159,7 @@ func TestFileGetStatusFiles(t *testing.T) { { "File with arrow in name", oscommands.NewFakeRunner(t). - Expect( - `git status --untracked-files=yes --porcelain -z`, + ExpectGitArgs([]string{"status", "--untracked-files=yes", "--porcelain", "-z"}, `?? a -> b.txt`, nil, ), |