diff --git a/dec_read.go b/dec_read.go index 5d7488e..c9e0a00 100644 --- a/dec_read.go +++ b/dec_read.go @@ -7,8 +7,10 @@ import ( // Next gets Type of relatively next json element func (d *Decoder) Next() Type { - v, _ := d.next() - d.unread() + v, err := d.next() + if err == nil { + d.unread() + } return types[v] } diff --git a/dec_read_test.go b/dec_read_test.go index 6db03e4..0fc94c5 100644 --- a/dec_read_test.go +++ b/dec_read_test.go @@ -1,6 +1,7 @@ package jx import ( + "io" "strings" "testing" @@ -19,3 +20,13 @@ func TestDecoder_consume(t *testing.T) { d := Decode(r, 1) require.ErrorIs(t, d.consume('"'), r.Err()) } + +func TestDecoder_Next(t *testing.T) { + d := DecodeBytes(nil) + d.Next() + d.Next() + d.Next() + + _, err := d.Str() + require.ErrorIs(t, err, io.ErrUnexpectedEOF) +}