@@ -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" } ] ,
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,54 @@ 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 : [
367+ {
368+ name : "aws-auto-tagging" ,
369+ minConfidence : 80 ,
370+ maxTags : 10
371+ }
372+ ] ,
373+ webhookUrl : "https://your-domain/?appId=some-id"
374+ } ;
375+ var jsonStringifiedExtensions = JSON . stringify ( fileOptions . extensions ) ;
376+ var callback = sinon . spy ( ) ;
377+
378+ imagekit . upload ( fileOptions , callback ) ;
379+
380+ expect ( server . requests . length ) . to . be . equal ( 1 ) ;
381+ successSignature ( ) ;
382+ expect ( server . requests . length ) . to . be . equal ( 2 ) ;
383+ successUploadResponse ( ) ;
384+
385+ var arg = server . requests [ 1 ] . requestBody ;
386+
387+ expect ( arg . get ( 'file' ) ) . to . be . equal ( "test_file" ) ;
388+ expect ( arg . get ( 'fileName' ) ) . to . be . equal ( "test_file_name" ) ;
389+ expect ( arg . get ( 'token' ) ) . to . be . equal ( "test_token" ) ;
390+ expect ( arg . get ( 'expire' ) ) . to . be . equal ( "123" ) ;
391+ expect ( arg . get ( 'signature' ) ) . to . be . equal ( "test_signature" ) ;
392+ expect ( arg . get ( 'tags' ) ) . to . be . equal ( "test_tag1,test_tag2" ) ;
393+ expect ( arg . get ( 'customCoordinates' ) ) . to . be . equal ( "10, 10, 100, 100" ) ;
394+ expect ( arg . get ( 'responseFields' ) ) . to . be . equal ( "tags, customCoordinates, isPrivateFile, metadata" ) ;
395+ expect ( arg . get ( 'useUniqueFileName' ) ) . to . be . equal ( 'false' ) ;
396+ expect ( arg . get ( 'isPrivateFile' ) ) . to . be . equal ( 'true' ) ;
397+ expect ( arg . get ( 'publicKey' ) ) . to . be . equal ( 'test_public_key' ) ;
398+ expect ( arg . get ( 'extensions' ) ) . to . be . equal ( jsonStringifiedExtensions ) ;
399+ expect ( arg . get ( 'webhookUrl' ) ) . to . be . equal ( 'https://your-domain/?appId=some-id' )
400+
401+ expect ( callback . calledOnce ) . to . be . true ;
402+ sinon . assert . calledWith ( callback , null , uploadSuccessResponseObj ) ;
403+ } ) ;
404+
339405 it ( 'Bare minimum request' , function ( ) {
340406 const fileOptions = {
341407 fileName : "test_file_name" ,
0 commit comments