@@ -800,6 +800,47 @@ mocha.describe('bucketspace namespace_fs - versioning', function() {
800
800
} ) ;
801
801
} ) ;
802
802
803
+ mocha . describe ( 'object tagging' , function ( ) {
804
+
805
+ const tagging_key = "key_tagging" ;
806
+ const tag_set1 = { TagSet : [ { Key : "key1" , Value : "Value1" } ] } ;
807
+ const tag_set2 = { TagSet : [ { Key : "key2" , Value : "Value2" } ] } ;
808
+ let version_id ;
809
+
810
+ mocha . before ( async function ( ) {
811
+ await s3_uid6 . putBucketVersioning ( { Bucket : suspended_bucket_name , VersioningConfiguration : { MFADelete : 'Disabled' , Status : 'Enabled' } } ) ;
812
+ const res_put = await s3_uid6 . putObject ( { Bucket : suspended_bucket_name , Key : tagging_key , Body : body1 } ) ;
813
+ await s3_uid6 . putObject ( { Bucket : suspended_bucket_name , Key : tagging_key , Body : body1 } ) ;
814
+ version_id = res_put . VersionId ;
815
+ } ) ;
816
+
817
+ mocha . it ( "put object tagging - no versionId" , async function ( ) {
818
+ await s3_uid6 . putObjectTagging ( { Bucket : suspended_bucket_name , Key : tagging_key , Tagging : tag_set1 } ) ;
819
+ const res = await s3_uid6 . getObjectTagging ( { Bucket : suspended_bucket_name , Key : tagging_key } ) ;
820
+ assert . deepEqual ( res . TagSet , tag_set1 . TagSet ) ;
821
+ } ) ;
822
+
823
+ mocha . it ( "put object tagging - specific versionId" , async function ( ) {
824
+ await s3_uid6 . putObjectTagging ( { Bucket : suspended_bucket_name , Key : tagging_key , Tagging : tag_set2 , versionId : version_id } ) ;
825
+ const res = await s3_uid6 . getObjectTagging ( { Bucket : suspended_bucket_name , Key : tagging_key } ) ;
826
+ assert . notDeepEqual ( res . TagSet , tag_set2 ) ;
827
+ const version_res = await s3_uid6 . getObjectTagging ( { Bucket : suspended_bucket_name , Key : tagging_key } ) ;
828
+ assert . deepEqual ( version_res . TagSet , tag_set2 . TagSet ) ;
829
+ } ) ;
830
+
831
+ mocha . it ( "delete object tagging - no versionId" , async function ( ) {
832
+ await s3_uid6 . deleteObjectTagging ( { Bucket : suspended_bucket_name , Key : tagging_key } ) ;
833
+ const res = await s3_uid6 . getObjectTagging ( { Bucket : suspended_bucket_name , Key : tagging_key } ) ;
834
+ assert . equal ( res . TagSet . length , 0 ) ;
835
+ } ) ;
836
+
837
+ mocha . it ( "delete object tagging - specific versionId" , async function ( ) {
838
+ await s3_uid6 . deleteObjectTagging ( { Bucket : suspended_bucket_name , Key : tagging_key , versionId : version_id } ) ;
839
+ const res = await s3_uid6 . getObjectTagging ( { Bucket : suspended_bucket_name , Key : tagging_key , versionId : version_id } ) ;
840
+ assert . equal ( res . TagSet . length , 0 ) ;
841
+ } ) ;
842
+ } ) ;
843
+
803
844
// dm = delete marker
804
845
mocha . describe ( 'delete object latest - versioning suspended' , function ( ) {
805
846
const key_to_delete = 'mango.txt' ;
0 commit comments