@@ -500,6 +500,26 @@ func TestListSelection(t *testing.T) {
500 assert.Equal(t, items[1].ID(), l.selectedItem)
500 assert.Equal(t, items[1].ID(), l.selectedItem)
501 golden.RequireEqual(t, []byte(l.View()))
501 golden.RequireEqual(t, []byte(l.View()))
503+ t.Run("should skip none selectable items in the middle", func(t *testing.T) {
505+ l := New(WithDirection(Forward)).(*list)
508+ item := NewSelectsableItem("Item initial")
509+ items = append(items, item)
510+ items = append(items, NewSimpleItem("None Selectable"))
512+ item := NewSelectsableItem(fmt.Sprintf("Item %d", i))
513+ items = append(items, item)
515+ cmd := l.SetItems(items)
520+ assert.Equal(t, items[2].ID(), l.selectedItem)
521+ golden.RequireEqual(t, []byte(l.View()))
505type SelectableItem interface {
525type SelectableItem interface {