@@ -211,7 +211,8 @@ test('Packet#encode', function() {
211211 type : Packet . TYPE . TXT ,
212212 class : Packet . CLASS . IN ,
213213 ttl : 300 ,
214- data : '#v=spf1 include:_spf.google.com ~all' ,
214+ // TXT data is an array of <character-string> items (RFC 1035 §3.3.14).
215+ data : [ '#v=spf1 include:_spf.google.com ~all' ] ,
215216 } ) ;
216217
217218 assert . deepEqual ( Packet . parse ( response . toBuffer ( ) ) , response ) ;
@@ -235,7 +236,7 @@ test('Packet#encode array of character strings', function() {
235236 data : dkim ,
236237 } ) ;
237238
238- assert . equal ( Packet . parse ( response . toBuffer ( ) ) . answers [ 0 ] . data , dkim . join ( '' ) ) ;
239+ assert . deepEqual ( Packet . parse ( response . toBuffer ( ) ) . answers [ 0 ] . data , dkim ) ;
239240} ) ;
240241
241242test ( 'EDNS.ECS#encode' , function ( ) {
@@ -394,9 +395,9 @@ test('Resource#TXT round-trip single string', function() {
394395 type : Packet . TYPE . TXT ,
395396 class : Packet . CLASS . IN ,
396397 ttl : 300 ,
397- data : 'hello world' ,
398+ data : 'hello world' , // encoder normalizes string → [string]
398399 } ) ;
399- assert . equal ( out . data , 'hello world' ) ;
400+ assert . deepEqual ( out . data , [ 'hello world' ] ) ;
400401} ) ;
401402
402403test ( 'Resource#TXT round-trip with utf-8' , function ( ) {
@@ -407,7 +408,20 @@ test('Resource#TXT round-trip with utf-8', function() {
407408 ttl : 300 ,
408409 data : 'café résumé 日本' ,
409410 } ) ;
410- assert . equal ( out . data , 'café résumé 日本' ) ;
411+ assert . deepEqual ( out . data , [ 'café résumé 日本' ] ) ;
412+ } ) ;
413+
414+ test ( 'Resource#TXT preserves character-string boundaries' , function ( ) {
415+ // SPF/DKIM-style multi-string TXT records must not be merged on decode.
416+ const chunks = [ 'part-one ' , 'part-two ' , 'part-three' ] ;
417+ const out = roundTripAnswer ( {
418+ name : 'multi.example' ,
419+ type : Packet . TYPE . TXT ,
420+ class : Packet . CLASS . IN ,
421+ ttl : 60 ,
422+ data : chunks ,
423+ } ) ;
424+ assert . deepEqual ( out . data , chunks ) ;
411425} ) ;
412426
413427test ( 'Resource#SOA round-trip' , function ( ) {
0 commit comments