@@ -701,6 +701,37 @@ describe('S3 Protocol', () => {
701
701
} )
702
702
703
703
describe ( 'DeleteObjectsCommand' , ( ) => {
704
+ it ( 'can delete a single object' , async ( ) => {
705
+ const bucketName = await createBucket ( client )
706
+ await Promise . all ( [ uploadFile ( client , bucketName , 'test-1.jpg' , 1 ) ] )
707
+
708
+ const deleteObjectsCommand = new DeleteObjectsCommand ( {
709
+ Bucket : bucketName ,
710
+ Delete : {
711
+ Objects : [
712
+ {
713
+ Key : 'test-1.jpg' ,
714
+ } ,
715
+ ] ,
716
+ } ,
717
+ } )
718
+
719
+ const deleteResp = await client . send ( deleteObjectsCommand )
720
+
721
+ expect ( deleteResp . Deleted ) . toEqual ( [
722
+ {
723
+ Key : 'test-1.jpg' ,
724
+ } ,
725
+ ] )
726
+
727
+ const listObjectsCommand = new ListObjectsV2Command ( {
728
+ Bucket : bucketName ,
729
+ } )
730
+
731
+ const resp = await client . send ( listObjectsCommand )
732
+ expect ( resp . Contents ) . toBe ( undefined )
733
+ } )
734
+
704
735
it ( 'can delete multiple objects' , async ( ) => {
705
736
const bucketName = await createBucket ( client )
706
737
await Promise . all ( [
@@ -726,7 +757,70 @@ describe('S3 Protocol', () => {
726
757
} ,
727
758
} )
728
759
729
- await client . send ( deleteObjectsCommand )
760
+ const deleteResp = await client . send ( deleteObjectsCommand )
761
+
762
+ expect ( deleteResp . Deleted ) . toEqual ( [
763
+ {
764
+ Key : 'test-1.jpg' ,
765
+ } ,
766
+ {
767
+ Key : 'test-2.jpg' ,
768
+ } ,
769
+ {
770
+ Key : 'test-3.jpg' ,
771
+ } ,
772
+ ] )
773
+
774
+ const listObjectsCommand = new ListObjectsV2Command ( {
775
+ Bucket : bucketName ,
776
+ } )
777
+
778
+ const resp = await client . send ( listObjectsCommand )
779
+ expect ( resp . Contents ) . toBe ( undefined )
780
+ } )
781
+
782
+ it ( 'try to delete multiple objects that dont exists' , async ( ) => {
783
+ const bucketName = await createBucket ( client )
784
+
785
+ await uploadFile ( client , bucketName , 'test-1.jpg' , 1 )
786
+
787
+ const deleteObjectsCommand = new DeleteObjectsCommand ( {
788
+ Bucket : bucketName ,
789
+ Delete : {
790
+ Objects : [
791
+ {
792
+ Key : 'test-1.jpg' ,
793
+ } ,
794
+ {
795
+ Key : 'test-2.jpg' ,
796
+ } ,
797
+ {
798
+ Key : 'test-3.jpg' ,
799
+ } ,
800
+ ] ,
801
+ } ,
802
+ } )
803
+
804
+ const deleteResp = await client . send ( deleteObjectsCommand )
805
+ expect ( deleteResp . Deleted ) . toEqual ( [
806
+ {
807
+ Key : 'test-1.jpg' ,
808
+ } ,
809
+ ] )
810
+ expect ( deleteResp . Errors ) . toEqual ( [
811
+ {
812
+ Key : 'test-2.jpg' ,
813
+ Code : 'AccessDenied' ,
814
+ Message :
815
+ "You do not have permission to delete this object or the object doesn't exists" ,
816
+ } ,
817
+ {
818
+ Key : 'test-3.jpg' ,
819
+ Code : 'AccessDenied' ,
820
+ Message :
821
+ "You do not have permission to delete this object or the object doesn't exists" ,
822
+ } ,
823
+ ] )
730
824
731
825
const listObjectsCommand = new ListObjectsV2Command ( {
732
826
Bucket : bucketName ,
0 commit comments