@@ -317,7 +317,8 @@ test('Packet#encode', function () {
317317 type : Packet . TYPE . TXT ,
318318 class : Packet . CLASS . IN ,
319319 ttl : 300 ,
320- data : '#v=spf1 include:_spf.google.com ~all' ,
320+ // TXT data is an array of <character-string> items (RFC 1035 §3.3.14).
321+ data : [ '#v=spf1 include:_spf.google.com ~all' ] ,
321322 } ) ;
322323
323324 assert . deepEqual ( Packet . parse ( response . toBuffer ( ) ) , response ) ;
@@ -343,10 +344,7 @@ test('Packet#encode array of character strings', function () {
343344 data : dkim ,
344345 } ) ;
345346
346- assert . equal (
347- Packet . parse ( response . toBuffer ( ) ) . answers [ 0 ] . data ,
348- dkim . join ( '' ) ,
349- ) ;
347+ assert . deepEqual ( Packet . parse ( response . toBuffer ( ) ) . answers [ 0 ] . data , dkim ) ;
350348} ) ;
351349
352350test ( 'EDNS.ECS#encode' , function ( ) {
@@ -511,9 +509,9 @@ test('Resource#TXT round-trip single string', function () {
511509 type : Packet . TYPE . TXT ,
512510 class : Packet . CLASS . IN ,
513511 ttl : 300 ,
514- data : 'hello world' ,
512+ data : 'hello world' , // encoder normalizes string → [string]
515513 } ) ;
516- assert . equal ( out . data , 'hello world' ) ;
514+ assert . deepEqual ( out . data , [ 'hello world' ] ) ;
517515} ) ;
518516
519517test ( 'Resource#TXT round-trip with utf-8' , function ( ) {
@@ -524,7 +522,20 @@ test('Resource#TXT round-trip with utf-8', function () {
524522 ttl : 300 ,
525523 data : 'café résumé 日本' ,
526524 } ) ;
527- assert . equal ( out . data , 'café résumé 日本' ) ;
525+ assert . deepEqual ( out . data , [ 'café résumé 日本' ] ) ;
526+ } ) ;
527+
528+ test ( 'Resource#TXT preserves character-string boundaries' , function ( ) {
529+ // SPF/DKIM-style multi-string TXT records must not be merged on decode.
530+ const chunks = [ 'part-one ' , 'part-two ' , 'part-three' ] ;
531+ const out = roundTripAnswer ( {
532+ name : 'multi.example' ,
533+ type : Packet . TYPE . TXT ,
534+ class : Packet . CLASS . IN ,
535+ ttl : 60 ,
536+ data : chunks ,
537+ } ) ;
538+ assert . deepEqual ( out . data , chunks ) ;
528539} ) ;
529540
530541test ( 'Resource#SOA round-trip' , function ( ) {
0 commit comments