summaryrefslogtreecommitdiffstats
path: root/pkg/gui/filetree
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2022-01-26 01:20:19 +1100
committerJesse Duffield <jessedduffield@gmail.com>2022-01-26 14:50:47 +1100
commitc8cc18920f0b5ab54a19b9f7bdcf83db3210576f (patch)
tree60623fbe5504469b9a4f4ca25a9a538b4eee52ce /pkg/gui/filetree
parentce3bcfe37cf0c68f501fb09d543e9e212b0eaa61 (diff)
improve merge conflict flow
Diffstat (limited to 'pkg/gui/filetree')
-rw-r--r--pkg/gui/filetree/file_node_test.go29
-rw-r--r--pkg/gui/filetree/file_tree_view_model.go10
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