@@ -27,14 +27,26 @@ func TestDocumentsImport(t *testing.T) {
2727 newDocument ("123" ),
2828 newDocument ("125" , withCompanyName ("Company2" )),
2929 newDocument ("127" , withCompanyName ("Company3" )),
30+ // Bad doc
31+ map [string ]interface {}{"bad_doc" : true , "content" : map [string ]interface {}{"bad_field" : "bad_value" }},
32+ "[Bad string" ,
3033 }
3134
32- params := & api.ImportDocumentsParams {Action : pointer .Any (api .Create ), DirtyValues : pointer .Any (api .CoerceOrDrop )}
35+ params := & api.ImportDocumentsParams {Action : pointer .Any (api .Create ), DirtyValues : pointer .Any (api .CoerceOrDrop ), ReturnDoc : pointer . True (), ReturnId : pointer . True () }
3336 responses , err := typesenseClient .Collection (collectionName ).Documents ().Import (context .Background (), documents , params )
3437
3538 require .NoError (t , err )
36- for _ , response := range responses {
37- require .True (t , response .Success , "document import failed" )
39+ for i , response := range responses {
40+ if i < 3 {
41+ require .True (t , response .Success , "document import failed" )
42+
43+ } else if i == 3 {
44+ require .False (t , response .Success , "failed to handle bad document" )
45+ require .Equal (t , `{"bad_doc":true,"content":{"bad_field":"bad_value"}}` , response .Document )
46+ } else {
47+ require .False (t , response .Success , "failed to handle bad string" )
48+ require .Equal (t , `"[Bad string"` , response .Document )
49+ }
3850 }
3951
4052 results := retrieveDocuments (t , collectionName , "123" , "125" , "127" )
0 commit comments