diff --git a/tpl/collections/collections.go b/tpl/collections/collections.go index d1b97677f..dd418d7d2 100644 --- a/tpl/collections/collections.go +++ b/tpl/collections/collections.go @@ -74,7 +74,7 @@ func (ns *Namespace) After(index interface{}, seq interface{}) (interface{}, err } if indexv >= seqv.Len() { - return nil, errors.New("no items left") + return seqv.Slice(0, 0).Interface(), nil } return seqv.Slice(indexv, seqv.Len()).Interface(), nil diff --git a/tpl/collections/collections_test.go b/tpl/collections/collections_test.go index ac2c2fe63..c3e88f36f 100644 --- a/tpl/collections/collections_test.go +++ b/tpl/collections/collections_test.go @@ -49,12 +49,13 @@ func TestAfter(t *testing.T) { expect interface{} }{ {int(2), []string{"a", "b", "c", "d"}, []string{"c", "d"}}, - {int32(3), []string{"a", "b"}, false}, + {int32(3), []string{"a", "b"}, []string{}}, {int64(2), []int{100, 200, 300}, []int{300}}, - {100, []int{100, 200}, false}, + {100, []int{100, 200}, []int{}}, {"1", []int{100, 200, 300}, []int{200, 300}}, {int64(-1), []int{100, 200, 300}, false}, {"noint", []int{100, 200, 300}, false}, + {2, []string{}, []string{}}, {1, nil, false}, {nil, []int{100}, false}, {1, t, false}, @@ -70,7 +71,7 @@ func TestAfter(t *testing.T) { } require.NoError(t, err, errMsg) - assert.Equal(t, test.expect, result, errMsg) + require.Equal(t, test.expect, result, errMsg) } }