feat: publish v1.0.0-rc.36-custom.1
This commit is contained in:
commit
3a7e8f3b54
2381 files changed
+551494
No files matched your search
@@ -0,0 +1,37 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
"io"
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestNewReplayableBodyReaderKeepsStorageLifecycleWithCaller(t *testing.T) {
|
||||
payload := []byte(`{"model":"test-model","input":"hello"}`)
|
||||
storage, err := CreateBodyStorage(payload)
|
||||
require.NoError(t, err)
|
||||
defer storage.Close()
|
||||
|
||||
body := NewReplayableBodyReader(storage)
|
||||
assert.EqualValues(t, len(payload), body.Size())
|
||||
_, exposesCloser := any(body).(io.Closer)
|
||||
assert.False(t, exposesCloser, "the request body must not expose the storage closer")
|
||||
|
||||
req, err := http.NewRequest(http.MethodPost, "https://example.com", body)
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, req.Body.Close())
|
||||
|
||||
replayBody, err := body.NewReader()
|
||||
require.NoError(t, err, "closing the HTTP request body must not close the storage")
|
||||
replay, err := io.ReadAll(replayBody)
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, replayBody.Close())
|
||||
assert.Equal(t, payload, replay)
|
||||
|
||||
require.NoError(t, storage.Close())
|
||||
_, err = body.NewReader()
|
||||
require.ErrorIs(t, err, ErrStorageClosed)
|
||||
}
|
||||
Reference in new issue
Block a user