diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2022-01-26 01:20:19 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2022-01-26 14:50:47 +1100 |
commit | c8cc18920f0b5ab54a19b9f7bdcf83db3210576f (patch) | |
tree | 60623fbe5504469b9a4f4ca25a9a538b4eee52ce /pkg/gui/filetree | |
parent | ce3bcfe37cf0c68f501fb09d543e9e212b0eaa61 (diff) |
improve merge conflict flow
Diffstat (limited to 'pkg/gui/filetree')
-rw-r--r-- | pkg/gui/filetree/file_node_test.go | 29 | ||||
-rw-r--r-- | pkg/gui/filetree/file_tree_view_model.go | 10 |
2 files changed, 39 insertions, 0 deletions
diff --git a/pkg/gui/filetree/file_node_test.go b/pkg/gui/filetree/file_node_test.go index 228b2036a..8961015ac 100644 --- a/pkg/gui/filetree/file_node_test.go +++ b/pkg/gui/filetree/file_node_test.go @@ -132,3 +132,32 @@ func TestCompress(t *testing.T) { }) } } + +func TestGetFile(t *testing.T) { + scenarios := []struct { + name string + viewModel *FileTreeViewModel + path string + expected *models.File + }{ + { + name: "valid case", + viewModel: NewFileTreeViewModel([]*models.File{{Name: "blah/one"}, {Name: "blah/two"}}, nil, false), + path: "blah/two", + expected: &models.File{Name: "blah/two"}, + }, + { + name: "not found", + viewModel: NewFileTreeViewModel([]*models.File{{Name: "blah/one"}, {Name: "blah/two"}}, nil, false), + path: "blah/three", + expected: nil, + }, + } + + for _, s := range scenarios { + s := s + t.Run(s.name, func(t *testing.T) { + assert.EqualValues(t, s.expected, s.viewModel.GetFile(s.path)) + }) + } +} diff --git a/pkg/gui/filetree/file_tree_view_model.go b/pkg/gui/filetree/file_tree_view_model.go index d12814976..7e8497c96 100644 --- a/pkg/gui/filetree/file_tree_view_model.go +++ b/pkg/gui/filetree/file_tree_view_model.go @@ -86,6 +86,16 @@ func (self *FileTreeViewModel) GetItemAtIndex(index int) *FileNode { return self.tree.GetNodeAtIndex(index+1, self.collapsedPaths) // ignoring root } +func (self *FileTreeViewModel) GetFile(path string) *models.File { + for _, file := range self.files { + if file.Name == path { + return file + } + } + + return nil +} + func (self *FileTreeViewModel) GetIndexForPath(path string) (int, bool) { index, found := self.tree.GetIndexForPath(path, self.collapsedPaths) return index - 1, found |