@@ -39,6 +39,15 @@ const stubs: Record<string, string[]> = {
3939 ] ,
4040 '_dnsaddr.self-referential.io' : [
4141 'dnsaddr=/dnsaddr/self-referential.io'
42+ ] ,
43+ '_dnsaddr.double-quoted-answer.io' : [
44+ '"dnsaddr=/ip4/147.75.83.83/tcp/4001/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb"'
45+ ] ,
46+ '_dnsaddr.single-quoted-answer.io' : [
47+ "'dnsaddr=/ip4/147.75.83.83/tcp/4001/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb'"
48+ ] ,
49+ '_dnsaddr.mixed-quoted-answer.io' : [
50+ '"\'""" dnsaddr=/ip4/147.75.83.83/tcp/4001/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb" "'
4251 ]
4352}
4453
@@ -158,5 +167,44 @@ describe('multiaddr resolve', () => {
158167
159168 await expect ( resolvePromise ) . to . eventually . be . rejected ( ) . with . property ( 'code' , 'ERR_MAX_RECURSIVE_DEPTH_REACHED' )
160169 } )
170+
171+ it ( 'should handle double quotes' , async ( ) => {
172+ const ma = multiaddr ( '/dnsaddr/double-quoted-answer.io' )
173+
174+ // Resolve
175+ const resolvedMas = await ma . resolve ( {
176+ dns
177+ } )
178+
179+ // Should ignore double quotes
180+ expect ( resolvedMas ) . to . have . lengthOf ( 1 )
181+ expect ( resolvedMas [ 0 ] . toString ( ) ) . to . equal ( '/ip4/147.75.83.83/tcp/4001/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb' )
182+ } )
183+
184+ it ( 'should handle single quotes' , async ( ) => {
185+ const ma = multiaddr ( '/dnsaddr/single-quoted-answer.io' )
186+
187+ // Resolve
188+ const resolvedMas = await ma . resolve ( {
189+ dns
190+ } )
191+
192+ // Should ignore double quotes
193+ expect ( resolvedMas ) . to . have . lengthOf ( 1 )
194+ expect ( resolvedMas [ 0 ] . toString ( ) ) . to . equal ( '/ip4/147.75.83.83/tcp/4001/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb' )
195+ } )
196+
197+ it ( 'should handle mixed quotes' , async ( ) => {
198+ const ma = multiaddr ( '/dnsaddr/mixed-quoted-answer.io' )
199+
200+ // Resolve
201+ const resolvedMas = await ma . resolve ( {
202+ dns
203+ } )
204+
205+ // Should ignore double quotes
206+ expect ( resolvedMas ) . to . have . lengthOf ( 1 )
207+ expect ( resolvedMas [ 0 ] . toString ( ) ) . to . equal ( '/ip4/147.75.83.83/tcp/4001/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb' )
208+ } )
161209 } )
162210} )
0 commit comments