@@ -548,6 +548,21 @@ describe('variants', () => {
548548 expect ( addr ) . to . have . property ( 'bytes' )
549549 expect ( addr . toString ( ) ) . to . equal ( str )
550550 } )
551+
552+ it ( 'ip4 + tcp + http + retrieval' , ( ) => {
553+ const str = '/ip4/127.0.0.1/tcp/8000/http/retrieval/http'
554+ const addr = multiaddr ( str )
555+ expect ( addr ) . to . have . property ( 'bytes' )
556+ expect ( addr . toString ( ) ) . to . equal ( str )
557+ } )
558+
559+ it ( 'ws + p2p + retrieval tuple' , ( ) => {
560+ const str =
561+ '/ip4/127.0.0.1/tcp/9090/ws/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC/retrieval/bitswap/retrieval/graphsync'
562+ const addr = multiaddr ( str )
563+ expect ( addr ) . to . have . property ( 'bytes' )
564+ expect ( addr . toString ( ) ) . to . equal ( str )
565+ } )
551566} )
552567
553568describe ( 'helpers' , ( ) => {
@@ -732,6 +747,26 @@ describe('helpers', () => {
732747 ] )
733748 } )
734749
750+ it ( 'returns the tuples for retrieval' , ( ) => {
751+ expect ( multiaddr ( '/ip4/127.0.0.1/tcp/8000/http/retrieval/http' ) . tuples ( ) )
752+ . to . eql ( [
753+ [ 4 , Uint8Array . from ( [ 127 , 0 , 0 , 1 ] ) ] ,
754+ [ 6 , Uint8Array . from ( [ 31 , 64 ] ) ] ,
755+ [ 480 ] ,
756+ [ 384 , Uint8Array . from ( [ 4 , 104 , 116 , 116 , 112 ] ) ]
757+ ] )
758+
759+ expect ( multiaddr ( '/ip4/127.0.0.1/tcp/9090/ws/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC/retrieval/bitswap/retrieval/graphsync' ) . tuples ( ) )
760+ . to . eql ( [
761+ [ 4 , Uint8Array . from ( [ 127 , 0 , 0 , 1 ] ) ] ,
762+ [ 6 , Uint8Array . from ( [ 35 , 130 ] ) ] ,
763+ [ 477 ] ,
764+ [ 421 , Uint8Array . from ( [ 34 , 18 , 32 , 213 , 46 , 187 , 137 , 216 , 91 , 2 , 162 , 132 , 148 , 130 , 3 , 166 , 47 , 242 , 131 , 137 , 197 , 124 , 159 , 66 , 190 , 236 , 78 , 194 , 13 , 183 , 106 , 104 , 145 , 28 , 11 ] ) ] ,
765+ [ 384 , Uint8Array . from ( [ 7 , 98 , 105 , 116 , 115 , 119 , 97 , 112 ] ) ] ,
766+ [ 384 , Uint8Array . from ( [ 9 , 103 , 114 , 97 , 112 , 104 , 115 , 121 , 110 , 99 ] ) ]
767+ ] )
768+ } )
769+
735770 it ( 'does not allow modifying parts' , ( ) => {
736771 const ma = multiaddr ( '/ip4/0.0.0.0/tcp/1234' )
737772 const tuples = ma . tuples ( )
@@ -742,14 +777,34 @@ describe('helpers', () => {
742777 } )
743778
744779 describe ( '.stringTuples' , ( ) => {
745- it ( 'returns the string partss ' , ( ) => {
780+ it ( 'returns the string parts ' , ( ) => {
746781 expect ( multiaddr ( '/ip4/0.0.0.0/utp' ) . stringTuples ( ) )
747782 . to . eql ( [
748783 [ 4 , '0.0.0.0' ] ,
749784 [ 302 ]
750785 ] )
751786 } )
752787
788+ it ( 'returns the string parts for retrieval' , ( ) => {
789+ expect ( multiaddr ( '/ip4/127.0.0.1/tcp/8000/http/retrieval/http' ) . stringTuples ( ) )
790+ . to . eql ( [
791+ [ 4 , '127.0.0.1' ] ,
792+ [ 6 , '8000' ] ,
793+ [ 480 ] ,
794+ [ 384 , 'http' ]
795+ ] )
796+
797+ expect ( multiaddr ( '/ip4/127.0.0.1/tcp/9090/ws/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC/retrieval/bitswap/retrieval/graphsync' ) . stringTuples ( ) )
798+ . to . eql ( [
799+ [ 4 , '127.0.0.1' ] ,
800+ [ 6 , '9090' ] ,
801+ [ 477 ] ,
802+ [ 421 , 'QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC' ] ,
803+ [ 384 , 'bitswap' ] ,
804+ [ 384 , 'graphsync' ]
805+ ] )
806+ } )
807+
753808 it ( 'does not allow modifying string parts' , ( ) => {
754809 const ma = multiaddr ( '/ip4/0.0.0.0/tcp/1234' )
755810 const tuples = ma . stringTuples ( )
0 commit comments