summaryrefslogtreecommitdiffstats
path: root/pkg/commands/loading_files_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/commands/loading_files_test.go')
-rw-r--r--pkg/commands/loading_files_test.go227
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{}))
- })
- }
-}