@@ -674,7 +674,8 @@ describe("File upload", function () {
674674
675675 it ( 'check custom XHR object is used' , function ( ) {
676676 var xhr = new XMLHttpRequest ( ) ;
677- xhr . onprogress = sinon . spy ( ) ;
677+ var fun = function ( ) { return "hello from function" } ;
678+ xhr . onprogress = fun ;
678679 const fileOptions = {
679680 fileName : "test_file_name" ,
680681 file : "test_file" ,
@@ -696,7 +697,7 @@ describe("File upload", function () {
696697 imagekit . upload ( fileOptions , callback ) ;
697698 expect ( server . requests . length ) . to . be . equal ( 2 ) ;
698699 expect ( server . requests [ 0 ] ) . to . be . equal ( xhr ) ;
699- expect ( server . requests [ 0 ] . onprogress . toString ( ) ) . to . be . equal ( "spy" ) ;
700+ expect ( server . requests [ 0 ] . onprogress . toString ( ) ) . to . be . equal ( fun . toString ( ) ) ;
700701 successSignature ( ) ;
701702 successUploadResponse ( ) ;
702703
@@ -790,4 +791,51 @@ describe("File upload", function () {
790791 successSignature ( ) ;
791792 errorUploadResponse ( 500 , errRes ) ;
792793 } ) ;
794+
795+ it ( 'Custom xhr promise' , function ( done ) {
796+ var xhr = new XMLHttpRequest ( ) ;
797+ var fun = function ( ) { return "hello from function" } ;
798+ xhr . onprogress = fun ;
799+ const fileOptions = {
800+ fileName : "test_file_name" ,
801+ file : "test_file" ,
802+ tags : "test_tag1,test_tag2" ,
803+ customCoordinates : "10, 10, 100, 100" ,
804+ responseFields : "tags, customCoordinates, isPrivateFile, metadata" ,
805+ useUniqueFileName : false ,
806+ isPrivateFile : true ,
807+ extensions : [
808+ {
809+ name : "aws-auto-tagging" ,
810+ minConfidence : 80 ,
811+ maxTags : 10
812+ }
813+ ] ,
814+ xhr
815+ } ;
816+ imagekit . upload ( fileOptions ) . then ( ( response ) => {
817+ expect ( server . requests . length ) . to . be . equal ( 2 ) ;
818+ var arg = server . requests [ 0 ] . requestBody ;
819+ expect ( server . requests [ 0 ] ) . to . be . equal ( xhr ) ;
820+ expect ( server . requests [ 0 ] . onprogress . toString ( ) ) . to . be . equal ( fun . toString ( ) ) ;
821+
822+ expect ( arg . get ( 'file' ) ) . to . be . equal ( "test_file" ) ;
823+ expect ( arg . get ( 'fileName' ) ) . to . be . equal ( "test_file_name" ) ;
824+ expect ( arg . get ( 'token' ) ) . to . be . equal ( "test_token" ) ;
825+ expect ( arg . get ( 'expire' ) ) . to . be . equal ( "123" ) ;
826+ expect ( arg . get ( 'signature' ) ) . to . be . equal ( "test_signature" ) ;
827+ expect ( arg . get ( 'tags' ) ) . to . be . equal ( "test_tag1,test_tag2" ) ;
828+ expect ( arg . get ( 'customCoordinates' ) ) . to . be . equal ( "10, 10, 100, 100" ) ;
829+ expect ( arg . get ( 'responseFields' ) ) . to . be . equal ( "tags, customCoordinates, isPrivateFile, metadata" ) ;
830+ expect ( arg . get ( 'useUniqueFileName' ) ) . to . be . equal ( 'false' ) ;
831+ expect ( arg . get ( 'isPrivateFile' ) ) . to . be . equal ( 'true' ) ;
832+ expect ( arg . get ( 'publicKey' ) ) . to . be . equal ( 'test_public_key' ) ;
833+ expect ( arg . get ( 'extensions' ) ) . to . be . equal ( JSON . stringify ( fileOptions . extensions ) ) ;
834+ expect ( response ) . to . be . deep . equal ( uploadSuccessResponseObj )
835+ done ( ) ;
836+ } ) ;
837+
838+ successSignature ( ) ;
839+ successUploadResponse ( ) ;
840+ } ) ;
793841} ) ;
0 commit comments