diff options
Diffstat (limited to 'pkg/commands/loading_files_test.go')
-rw-r--r-- | pkg/commands/loading_files_test.go | 227 |
1 files changed, 0 insertions, 227 deletions
diff --git a/pkg/commands/loading_files_test.go b/pkg/commands/loading_files_test.go deleted file mode 100644 index 456e4aca7..000000000 --- a/pkg/commands/loading_files_test.go +++ /dev/null @@ -1,227 +0,0 @@ -package commands - -import ( - "os/exec" - "testing" - - "github.com/jesseduffield/lazygit/pkg/commands/models" - "github.com/jesseduffield/lazygit/pkg/secureexec" - "github.com/stretchr/testify/assert" -) - -// TestGitCommandGetStatusFiles is a function. -func TestGitCommandGetStatusFiles(t *testing.T) { - type scenario struct { - testName string - command func(string, ...string) *exec.Cmd - test func([]*models.File) - } - - scenarios := []scenario{ - { - "No files found", - func(cmd string, args ...string) *exec.Cmd { - return secureexec.Command("echo") - }, - func(files []*models.File) { - assert.Len(t, files, 0) - }, - }, - { - "Several files found", - func(cmd string, args ...string) *exec.Cmd { - return secureexec.Command( - "printf", - `MM file1.txt\0A file3.txt\0AM file2.txt\0?? file4.txt\0UU file5.txt`, - ) - }, - func(files []*models.File) { - assert.Len(t, files, 5) - - expected := []*models.File{ - { - Name: "file1.txt", - HasStagedChanges: true, - HasUnstagedChanges: true, - Tracked: true, - Added: false, - Deleted: false, - HasMergeConflicts: false, - HasInlineMergeConflicts: false, - DisplayString: "MM file1.txt", - Type: "other", - ShortStatus: "MM", - }, - { - Name: "file3.txt", - HasStagedChanges: true, - HasUnstagedChanges: false, - Tracked: false, - Added: true, - Deleted: false, - HasMergeConflicts: false, - HasInlineMergeConflicts: false, - DisplayString: "A file3.txt", - Type: "other", - ShortStatus: "A ", - }, - { - Name: "file2.txt", - HasStagedChanges: true, - HasUnstagedChanges: true, - Tracked: false, - Added: true, - Deleted: false, - HasMergeConflicts: false, - HasInlineMergeConflicts: false, - DisplayString: "AM file2.txt", - Type: "other", - ShortStatus: "AM", - }, - { - Name: "file4.txt", - HasStagedChanges: false, - HasUnstagedChanges: true, - Tracked: false, - Added: true, - Deleted: false, - HasMergeConflicts: false, - HasInlineMergeConflicts: false, - DisplayString: "?? file4.txt", - Type: "other", - ShortStatus: "??", - }, - { - Name: "file5.txt", - HasStagedChanges: false, - HasUnstagedChanges: true, - Tracked: true, - Added: false, - Deleted: false, - HasMergeConflicts: true, - HasInlineMergeConflicts: true, - DisplayString: "UU file5.txt", - Type: "other", - ShortStatus: "UU", - }, - } - - assert.EqualValues(t, expected, files) - }, - }, - { - "File with new line char", - func(cmd string, args ...string) *exec.Cmd { - return secureexec.Command( - "printf", - `MM a\nb.txt`, - ) - }, - func(files []*models.File) { - assert.Len(t, files, 1) - - expected := []*models.File{ - { - Name: "a\nb.txt", - HasStagedChanges: true, - HasUnstagedChanges: true, - Tracked: true, - Added: false, - Deleted: false, - HasMergeConflicts: false, - HasInlineMergeConflicts: false, - DisplayString: "MM a\nb.txt", - Type: "other", - ShortStatus: "MM", - }, - } - - 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 { - t.Run(s.testName, func(t *testing.T) { - gitCmd := NewDummyGitCommand() - gitCmd.OSCommand.Command = s.command - - s.test(gitCmd.GetStatusFiles(GetStatusFileOptions{})) - }) - } -} |