jesseduffield.lazygit/pkg/gui/filetree/file_tree_view_model_test.go
2026-08-15 14:58:27 +02:00

33 lines
834 B
Go

package filetree
import (
"testing"
"github.com/jesseduffield/lazygit/pkg/commands/models"
"github.com/jesseduffield/lazygit/pkg/common"
"github.com/stretchr/testify/assert"
)
func TestSetStatusFilterPreservingSelection(t *testing.T) {
files := []*models.File{
{Path: "file1"},
{Path: "file2", HasMergeConflicts: true},
{Path: "file3", HasMergeConflicts: true},
}
viewModel := NewFileTreeViewModel(
func() []*models.File { return files },
common.NewDummyCommon(),
false,
)
viewModel.SetTree()
viewModel.SetStatusFilter(DisplayConflicted)
viewModel.SetSelection(viewModel.Len() - 2)
viewModel.ToggleStickyRange()
viewModel.MoveSelectedLine(1)
viewModel.SetStatusFilterPreservingSelection(DisplayAll)
assert.Equal(t, "file3", viewModel.GetSelectedPath())
assert.False(t, viewModel.IsSelectingRange())
}