@@ -232,9 +232,11 @@ func TestBulkIndexer(t *testing.T) {
232232
233233 t .Run ("Item Callbacks" , func (t * testing.T ) {
234234 var (
235- countSuccessful uint64
236- countFailed uint64
237- failedIDs []string
235+ countSuccessful uint64
236+ countFailed uint64
237+ failedIDs []string
238+ successfulItemBodies []string
239+ failedItemBodies []string
238240
239241 numItems = 4
240242 numFailed = 2
@@ -256,10 +258,22 @@ func TestBulkIndexer(t *testing.T) {
256258
257259 successFunc := func (ctx context.Context , item BulkIndexerItem , res BulkIndexerResponseItem ) {
258260 atomic .AddUint64 (& countSuccessful , 1 )
261+
262+ buf , err := ioutil .ReadAll (item .Body )
263+ if err != nil {
264+ t .Fatalf ("Unexpected error: %s" , err )
265+ }
266+ successfulItemBodies = append (successfulItemBodies , string (buf ))
259267 }
260268 failureFunc := func (ctx context.Context , item BulkIndexerItem , res BulkIndexerResponseItem , err error ) {
261269 atomic .AddUint64 (& countFailed , 1 )
262270 failedIDs = append (failedIDs , item .DocumentID )
271+
272+ buf , err := ioutil .ReadAll (item .Body )
273+ if err != nil {
274+ t .Fatalf ("Unexpected error: %s" , err )
275+ }
276+ failedItemBodies = append (failedItemBodies , string (buf ))
263277 }
264278
265279 if err := bi .Add (context .Background (), BulkIndexerItem {
@@ -285,6 +299,7 @@ func TestBulkIndexer(t *testing.T) {
285299 if err := bi .Add (context .Background (), BulkIndexerItem {
286300 Action : "delete" ,
287301 DocumentID : "2" ,
302+ Body : strings .NewReader (`{"title":"baz"}` ),
288303 OnSuccess : successFunc ,
289304 OnFailure : failureFunc ,
290305 }); err != nil {
@@ -343,6 +358,14 @@ func TestBulkIndexer(t *testing.T) {
343358 if ! reflect .DeepEqual (failedIDs , []string {"1" , "2" }) {
344359 t .Errorf ("Unexpected failedIDs: %#v" , failedIDs )
345360 }
361+
362+ if ! reflect .DeepEqual (successfulItemBodies , []string {`{"title":"foo"}` , `{"doc":{"title":"qux"}}` }) {
363+ t .Errorf ("Unexpected successfulItemBodies: %#v" , successfulItemBodies )
364+ }
365+
366+ if ! reflect .DeepEqual (failedItemBodies , []string {`{"title":"bar"}` , `{"title":"baz"}` }) {
367+ t .Errorf ("Unexpected failedItemBodies: %#v" , failedItemBodies )
368+ }
346369 })
347370
348371 t .Run ("OnFlush callbacks" , func (t * testing.T ) {
0 commit comments