@@ -18,124 +18,126 @@ const expect = chai.expect
18
18
const nodeKeys = require ( './fixtures/nodes' )
19
19
const Circuit = require ( 'libp2p-circuit' )
20
20
21
- describe ( `listen on an explicit chained relay addr` , function ( ) {
22
- this . timeout ( 500000 )
23
-
24
- let portBase = 9030 // TODO: randomize or mock sockets
25
- let testNodes
26
-
27
- let relaySpy1
28
- let relaySpy2
29
-
30
- function setUpNodes ( muxer , done ) {
31
- utils . createNodes (
32
- {
33
- relayNode1 : {
34
- id : nodeKeys . node1 ,
35
- transports : [ new TCP ( ) , new WS ( ) ] ,
36
- muxer : muxer ,
37
- addrs : [
38
- `/ip4/0.0.0.0/tcp/${ portBase ++ } ` ,
39
- `/ip4/0.0.0.0/tcp/${ portBase ++ } /ws`
40
- ] ,
41
- isCrypto : true ,
42
- config : {
43
- relay : {
44
- circuit : {
45
- enabled : true ,
46
- active : true
21
+ describe ( `dial over specific relay and transport` , function ( ) {
22
+ describe ( `listen on an explicit chained relay addr` , function ( ) {
23
+ this . timeout ( 500000 )
24
+
25
+ let portBase = 9030 // TODO: randomize or mock sockets
26
+ let testNodes
27
+
28
+ let relaySpy1
29
+ let relaySpy2
30
+
31
+ function setUpNodes ( muxer , done ) {
32
+ utils . createNodes (
33
+ {
34
+ relayNode1 : {
35
+ id : nodeKeys . node1 ,
36
+ transports : [ new TCP ( ) , new WS ( ) ] ,
37
+ muxer : muxer ,
38
+ addrs : [
39
+ `/ip4/0.0.0.0/tcp/${ portBase ++ } ` ,
40
+ `/ip4/0.0.0.0/tcp/${ portBase ++ } /ws`
41
+ ] ,
42
+ isCrypto : true ,
43
+ config : {
44
+ relay : {
45
+ circuit : {
46
+ enabled : true ,
47
+ active : true
48
+ }
47
49
}
48
50
}
49
- }
50
- } ,
51
- relayNode2 : {
52
- id : nodeKeys . node2 ,
53
- transports : [ new TCP ( ) , new WS ( ) ] ,
54
- muxer : muxer ,
55
- addrs : [
56
- `/ip4/0.0.0.0/tcp/${ portBase ++ } ` ,
57
- `/ip4/0.0.0.0/tcp/ ${ portBase ++ } /ws`
58
- ] ,
59
- isCrypto : true ,
60
- config : {
61
- relay : {
62
- circuit : {
63
- enabled : true ,
64
- active : true
51
+ } ,
52
+ relayNode2 : {
53
+ id : nodeKeys . node2 ,
54
+ transports : [ new TCP ( ) , new WS ( ) ] ,
55
+ muxer : muxer ,
56
+ addrs : [
57
+ `/ip4/0.0.0.0/tcp/ ${ portBase ++ } ` ,
58
+ `/ip4/0.0.0.0/tcp/${ portBase ++ } /ws`
59
+ ] ,
60
+ isCrypto : true ,
61
+ config : {
62
+ relay : {
63
+ circuit : {
64
+ enabled : true ,
65
+ active : true
66
+ }
65
67
}
66
68
}
69
+ } ,
70
+ nodeA : {
71
+ id : nodeKeys . node3 ,
72
+ transports : [ new TCP ( ) ] ,
73
+ isCrypto : true ,
74
+ muxer : muxer ,
75
+ addrs : [
76
+ `/ip4/0.0.0.0/tcp/${ portBase ++ } `
77
+ ]
78
+ } ,
79
+ nodeB : {
80
+ id : nodeKeys . node4 ,
81
+ transports : [ new WS ( ) ] ,
82
+ isCrypto : true ,
83
+ muxer : muxer ,
84
+ addrs : [
85
+ `/ip4/0.0.0.0/tcp/9031/ws/ipfs/${ nodeKeys . node1 . id } /p2p-circuit`
86
+ ]
67
87
}
68
88
} ,
69
- nodeA : {
70
- id : nodeKeys . node3 ,
71
- transports : [ new TCP ( ) ] ,
72
- isCrypto : true ,
73
- muxer : muxer ,
74
- addrs : [
75
- `/ip4/0.0.0.0/tcp/${ portBase ++ } `
76
- ]
77
- } ,
78
- nodeB : {
79
- id : nodeKeys . node4 ,
80
- transports : [ new WS ( ) ] ,
81
- isCrypto : true ,
82
- muxer : muxer ,
83
- addrs : [
84
- `/ip4/0.0.0.0/tcp/9031/ws/ipfs/${ nodeKeys . node1 . id } /p2p-circuit`
85
- ]
86
- }
87
- } ,
88
- ( err , nodes ) => {
89
- if ( err ) {
90
- return done ( err )
91
- }
92
-
93
- testNodes = nodes
94
- relaySpy1 = sinon . spy ( testNodes [ 'relayNode1' ] . swarm . transports [ Circuit . tag ] . listeners [ 0 ] . hopHandler , 'handle' )
95
- relaySpy2 = sinon . spy ( testNodes [ 'relayNode2' ] . swarm . transports [ Circuit . tag ] . listeners [ 0 ] . hopHandler , 'handle' )
96
-
97
- done ( )
89
+ ( err , nodes ) => {
90
+ if ( err ) {
91
+ return done ( err )
92
+ }
93
+
94
+ testNodes = nodes
95
+ relaySpy1 = sinon . spy ( testNodes [ 'relayNode1' ] . swarm . transports [ Circuit . tag ] . listeners [ 0 ] . hopHandler , 'handle' )
96
+ relaySpy2 = sinon . spy ( testNodes [ 'relayNode2' ] . swarm . transports [ Circuit . tag ] . listeners [ 0 ] . hopHandler , 'handle' )
97
+
98
+ done ( )
99
+ } )
100
+ }
101
+
102
+ beforeEach ( function ( done ) {
103
+ setUpNodes ( multiplex , ( ) => {
104
+ let nodeA = testNodes [ 'nodeA' ]
105
+ let nodeB = testNodes [ 'nodeB' ]
106
+ let relayNode1 = testNodes [ 'relayNode1' ]
107
+ let relayNode2 = testNodes [ 'relayNode2' ]
108
+
109
+ waterfall ( [
110
+ ( cb ) => nodeA . dial ( relayNode1 . peerInfo , cb ) ,
111
+ ( conn , cb ) => nodeA . dial ( relayNode2 . peerInfo , cb ) ,
112
+ ( conn , cb ) => nodeB . dial ( relayNode1 . peerInfo , cb ) ,
113
+ ( conn , cb ) => nodeB . dial ( relayNode2 . peerInfo , cb ) ,
114
+ ( conn , cb ) => relayNode1 . dial ( relayNode2 . peerInfo , cb ) ,
115
+ ( conn , cb ) => relayNode2 . dial ( relayNode1 . peerInfo , cb )
116
+ ] , ( ) => setTimeout ( done , 1000 ) ) // WS needs some time to initialize
98
117
} )
99
- }
100
-
101
- beforeEach ( function ( done ) {
102
- setUpNodes ( multiplex , ( ) => {
103
- let nodeA = testNodes [ 'nodeA' ]
104
- let nodeB = testNodes [ 'nodeB' ]
105
- let relayNode1 = testNodes [ 'relayNode1' ]
106
- let relayNode2 = testNodes [ 'relayNode2' ]
107
-
108
- waterfall ( [
109
- ( cb ) => nodeA . dial ( relayNode1 . peerInfo , cb ) ,
110
- ( conn , cb ) => nodeA . dial ( relayNode2 . peerInfo , cb ) ,
111
- ( conn , cb ) => nodeB . dial ( relayNode1 . peerInfo , cb ) ,
112
- ( conn , cb ) => nodeB . dial ( relayNode2 . peerInfo , cb ) ,
113
- ( conn , cb ) => relayNode1 . dial ( relayNode2 . peerInfo , cb ) ,
114
- ( conn , cb ) => relayNode2 . dial ( relayNode1 . peerInfo , cb )
115
- ] , ( ) => setTimeout ( done , 1000 ) ) // WS needs some time to initialize
116
118
} )
117
- } )
118
119
119
- afterEach ( function circuitTests ( done ) {
120
- relaySpy1 . reset ( )
121
- relaySpy2 . reset ( )
122
- utils . stopNodes ( testNodes , done )
123
- } )
120
+ afterEach ( function circuitTests ( done ) {
121
+ relaySpy1 . reset ( )
122
+ relaySpy2 . reset ( )
123
+ utils . stopNodes ( testNodes , done )
124
+ } )
124
125
125
- it ( 'dial over the correct chained relay addr' , function ( done ) {
126
- utils . dialAndReverse ( testNodes [ 'nodeA' ] , testNodes [ 'nodeB' ] , [ 'hello' ] , ( err , result ) => {
127
- expect ( err ) . to . be . null ( )
128
- expect ( relaySpy1 . called ) . to . be . ok ( )
129
- expect ( relaySpy2 . called ) . to . be . ok ( )
126
+ it ( 'dial over the correct chained relay addr' , function ( done ) {
127
+ utils . dialAndReverse ( testNodes [ 'nodeA' ] , testNodes [ 'nodeB' ] , [ 'hello' ] , ( err , result ) => {
128
+ expect ( err ) . to . be . null ( )
129
+ expect ( relaySpy1 . called ) . to . be . ok ( )
130
+ expect ( relaySpy2 . called ) . to . be . ok ( )
130
131
131
- expect ( relaySpy1 . args . some ( ( a ) => {
132
- return a [ 0 ] &&
133
- a [ 0 ] . dstPeer &&
134
- multiaddr ( a [ 0 ] . dstPeer . addrs [ 0 ] ) . toString ( ) === `/ipfs/${ testNodes [ 'nodeB' ] . peerInfo . id . toB58String ( ) } `
135
- } ) ) . to . be . ok ( )
132
+ expect ( relaySpy1 . args . some ( ( a ) => {
133
+ return a [ 0 ] &&
134
+ a [ 0 ] . dstPeer &&
135
+ multiaddr ( a [ 0 ] . dstPeer . addrs [ 0 ] ) . toString ( ) === `/ipfs/${ testNodes [ 'nodeB' ] . peerInfo . id . toB58String ( ) } `
136
+ } ) ) . to . be . ok ( )
136
137
137
- expect ( result [ 0 ] ) . to . equal ( 'hello' . split ( '' ) . reverse ( '' ) . join ( '' ) )
138
- done ( err )
138
+ expect ( result [ 0 ] ) . to . equal ( 'hello' . split ( '' ) . reverse ( '' ) . join ( '' ) )
139
+ done ( err )
140
+ } )
139
141
} )
140
142
} )
141
143
} )
0 commit comments