diff options
author | Ryooooooga <eial5q265e5@gmail.com> | 2021-08-16 23:15:37 +0900 |
---|---|---|
committer | Ryooooooga <eial5q265e5@gmail.com> | 2021-08-16 23:15:37 +0900 |
commit | f96674b24bc161851a22a9207c84350006b65455 (patch) | |
tree | 411183e62d9f53fc08b549af1cb2cba1fdf36541 /pkg/commands/loading_files_test.go | |
parent | a553f7fb772bec3c97d9981ba0cd14d5ab39e8d4 (diff) |
Fix error when filename contains ` -> `
Diffstat (limited to 'pkg/commands/loading_files_test.go')
-rw-r--r-- | pkg/commands/loading_files_test.go | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/pkg/commands/loading_files_test.go b/pkg/commands/loading_files_test.go index eefb8f924..456e4aca7 100644 --- a/pkg/commands/loading_files_test.go +++ b/pkg/commands/loading_files_test.go @@ -139,6 +139,81 @@ func TestGitCommandGetStatusFiles(t *testing.T) { assert.EqualValues(t, expected, files) }, }, + { + "Renamed files", + func(cmd string, args ...string) *exec.Cmd { + return secureexec.Command( + "printf", + `R after1.txt\0before1.txt\0RM after2.txt\0before2.txt`, + ) + }, + func(files []*models.File) { + assert.Len(t, files, 2) + + expected := []*models.File{ + { + Name: "after1.txt", + PreviousName: "before1.txt", + HasStagedChanges: true, + HasUnstagedChanges: false, + Tracked: true, + Added: false, + Deleted: false, + HasMergeConflicts: false, + HasInlineMergeConflicts: false, + DisplayString: "R before1.txt -> after1.txt", + Type: "other", + ShortStatus: "R ", + }, + { + Name: "after2.txt", + PreviousName: "before2.txt", + HasStagedChanges: true, + HasUnstagedChanges: true, + Tracked: true, + Added: false, + Deleted: false, + HasMergeConflicts: false, + HasInlineMergeConflicts: false, + DisplayString: "RM before2.txt -> after2.txt", + Type: "other", + ShortStatus: "RM", + }, + } + + assert.EqualValues(t, expected, files) + }, + }, + { + "File with arrow in name", + func(cmd string, args ...string) *exec.Cmd { + return secureexec.Command( + "printf", + `?? a -> b.txt`, + ) + }, + func(files []*models.File) { + assert.Len(t, files, 1) + + expected := []*models.File{ + { + Name: "a -> b.txt", + HasStagedChanges: false, + HasUnstagedChanges: true, + Tracked: false, + Added: true, + Deleted: false, + HasMergeConflicts: false, + HasInlineMergeConflicts: false, + DisplayString: "?? a -> b.txt", + Type: "other", + ShortStatus: "??", + }, + } + + assert.EqualValues(t, expected, files) + }, + }, } for _, s := range scenarios { |