Skip to content

Commit

Permalink
Add BodyWrapper test for DisableRewindsErrors
Browse files Browse the repository at this point in the history
Signed-off-by: Piotr Lewandowski <lewandowski323@gmail.com>
  • Loading branch information
PiotrLewandowski323 authored and gavv committed Oct 1, 2023
1 parent 2183271 commit 4e3e1fa
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions body_wrapper_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -988,3 +988,66 @@ func TestBodyWrapper_DisableRewinds(t *testing.T) {
assert.Equal(t, 1, body.eofCount)
})
}

func TestBodyWrapper_DisableRewindsErrors(t *testing.T) {
bodyText := "test_body"

t.Run("rewinds are disabled before first read", func(t *testing.T) {
body := newMockBody(bodyText)
wrp := newBodyWrapper(body, nil)
bodyErr := errors.New("read_error")
body.readErr = bodyErr
b := make([]byte, len(bodyText)+1)

wrp.DisableRewinds()

_, err := wrp.Read(b)
assert.EqualError(t, err, bodyErr.Error())
assert.Equal(t, 1, body.readCount)

_, err = wrp.Read(b)
assert.EqualError(t, err, bodyErr.Error())
assert.Equal(t, 2, body.readCount)
})

t.Run("rewinds are disabled after read error", func(t *testing.T) {
body := newMockBody(bodyText)
wrp := newBodyWrapper(body, nil)
bodyErr := errors.New("read_error")
body.readErr = bodyErr
b := make([]byte, len(bodyText)+1)

_, err := wrp.Read(b)
assert.EqualError(t, err, bodyErr.Error())
assert.Equal(t, 1, body.readCount)

wrp.DisableRewinds()

_, err = wrp.Read(b)
assert.EqualError(t, err, bodyErr.Error())
assert.Equal(t, 1, body.readCount)
})

t.Run("rewinds are disabled after close error", func(t *testing.T) {
body := newMockBody(bodyText)
wrp := newBodyWrapper(body, nil)
bodyErr := errors.New("close_error")
body.closeErr = bodyErr
b := make([]byte, len(bodyText)+1)

err := wrp.Close()
assert.True(t, wrp.isFullyRead)
assert.EqualError(t, err, bodyErr.Error())
assert.Equal(t, 2, body.readCount)

wrp.DisableRewinds()

_, err = wrp.Read(b)
assert.EqualError(t, err, bodyErr.Error())
assert.Equal(t, 2, body.readCount)

_, err = wrp.Read(b)
assert.EqualError(t, err, bodyErr.Error())
assert.Equal(t, 2, body.readCount)
})
}

0 comments on commit 4e3e1fa

Please sign in to comment.