11const assert = require ( 'assert' ) ;
2- const { areTagsValid, _validator } = require ( '../../../lib/s3middleware/tagging' ) ;
2+ const werelogs = require ( 'werelogs' ) ;
3+ const { areTagsValid, _validator, parseTagXml } = require ( '../../../lib/s3middleware/tagging' ) ;
34
45describe ( 'tagging validator' , ( ) => {
56 it ( 'validates keys and values are less than 128 and 256' , ( ) => {
@@ -68,6 +69,14 @@ describe('areTagsValid', () => {
6869 assert . strictEqual ( result , false ) ;
6970 } ) ;
7071
72+ it ( 'should return true for tags with empty Value' , ( ) => {
73+ const validTags = [
74+ { Key : 'key1' , Value : '' }
75+ ] ;
76+ const result = areTagsValid ( validTags ) ;
77+ assert . strictEqual ( result , true ) ;
78+ } ) ;
79+
7180 it ( 'should return false for tags with duplicate keys' , ( ) => {
7281 const invalidTags = [
7382 { Key : 'key1' , Value : 'value1' } ,
@@ -93,3 +102,16 @@ describe('areTagsValid', () => {
93102 assert . strictEqual ( result , false ) ;
94103 } ) ;
95104} ) ;
105+
106+ describe ( 'parseTagXml' , ( ) => {
107+ const log = new werelogs . Logger ( 'test' ) ;
108+
109+ it ( 'should parse tags with empty values from XML' , ( done ) => {
110+ const xml = '<Tagging><TagSet><Tag><Key>key1</Key><Value></Value></Tag></TagSet></Tagging>' ;
111+ parseTagXml ( xml , log , ( err , result ) => {
112+ assert . ifError ( err ) ;
113+ assert . deepStrictEqual ( result , { key1 : '' } ) ;
114+ done ( ) ;
115+ } ) ;
116+ } ) ;
117+ } ) ;
0 commit comments