diff options
author | bep <bjorn.erik.pedersen@gmail.com> | 2015-03-18 22:47:10 +0300 |
---|---|---|
committer | bep <bjorn.erik.pedersen@gmail.com> | 2015-03-18 22:47:10 +0300 |
commit | a8bfaba081d6a31b6371e42e0448c9850d593d82 (patch) | |
tree | f249fe9c2f9c692b6e696bc8bd9749e90b9675c2 /tpl | |
parent | b15d0a168feb0f456bb1c9211c7d490cd7ca14b4 (diff) |
template: add some missing test cases for First
Diffstat (limited to 'tpl')
-rw-r--r-- | tpl/template.go | 5 | ||||
-rw-r--r-- | tpl/template_test.go | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/tpl/template.go b/tpl/template.go index dedb94f8e..c61a91dc7 100644 --- a/tpl/template.go +++ b/tpl/template.go @@ -289,6 +289,11 @@ func indirect(v reflect.Value) (rv reflect.Value, isNil bool) { // First is exposed to templates, to iterate over the first N items in a // rangeable list. func First(limit interface{}, seq interface{}) (interface{}, error) { + + if limit == nil || seq == nil { + return nil, errors.New("both limit and seq must be provided") + } + limitv, err := cast.ToIntE(limit) if err != nil { diff --git a/tpl/template_test.go b/tpl/template_test.go index 1197fa9bf..0c9a1ac91 100644 --- a/tpl/template_test.go +++ b/tpl/template_test.go @@ -231,6 +231,9 @@ func TestFirst(t *testing.T) { {"1", []int{100, 200, 300}, []int{100}}, {int64(-1), []int{100, 200, 300}, false}, {"noint", []int{100, 200, 300}, false}, + {1, nil, false}, + {nil, []int{100}, false}, + {1, t, false}, } { results, err := First(this.count, this.sequence) if b, ok := this.expect.(bool); ok && !b { |