From d6b4d4b063e4def1fbdeea5a90e31cdb2fb1a00b Mon Sep 17 00:00:00 2001 From: Anthony HAMON Date: Tue, 28 Aug 2018 20:55:14 +0200 Subject: [PATCH] add tests for MergesStatusFiles --- pkg/commands/git.go | 4 +-- pkg/commands/git_test.go | 75 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 2 deletions(-) diff --git a/pkg/commands/git.go b/pkg/commands/git.go index 5a4d910d3..0cedb2150 100644 --- a/pkg/commands/git.go +++ b/pkg/commands/git.go @@ -121,10 +121,10 @@ func (c *GitCommand) MergeStatusFiles(oldFiles, newFiles []File) []File { return newFiles } - appendedIndexes := make([]int, 0) + appendedIndexes := []int{} // retain position of files we already could see - result := make([]File, 0) + result := []File{} for _, oldFile := range oldFiles { for newIndex, newFile := range newFiles { if oldFile.Name == newFile.Name { diff --git a/pkg/commands/git_test.go b/pkg/commands/git_test.go index 920f527a8..2380887e1 100644 --- a/pkg/commands/git_test.go +++ b/pkg/commands/git_test.go @@ -185,6 +185,81 @@ func TestGitCommandStashSave(t *testing.T) { assert.NoError(t, gitCmd.StashSave("A stash message")) } +func TestGitCommandMergeStatusFiles(t *testing.T) { + type scenario struct { + oldFiles []File + newFiles []File + test func([]File) + } + + scenarios := []scenario{ + { + []File{}, + []File{ + { + Name: "new_file.txt", + }, + }, + func(files []File) { + expected := []File{ + { + Name: "new_file.txt", + }, + } + + assert.Len(t, files, 1) + assert.EqualValues(t, expected, files) + }, + }, + { + []File{ + { + Name: "new_file1.txt", + }, + { + Name: "new_file2.txt", + }, + { + Name: "new_file3.txt", + }, + }, + []File{ + { + Name: "new_file4.txt", + }, + { + Name: "new_file5.txt", + }, + { + Name: "new_file1.txt", + }, + }, + func(files []File) { + expected := []File{ + { + Name: "new_file1.txt", + }, + { + Name: "new_file4.txt", + }, + { + Name: "new_file5.txt", + }, + } + + assert.Len(t, files, 3) + assert.EqualValues(t, expected, files) + }, + }, + } + + for _, s := range scenarios { + gitCmd := newDummyGitCommand() + + s.test(gitCmd.MergeStatusFiles(s.oldFiles, s.newFiles)) + } +} + func TestGitCommandDiff(t *testing.T) { gitCommand := newDummyGitCommand() assert.NoError(t, test.GenerateRepo("lots_of_diffs.sh"))