3
3
4
4
const pull = require ( 'pull-stream' )
5
5
const waterfall = require ( 'async/waterfall' )
6
+ const series = require ( 'async/series' )
6
7
const parallel = require ( 'async/parallel' )
7
8
const utils = require ( './utils' )
8
9
const Circuit = require ( 'libp2p-circuit' )
@@ -38,22 +39,15 @@ describe(`circuit`, function () {
38
39
node . start ( ( err ) => {
39
40
expect ( err ) . to . not . exist ( )
40
41
41
- if ( node . swarm . transports [ Circuit . tag ] ) {
42
- handlerSpies . push ( sinon . spy ( node
43
- . swarm
44
- . transports [ Circuit . tag ]
45
- . listeners [ 0 ]
46
- . hopHandler ,
47
- 'handle' ) )
48
- }
49
-
42
+ handlerSpies . push ( sinon . spy ( node . swarm . transports [ Circuit . tag ] . listeners [ 0 ] . hopHandler , 'handle' ) )
50
43
cb ( node )
51
44
} )
52
45
} )
53
46
}
54
47
55
48
before ( ( done ) => {
56
49
waterfall ( [
50
+ // set up passive relay
57
51
( cb ) => setupNode ( [
58
52
`/ip4/0.0.0.0/tcp/9010/ws` ,
59
53
`/ip4/0.0.0.0/tcp/9011`
@@ -69,6 +63,7 @@ describe(`circuit`, function () {
69
63
relayNode1 = node
70
64
cb ( )
71
65
} ) ,
66
+ // setup active relay
72
67
( cb ) => setupNode ( [
73
68
`/ip4/0.0.0.0/tcp/9110/ws` ,
74
69
`/ip4/0.0.0.0/tcp/9111`
@@ -77,64 +72,68 @@ describe(`circuit`, function () {
77
72
enabled : true ,
78
73
hop : {
79
74
enabled : true ,
80
- active : true // active relay
75
+ active : false // passive relay
81
76
}
82
77
}
83
78
} , ( node ) => {
84
79
relayNode2 = node
85
80
cb ( )
86
81
} ) ,
87
- ( cb ) => setupNode ( [ `/ip4/0.0.0.0/tcp/9210/ws` ] ,
88
- {
89
- relay : {
90
- enabled : true
91
- }
92
- } ,
93
- ( node ) => {
94
- nodeWS1 = node
95
- cb ( )
96
- } ) ,
97
- ( cb ) => setupNode ( [ `/ip4/0.0.0.0/tcp/9410/ws` ] ,
98
- {
99
- relay : {
100
- enabled : true
101
- }
102
- } ,
103
- ( node ) => {
104
- nodeWS2 = node
105
- cb ( )
106
- } ) ,
82
+ // setup node with WS
83
+ ( cb ) => setupNode ( [
84
+ `/ip4/0.0.0.0/tcp/9210/ws`
85
+ ] , {
86
+ relay : {
87
+ enabled : true
88
+ }
89
+ } , ( node ) => {
90
+ nodeWS1 = node
91
+ cb ( )
92
+ } ) ,
93
+ // setup node with WS
94
+ ( cb ) => setupNode ( [
95
+ `/ip4/0.0.0.0/tcp/9410/ws`
96
+ ] , {
97
+ relay : {
98
+ enabled : true
99
+ }
100
+ } , ( node ) => {
101
+ nodeWS2 = node
102
+ cb ( )
103
+ } ) ,
104
+ // set up node with TCP and listening on relay1
107
105
( cb ) => setupNode ( [
108
106
`/ip4/0.0.0.0/tcp/9211` ,
109
- `/ipfs/${ relayNode1 . peerInfo . id . toB58String ( ) } /p2p-circuit` ] ,
110
- {
111
- relay : {
112
- enabled : true
113
- }
114
- } ,
115
- ( node ) => {
116
- nodeTCP1 = node
117
- cb ( )
118
- } ) ,
107
+ `/ipfs/${ relayNode1 . peerInfo . id . toB58String ( ) } /p2p-circuit`
108
+ ] , {
109
+ relay : {
110
+ enabled : true
111
+ }
112
+ } , ( node ) => {
113
+ nodeTCP1 = node
114
+ cb ( )
115
+ } ) ,
116
+ // set up node with TCP and listening on relay2 over TCP transport
119
117
( cb ) => setupNode ( [
120
118
`/ip4/0.0.0.0/tcp/9311` ,
121
119
`/ip4/0.0.0.0/tcp/9111/ipfs/${ relayNode2 . peerInfo . id . toB58String ( ) } /p2p-circuit`
122
- ] ,
123
- ( node ) => {
124
- nodeTCP2 = node
125
- cb ( )
126
- } ) ] ,
127
- ( err ) => {
128
- expect ( err ) . to . not . exist ( )
120
+ ] , {
121
+ relay : {
122
+ enabled : true
123
+ }
124
+ } , ( node ) => {
125
+ nodeTCP2 = node
126
+ cb ( )
127
+ } )
128
+ ] , ( err ) => {
129
+ expect ( err ) . to . not . exist ( )
129
130
130
- waterfall ( [
131
- ( cb ) => nodeWS1 . dial ( relayNode1 . peerInfo , cb ) ,
132
- ( conn , cb ) => nodeWS1 . dial ( relayNode2 . peerInfo , cb ) ,
133
- ( conn , cb ) => nodeTCP1 . dial ( relayNode1 . peerInfo , cb ) ,
134
- ( conn , cb ) => nodeTCP2 . dial ( relayNode2 . peerInfo , cb )
135
- ] , done )
136
- }
137
- )
131
+ series ( [
132
+ ( cb ) => nodeWS1 . dial ( relayNode1 . peerInfo , cb ) ,
133
+ ( cb ) => nodeWS1 . dial ( relayNode2 . peerInfo , cb ) ,
134
+ ( cb ) => nodeTCP1 . dial ( relayNode1 . peerInfo , cb )
135
+ ] , done )
136
+ } )
138
137
} )
139
138
140
139
after ( ( done ) => {
@@ -148,68 +147,72 @@ describe(`circuit`, function () {
148
147
] , done )
149
148
} )
150
149
151
- it ( 'should dial from WS1 to TCP1 over any R' , function ( done ) {
152
- nodeWS1 . dial ( nodeTCP1 . peerInfo , '/echo/1.0.0' , ( err , conn ) => {
153
- expect ( err ) . to . not . exist ( )
154
- expect ( conn ) . to . exist ( )
155
-
156
- pull (
157
- pull . values ( [ 'hello' ] ) ,
158
- conn ,
159
- pull . collect ( ( e , result ) => {
160
- expect ( e ) . to . not . exist ( )
161
- expect ( result [ 0 ] . toString ( ) ) . to . equal ( 'hello' )
162
- done ( )
163
- } )
164
- )
150
+ describe ( `any relay` , function ( ) {
151
+ it ( 'should dial from WS1 to TCP1 over any R' , function ( done ) {
152
+ nodeWS1 . dial ( nodeTCP1 . peerInfo , '/echo/1.0.0' , ( err , conn ) => {
153
+ expect ( err ) . to . not . exist ( )
154
+ expect ( conn ) . to . exist ( )
155
+
156
+ pull (
157
+ pull . values ( [ 'hello' ] ) ,
158
+ conn ,
159
+ pull . collect ( ( e , result ) => {
160
+ expect ( e ) . to . not . exist ( )
161
+ expect ( result [ 0 ] . toString ( ) ) . to . equal ( 'hello' )
162
+ done ( )
163
+ } )
164
+ )
165
+ } )
165
166
} )
166
- } )
167
167
168
- it ( 'should dial from WS1 to TCP1 over R1' , function ( done ) {
169
- nodeWS1 . dial ( nodeTCP1 . peerInfo , '/echo/1.0.0' , ( err , conn ) => {
170
- expect ( err ) . to . not . exist ( )
171
- expect ( conn ) . to . exist ( )
172
-
173
- pull (
174
- pull . values ( [ 'hello' ] ) ,
175
- conn ,
176
- pull . collect ( ( e , result ) => {
177
- expect ( e ) . to . not . exist ( )
178
- expect ( result [ 0 ] . toString ( ) ) . to . equal ( 'hello' )
179
-
180
- const addr = multiaddr ( handlerSpies [ 0 ] . args [ 2 ] [ 0 ] . dstPeer . addrs [ 0 ] ) . toString ( )
181
- expect ( addr ) . to . equal ( `/ipfs/${ nodeTCP1 . peerInfo . id . toB58String ( ) } ` )
182
- done ( )
183
- } )
184
- )
168
+ it ( `should not dial - no R from WS2 to TCP1` , function ( done ) {
169
+ nodeWS2 . dial ( nodeTCP2 . peerInfo , '/echo/1.0.0' , ( err , conn ) => {
170
+ expect ( err ) . to . exist ( )
171
+ expect ( conn ) . to . not . exist ( )
172
+ done ( )
173
+ } )
185
174
} )
186
175
} )
187
176
188
- it ( `should dial from WS1 to TCP2 over R2` , function ( done ) {
189
- nodeWS1 . dial ( nodeTCP2 . peerInfo , '/echo/1.0.0' , ( err , conn ) => {
190
- expect ( err ) . to . not . exist ( )
191
- expect ( conn ) . to . exist ( )
192
-
193
- pull (
194
- pull . values ( [ 'hello' ] ) ,
195
- conn ,
196
- pull . collect ( ( e , result ) => {
197
- expect ( e ) . to . not . exist ( )
198
- expect ( result [ 0 ] . toString ( ) ) . to . equal ( 'hello' )
199
-
200
- const addr = multiaddr ( handlerSpies [ 1 ] . args [ 2 ] [ 0 ] . dstPeer . addrs [ 0 ] ) . toString ( )
201
- expect ( addr ) . to . equal ( `/ipfs/${ nodeTCP2 . peerInfo . id . toB58String ( ) } ` )
202
- done ( )
203
- } )
204
- )
177
+ describe ( `explicit relay` , function ( ) {
178
+ it ( 'should dial from WS1 to TCP1 over R1' , function ( done ) {
179
+ nodeWS1 . dial ( nodeTCP1 . peerInfo , '/echo/1.0.0' , ( err , conn ) => {
180
+ expect ( err ) . to . not . exist ( )
181
+ expect ( conn ) . to . exist ( )
182
+
183
+ pull (
184
+ pull . values ( [ 'hello' ] ) ,
185
+ conn ,
186
+ pull . collect ( ( e , result ) => {
187
+ expect ( e ) . to . not . exist ( )
188
+ expect ( result [ 0 ] . toString ( ) ) . to . equal ( 'hello' )
189
+
190
+ const addr = multiaddr ( handlerSpies [ 0 ] . args [ 2 ] [ 0 ] . dstPeer . addrs [ 0 ] ) . toString ( )
191
+ expect ( addr ) . to . equal ( `/ipfs/${ nodeTCP1 . peerInfo . id . toB58String ( ) } ` )
192
+ done ( )
193
+ } )
194
+ )
195
+ } )
205
196
} )
206
- } )
207
197
208
- it ( `should not dial - no R from WS2 to TCP1` , function ( done ) {
209
- nodeWS2 . dial ( nodeTCP2 . peerInfo , '/echo/1.0.0' , ( err , conn ) => {
210
- expect ( err ) . to . exist ( )
211
- expect ( conn ) . to . not . exist ( )
212
- done ( )
198
+ it ( `should dial from WS1 to TCP2 over R2` , function ( done ) {
199
+ nodeWS1 . dial ( nodeTCP2 . peerInfo , '/echo/1.0.0' , ( err , conn ) => {
200
+ expect ( err ) . to . not . exist ( )
201
+ expect ( conn ) . to . exist ( )
202
+
203
+ pull (
204
+ pull . values ( [ 'hello' ] ) ,
205
+ conn ,
206
+ pull . collect ( ( e , result ) => {
207
+ expect ( e ) . to . not . exist ( )
208
+ expect ( result [ 0 ] . toString ( ) ) . to . equal ( 'hello' )
209
+
210
+ const addr = multiaddr ( handlerSpies [ 1 ] . args [ 2 ] [ 0 ] . dstPeer . addrs [ 0 ] ) . toString ( )
211
+ expect ( addr ) . to . equal ( `/ipfs/${ nodeTCP2 . peerInfo . id . toB58String ( ) } ` )
212
+ done ( )
213
+ } )
214
+ )
215
+ } )
213
216
} )
214
217
} )
215
218
} )
0 commit comments