@@ -20,7 +20,9 @@ const uploadSuccessResponseObj = {
2020 "tags" : [ "t-shirt" , "round-neck" , "sale2019" ] ,
2121 "isPrivateFile" : false ,
2222 "customCoordinates" : null ,
23- "fileType" : "image"
23+ "fileType" : "image" ,
24+ "AITags" :[ { "name" :"Face" , "confidence" :99.95 , "source" :"aws-auto-tagging" } , { "name" :"Person" , "confidence" :99.95 , "source" :"aws-auto-tagging" } , { "name" :"Human" , "confidence" :99.95 , "source" :"aws-auto-tagging" } , { "name" :"Boy" , "confidence" :87.6 , "source" :"aws-auto-tagging" } , { "name" :"Man" , "confidence" :84.66 , "source" :"aws-auto-tagging" } ] ,
25+ "extensionStatus" :{ "aws-auto-tagging" :"success" }
2426} ;
2527
2628function successSignature ( ) {
@@ -144,6 +146,22 @@ describe("File upload", function () {
144146 sinon . assert . calledWith ( callback , { message : "Missing authentication endpoint for upload" , help : "" } , null ) ;
145147 } ) ;
146148
149+ it ( 'Missing public key' , function ( ) {
150+ const fileOptions = {
151+ fileName : "test_file_name" ,
152+ file : "test_file"
153+ } ;
154+
155+ var callback = sinon . spy ( ) ;
156+
157+ imagekit . upload ( fileOptions , callback , {
158+ publicKey : ""
159+ } ) ;
160+
161+ expect ( server . requests . length ) . to . be . equal ( 0 ) ;
162+ sinon . assert . calledWith ( callback , { message : "Missing public key for upload" , help : "" } , null ) ;
163+ } ) ;
164+
147165 it ( 'Auth endpoint network error handling' , function ( ) {
148166 const fileOptions = {
149167 fileName : "test_file_name" ,
@@ -336,6 +354,48 @@ describe("File upload", function () {
336354 sinon . assert . calledWith ( callback , null , uploadSuccessResponseObj ) ;
337355 } ) ;
338356
357+ it ( 'With extensions parameter' , function ( ) {
358+ const fileOptions = {
359+ fileName : "test_file_name" ,
360+ file : "test_file" ,
361+ tags : "test_tag1,test_tag2" ,
362+ customCoordinates : "10, 10, 100, 100" ,
363+ responseFields : "tags, customCoordinates, isPrivateFile, metadata" ,
364+ useUniqueFileName : false ,
365+ isPrivateFile : true ,
366+ extensions : [ { name : "aws-auto-tagging" , minConfidence : 80 , maxTags : 10 } ] ,
367+ webhookUrl : "https://your-domain/?appId=some-id"
368+ } ;
369+ var jsonStringifiedExtensions = JSON . stringify ( fileOptions . extensions ) ;
370+ var callback = sinon . spy ( ) ;
371+
372+ imagekit . upload ( fileOptions , callback ) ;
373+
374+ expect ( server . requests . length ) . to . be . equal ( 1 ) ;
375+ successSignature ( ) ;
376+ expect ( server . requests . length ) . to . be . equal ( 2 ) ;
377+ successUploadResponse ( ) ;
378+
379+ var arg = server . requests [ 1 ] . requestBody ;
380+
381+ expect ( arg . get ( 'file' ) ) . to . be . equal ( "test_file" ) ;
382+ expect ( arg . get ( 'fileName' ) ) . to . be . equal ( "test_file_name" ) ;
383+ expect ( arg . get ( 'token' ) ) . to . be . equal ( "test_token" ) ;
384+ expect ( arg . get ( 'expire' ) ) . to . be . equal ( "123" ) ;
385+ expect ( arg . get ( 'signature' ) ) . to . be . equal ( "test_signature" ) ;
386+ expect ( arg . get ( 'tags' ) ) . to . be . equal ( "test_tag1,test_tag2" ) ;
387+ expect ( arg . get ( 'customCoordinates' ) ) . to . be . equal ( "10, 10, 100, 100" ) ;
388+ expect ( arg . get ( 'responseFields' ) ) . to . be . equal ( "tags, customCoordinates, isPrivateFile, metadata" ) ;
389+ expect ( arg . get ( 'useUniqueFileName' ) ) . to . be . equal ( 'false' ) ;
390+ expect ( arg . get ( 'isPrivateFile' ) ) . to . be . equal ( 'true' ) ;
391+ expect ( arg . get ( 'publicKey' ) ) . to . be . equal ( 'test_public_key' ) ;
392+ expect ( arg . get ( 'extensions' ) ) . to . be . equal ( jsonStringifiedExtensions ) ;
393+ expect ( arg . get ( 'webhookUrl' ) ) . to . be . equal ( 'https://your-domain/?appId=some-id' )
394+
395+ expect ( callback . calledOnce ) . to . be . true ;
396+ sinon . assert . calledWith ( callback , null , uploadSuccessResponseObj ) ;
397+ } ) ;
398+
339399 it ( 'Bare minimum request' , function ( ) {
340400 const fileOptions = {
341401 fileName : "test_file_name" ,
0 commit comments