summaryrefslogtreecommitdiffstats
path: root/pkg/commands/git_commands/file_loader_test.go
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2023-05-21 17:00:29 +1000
committerJesse Duffield <jessedduffield@gmail.com>2023-05-23 19:49:19 +1000
commit63dc07fdedec58ae5836a601d9c8839d0481eda6 (patch)
treee49ce7cf9284ebebfd9d4f4d87311418a8993913 /pkg/commands/git_commands/file_loader_test.go
parent70e473b25d05d94f07c9d5c7751aaf826e7ad08d (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.go13
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,
),