Change summary
internal/tui/exp/list/list_test.go | 20
internal/tui/exp/list/testdata/TestListSelection/should_skip_none_selectable_items_in_the_middle.golden | 7
2 files changed, 27 insertions(+)
Detailed changes
@@ -500,6 +500,26 @@ func TestListSelection(t *testing.T) {
assert.Equal(t, items[1].ID(), l.selectedItem)
golden.RequireEqual(t, []byte(l.View()))
})
+ t.Run("should skip none selectable items in the middle", func(t *testing.T) {
+ t.Parallel()
+ l := New(WithDirection(Forward)).(*list)
+ l.SetSize(100, 10)
+ items := []Item{}
+ item := NewSelectsableItem("Item initial")
+ items = append(items, item)
+ items = append(items, NewSimpleItem("None Selectable"))
+ for i := range 5 {
+ item := NewSelectsableItem(fmt.Sprintf("Item %d", i))
+ items = append(items, item)
+ }
+ cmd := l.SetItems(items)
+ if cmd != nil {
+ cmd()
+ }
+ l.SelectItemBelow()
+ assert.Equal(t, items[2].ID(), l.selectedItem)
+ golden.RequireEqual(t, []byte(l.View()))
+ })
}
type SelectableItem interface {
@@ -0,0 +1,7 @@
+Item initial
+None Selectable
+βItem 0
+Item 1
+Item 2
+Item 3
+Item 4