@@ -17,15 +17,15 @@ const sinon = require('sinon')
1717const expect = require ( 'chai' ) . expect
1818
1919describe ( 'relay' , function ( ) {
20- describe ( `handle circuit requests` , function ( ) {
20+ describe ( `should handle circuit requests` , function ( ) {
2121 let relay
2222 let swarm
2323 let fromConn
2424 let stream
2525 let shake
2626
2727 beforeEach ( function ( done ) {
28- stream = handshake ( { timeout : 1000 * 60 } )
28+ stream = handshake ( { timeout : 1000 * 60 } )
2929 shake = stream . handshake
3030 fromConn = new Connection ( stream )
3131 fromConn . setPeerInfo ( new PeerInfo ( PeerId . createFromB58String ( 'QmQWqGdndSpAkxfk8iyiJyz3XXGkrDNujvc8vEst3baubA' ) ) )
@@ -38,14 +38,16 @@ describe('relay', function () {
3838 swarm = {
3939 _peerInfo : peer ,
4040 conns : {
41- QmSswe1dCFRepmhjAMR5VfHeokGLcvVggkuDJm7RMfJSrE : new Connection ( )
41+ QmSswe1dCFRepmhjAMR5VfHeokGLcvVggkuDJm7RMfJSrE : new Connection ( ) ,
42+ QmQWqGdndSpAkxfk8iyiJyz3XXGkrDNujvc8vEst3baubA : new Connection ( ) ,
43+ QmQvM2mpqkjyXWbTHSUidUAWN26GgdMphTh9iGDdjgVXCy : new Connection ( )
4244 }
4345 }
4446
4547 cb ( )
4648 }
4749 ] , ( ) => {
48- relay = new Hop ( swarm , { enabled : true } )
50+ relay = new Hop ( swarm , { enabled : true } )
4951 relay . _circuit = sinon . stub ( )
5052 relay . _circuit . callsArg ( 2 , null , new Connection ( ) )
5153 done ( )
@@ -56,15 +58,15 @@ describe('relay', function () {
5658 relay . _circuit . reset ( )
5759 } )
5860
59- it ( `handle a valid circuit request` , function ( done ) {
61+ it ( `should handle a valid circuit request` , function ( done ) {
6062 let relayMsg = {
6163 type : proto . CircuitRelay . Type . HOP ,
6264 srcPeer : {
63- id : Buffer . from ( `QmSswe1dCFRepmhjAMR5VfHeokGLcvVggkuDJm7RMfJSrE` ) ,
65+ id : PeerId . createFromB58String ( `QmSswe1dCFRepmhjAMR5VfHeokGLcvVggkuDJm7RMfJSrE` ) . id ,
6466 addrs : [ multiaddr ( `/ipfs/QmSswe1dCFRepmhjAMR5VfHeokGLcvVggkuDJm7RMfJSrE` ) . buffer ]
6567 } ,
6668 dstPeer : {
67- id : Buffer . from ( `QmQWqGdndSpAkxfk8iyiJyz3XXGkrDNujvc8vEst3baubA` ) ,
69+ id : PeerId . createFromB58String ( `QmQWqGdndSpAkxfk8iyiJyz3XXGkrDNujvc8vEst3baubA` ) . id ,
6870 addrs : [ multiaddr ( `/ipfs/QmQWqGdndSpAkxfk8iyiJyz3XXGkrDNujvc8vEst3baubA` ) . buffer ]
6971 }
7072 }
@@ -77,15 +79,62 @@ describe('relay', function () {
7779 relay . handle ( relayMsg , new StreamHandler ( fromConn ) )
7880 } )
7981
82+ it ( `should handle a request to passive circuit` , function ( done ) {
83+ let relayMsg = {
84+ type : proto . CircuitRelay . Type . HOP ,
85+ srcPeer : {
86+ id : PeerId . createFromB58String ( `QmQWqGdndSpAkxfk8iyiJyz3XXGkrDNujvc8vEst3baubA` ) . id ,
87+ addrs : [ multiaddr ( `/ipfs/QmQWqGdndSpAkxfk8iyiJyz3XXGkrDNujvc8vEst3baubA` ) . buffer ]
88+ } ,
89+ dstPeer : {
90+ id : PeerId . createFromB58String ( `QmYJjAri5soV8RbeQcHaYYcTAYTET17QTvcoFMyKvRDTXe` ) . id ,
91+ addrs : [ multiaddr ( `/ipfs/QmYJjAri5soV8RbeQcHaYYcTAYTET17QTvcoFMyKvRDTXe` ) . buffer ]
92+ }
93+ }
94+
95+ relay . active = false
96+ lp . decodeFromReader ( shake , ( err , msg ) => {
97+ expect ( err ) . to . be . null
98+
99+ const response = proto . CircuitRelay . decode ( msg )
100+ expect ( response . code ) . to . equal ( proto . CircuitRelay . Status . HOP_NO_CONN_TO_DST )
101+ expect ( response . type ) . to . equal ( proto . CircuitRelay . Type . STATUS )
102+ done ( )
103+ } )
104+
105+ relay . handle ( relayMsg , new StreamHandler ( fromConn ) )
106+ } )
107+
108+ it ( `should handle a request to active circuit` , function ( done ) {
109+ let relayMsg = {
110+ type : proto . CircuitRelay . Type . HOP ,
111+ srcPeer : {
112+ id : PeerId . createFromB58String ( `QmQWqGdndSpAkxfk8iyiJyz3XXGkrDNujvc8vEst3baubA` ) . id ,
113+ addrs : [ multiaddr ( `/ipfs/QmQWqGdndSpAkxfk8iyiJyz3XXGkrDNujvc8vEst3baubA` ) . buffer ]
114+ } ,
115+ dstPeer : {
116+ id : PeerId . createFromB58String ( `QmYJjAri5soV8RbeQcHaYYcTAYTET17QTvcoFMyKvRDTXe` ) . id ,
117+ addrs : [ multiaddr ( `/ipfs/QmYJjAri5soV8RbeQcHaYYcTAYTET17QTvcoFMyKvRDTXe` ) . buffer ]
118+ }
119+ }
120+
121+ relay . active = true
122+ relay . on ( 'circuit:success' , ( ) => {
123+ expect ( relay . _circuit . calledWith ( sinon . match . any , relayMsg ) ) . to . be . ok
124+ done ( )
125+ } )
126+ relay . handle ( relayMsg , new StreamHandler ( fromConn ) )
127+ } )
128+
80129 it ( `not dial to self` , function ( done ) {
81130 let relayMsg = {
82131 type : proto . CircuitRelay . Type . HOP ,
83132 srcPeer : {
84- id : Buffer . from ( `QmSswe1dCFRepmhjAMR5VfHeokGLcvVggkuDJm7RMfJSrE` ) ,
133+ id : PeerId . createFromB58String ( `QmSswe1dCFRepmhjAMR5VfHeokGLcvVggkuDJm7RMfJSrE` ) . id ,
85134 addrs : [ multiaddr ( `/ipfs/QmSswe1dCFRepmhjAMR5VfHeokGLcvVggkuDJm7RMfJSrE` ) . buffer ]
86135 } ,
87136 dstPeer : {
88- id : Buffer . from ( `QmQvM2mpqkjyXWbTHSUidUAWN26GgdMphTh9iGDdjgVXCy` ) ,
137+ id : PeerId . createFromB58String ( `QmQvM2mpqkjyXWbTHSUidUAWN26GgdMphTh9iGDdjgVXCy` ) . id ,
89138 addrs : [ multiaddr ( `/ipfs/QmQvM2mpqkjyXWbTHSUidUAWN26GgdMphTh9iGDdjgVXCy` ) . buffer ]
90139 }
91140 }
@@ -110,7 +159,7 @@ describe('relay', function () {
110159 addrs : [ `sdfkjsdnfkjdsb` ]
111160 } ,
112161 dstPeer : {
113- id : Buffer . from ( `QmQWqGdndSpAkxfk8iyiJyz3XXGkrDNujvc8vEst3baubA` ) ,
162+ id : PeerId . createFromB58String ( `QmQWqGdndSpAkxfk8iyiJyz3XXGkrDNujvc8vEst3baubA` ) . id ,
114163 addrs : [ multiaddr ( `/ipfs/QmQWqGdndSpAkxfk8iyiJyz3XXGkrDNujvc8vEst3baubA` ) . buffer ]
115164 }
116165 }
@@ -131,11 +180,11 @@ describe('relay', function () {
131180 let relayMsg = {
132181 type : proto . CircuitRelay . Type . HOP ,
133182 srcPeer : {
134- id : Buffer . from ( `QmQWqGdndSpAkxfk8iyiJyz3XXGkrDNujvc8vEst3baubA` ) ,
183+ id : PeerId . createFromB58String ( `QmQWqGdndSpAkxfk8iyiJyz3XXGkrDNujvc8vEst3baubA` ) . id ,
135184 addrs : [ multiaddr ( `/ipfs/QmQWqGdndSpAkxfk8iyiJyz3XXGkrDNujvc8vEst3baubA` ) . buffer ]
136185 } ,
137186 dstPeer : {
138- id : `sdfkjsdnfkjdsb` ,
187+ id : PeerId . createFromB58String ( `QmSswe1dCFRepmhjAMR5VfHeokGLcvVggkuDJm7RMfJSrE` ) . id ,
139188 addrs : [ `sdfkjsdnfkjdsb` ]
140189 }
141190 }
0 commit comments