1
1
/* eslint-env mocha */
2
- /* eslint max-nested-callbacks: ["error", 5 ] */
2
+ /* eslint max-nested-callbacks: ["error", 6 ] */
3
3
'use strict'
4
4
5
5
const chai = require ( 'chai' )
@@ -11,7 +11,6 @@ const pull = require('pull-stream')
11
11
const goodbye = require ( 'pull-goodbye' )
12
12
13
13
const WS = require ( '../src' )
14
- const maToUrl = require ( '../src/ma-to-url' )
15
14
16
15
require ( './compliance.node' )
17
16
@@ -23,190 +22,286 @@ describe('instantiate the transport', () => {
23
22
} )
24
23
25
24
describe ( 'listen' , ( ) => {
26
- let ws
27
- const ma = multiaddr ( '/ip4/127.0.0.1/tcp/9090/ws' )
25
+ describe ( 'ip4' , ( ) => {
26
+ let ws
27
+ const ma = multiaddr ( '/ip4/127.0.0.1/tcp/9090/ws' )
28
28
29
- beforeEach ( ( ) => {
30
- ws = new WS ( )
31
- } )
29
+ beforeEach ( ( ) => {
30
+ ws = new WS ( )
31
+ } )
32
32
33
- it ( 'listen, check for callback' , ( done ) => {
34
- const listener = ws . createListener ( ( conn ) => { } )
33
+ it ( 'listen, check for callback' , ( done ) => {
34
+ const listener = ws . createListener ( ( conn ) => { } )
35
35
36
- listener . listen ( ma , ( ) => {
37
- listener . close ( done )
36
+ listener . listen ( ma , ( ) => {
37
+ listener . close ( done )
38
+ } )
38
39
} )
39
- } )
40
40
41
- it ( 'listen, check for listening event' , ( done ) => {
42
- const listener = ws . createListener ( ( conn ) => { } )
41
+ it ( 'listen, check for listening event' , ( done ) => {
42
+ const listener = ws . createListener ( ( conn ) => { } )
43
43
44
- listener . on ( 'listening' , ( ) => {
45
- listener . close ( done )
44
+ listener . on ( 'listening' , ( ) => {
45
+ listener . close ( done )
46
+ } )
47
+
48
+ listener . listen ( ma )
46
49
} )
47
50
48
- listener . listen ( ma )
49
- } )
51
+ it ( ' listen, check for the close event' , ( done ) => {
52
+ const listener = ws . createListener ( ( conn ) => { } )
50
53
51
- it ( 'listen, check for the close event' , ( done ) => {
52
- const listener = ws . createListener ( ( conn ) => { } )
54
+ listener . on ( 'listening' , ( ) => {
55
+ listener . on ( 'close' , done )
56
+ listener . close ( )
57
+ } )
53
58
54
- listener . on ( 'listening' , ( ) => {
55
- listener . on ( 'close' , done )
56
- listener . close ( )
59
+ listener . listen ( ma )
57
60
} )
58
61
59
- listener . listen ( ma )
60
- } )
62
+ it ( ' listen on addr with /ipfs/QmHASH' , ( done ) => {
63
+ const ma = multiaddr ( '/ip4/127.0.0.1/tcp/9090/ws/ipfs/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw' )
61
64
62
- it ( 'listen on addr with /ipfs/QmHASH' , ( done ) => {
63
- const ma = multiaddr ( '/ip4/127.0.0.1/tcp/9090/ws/ipfs/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw' )
65
+ const listener = ws . createListener ( ( conn ) => { } )
64
66
65
- const listener = ws . createListener ( ( conn ) => { } )
67
+ listener . listen ( ma , ( ) => {
68
+ listener . close ( done )
69
+ } )
70
+ } )
66
71
67
- listener . listen ( ma , ( ) => {
68
- listener . close ( done )
72
+ it . skip ( 'close listener with connections, through timeout' , ( done ) => {
73
+ // TODO `ws` closes all anyway, we need to make it not close
74
+ // first - https://github.com/diasdavid/simple-websocket-server
69
75
} )
70
- } )
71
76
72
- it . skip ( 'close listener with connections, through timeout' , ( done ) => {
73
- // TODO `ws` closes all anyway, we need to make it not close
74
- // first - https://github.com/diasdavid/simple-websocket-server
75
- } )
77
+ it . skip ( 'listen on port 0' , ( done ) => {
78
+ // TODO port 0 not supported yet
79
+ } )
76
80
77
- it . skip ( 'listen on port 0' , ( done ) => {
78
- // TODO port 0 not supported yet
79
- } )
80
- it . skip ( 'listen on IPv6 addr' , ( done ) => {
81
- // TODO IPv6 not supported yet
82
- } )
81
+ it . skip ( 'listen on any Interface' , ( done ) => {
82
+ // TODO 0.0.0.0 not supported yet
83
+ } )
83
84
84
- it . skip ( 'listen on any Interface' , ( done ) => {
85
- // TODO 0.0.0.0 not supported yet
86
- } )
85
+ it ( 'getAddrs' , ( done ) => {
86
+ const listener = ws . createListener ( ( conn ) => {
87
+ } )
88
+ listener . listen ( ma , ( ) => {
89
+ listener . getAddrs ( ( err , addrs ) => {
90
+ expect ( err ) . to . not . exist ( )
91
+ expect ( addrs . length ) . to . equal ( 1 )
92
+ expect ( addrs [ 0 ] ) . to . deep . equal ( ma )
93
+ listener . close ( done )
94
+ } )
95
+ } )
96
+ } )
87
97
88
- it ( 'getAddrs' , ( done ) => {
89
- const listener = ws . createListener ( ( conn ) => {
98
+ it ( 'getAddrs on port 0 listen' , ( done ) => {
99
+ const addr = multiaddr ( `/ip4/127.0.0.1/tcp/0/ws` )
100
+ const listener = ws . createListener ( ( conn ) => {
101
+ } )
102
+ listener . listen ( addr , ( ) => {
103
+ listener . getAddrs ( ( err , addrs ) => {
104
+ expect ( err ) . to . not . exist ( )
105
+ expect ( addrs . length ) . to . equal ( 1 )
106
+ expect ( addrs . map ( ( a ) => a . toOptions ( ) . port ) ) . to . not . include ( '0' )
107
+ listener . close ( done )
108
+ } )
109
+ } )
90
110
} )
91
- listener . listen ( ma , ( ) => {
92
- listener . getAddrs ( ( err , addrs ) => {
93
- expect ( err ) . to . not . exist ( )
94
- expect ( addrs . length ) . to . equal ( 1 )
95
- expect ( addrs [ 0 ] ) . to . deep . equal ( ma )
96
- listener . close ( done )
111
+
112
+ it ( 'getAddrs from listening on 0.0.0.0' , ( done ) => {
113
+ const addr = multiaddr ( `/ip4/0.0.0.0/tcp/9003/ws` )
114
+ const listener = ws . createListener ( ( conn ) => {
115
+ } )
116
+ listener . listen ( addr , ( ) => {
117
+ listener . getAddrs ( ( err , addrs ) => {
118
+ expect ( err ) . to . not . exist ( )
119
+ expect ( addrs . map ( ( a ) => a . toOptions ( ) . host ) ) . to . not . include ( '0.0.0.0' )
120
+ listener . close ( done )
121
+ } )
97
122
} )
98
123
} )
99
- } )
100
124
101
- it ( 'getAddrs on port 0 listen' , ( done ) => {
102
- const addr = multiaddr ( `/ip4/127.0.0.1/tcp/0/ws` )
103
- const listener = ws . createListener ( ( conn ) => {
125
+ it ( 'getAddrs from listening on 0.0.0.0 and port 0' , ( done ) => {
126
+ const addr = multiaddr ( `/ip4/0.0.0.0/tcp/0/ws` )
127
+ const listener = ws . createListener ( ( conn ) => {
128
+ } )
129
+ listener . listen ( addr , ( ) => {
130
+ listener . getAddrs ( ( err , addrs ) => {
131
+ expect ( err ) . to . not . exist ( )
132
+ expect ( addrs . map ( ( a ) => a . toOptions ( ) . host ) ) . to . not . include ( '0.0.0.0' )
133
+ expect ( addrs . map ( ( a ) => a . toOptions ( ) . port ) ) . to . not . include ( '0' )
134
+ listener . close ( done )
135
+ } )
136
+ } )
104
137
} )
105
- listener . listen ( addr , ( ) => {
106
- listener . getAddrs ( ( err , addrs ) => {
107
- expect ( err ) . to . not . exist ( )
108
- expect ( addrs . length ) . to . equal ( 1 )
109
- expect ( addrs . map ( ( a ) => a . toOptions ( ) . port ) ) . to . not . include ( '0' )
110
- listener . close ( done )
138
+
139
+ it ( 'getAddrs preserves IPFS Id' , ( done ) => {
140
+ const ma = multiaddr ( '/ip4/127.0.0.1/tcp/9090/ws/ipfs/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw' )
141
+
142
+ const listener = ws . createListener ( ( conn ) => { } )
143
+
144
+ listener . listen ( ma , ( ) => {
145
+ listener . getAddrs ( ( err , addrs ) => {
146
+ expect ( err ) . to . not . exist ( )
147
+ expect ( addrs . length ) . to . equal ( 1 )
148
+ expect ( addrs [ 0 ] ) . to . deep . equal ( ma )
149
+ listener . close ( done )
150
+ } )
111
151
} )
112
152
} )
113
153
} )
114
154
115
- it ( 'getAddrs from listening on 0.0.0.0' , ( done ) => {
116
- const addr = multiaddr ( `/ip4/0.0.0.0/tcp/9003/ws` )
117
- const listener = ws . createListener ( ( conn ) => {
155
+ describe ( 'ip6' , ( ) => {
156
+ let ws
157
+ const ma = multiaddr ( '/ip6/::1/tcp/9091/ws' )
158
+
159
+ beforeEach ( ( ) => {
160
+ ws = new WS ( )
118
161
} )
119
- listener . listen ( addr , ( ) => {
120
- listener . getAddrs ( ( err , addrs ) => {
121
- expect ( err ) . to . not . exist ( )
122
- expect ( addrs . map ( ( a ) => a . toOptions ( ) . host ) ) . to . not . include ( '0.0.0.0' )
162
+
163
+ it ( 'listen, check for callback' , ( done ) => {
164
+ const listener = ws . createListener ( ( conn ) => { } )
165
+
166
+ listener . listen ( ma , ( ) => {
123
167
listener . close ( done )
124
168
} )
125
169
} )
126
- } )
127
170
128
- it ( 'getAddrs from listening on 0.0.0.0 and port 0' , ( done ) => {
129
- const addr = multiaddr ( `/ip4/0.0.0.0/tcp/0/ws` )
130
- const listener = ws . createListener ( ( conn ) => {
131
- } )
132
- listener . listen ( addr , ( ) => {
133
- listener . getAddrs ( ( err , addrs ) => {
134
- expect ( err ) . to . not . exist ( )
135
- expect ( addrs . map ( ( a ) => a . toOptions ( ) . host ) ) . to . not . include ( '0.0.0.0' )
136
- expect ( addrs . map ( ( a ) => a . toOptions ( ) . port ) ) . to . not . include ( '0' )
171
+ it ( 'listen, check for listening event' , ( done ) => {
172
+ const listener = ws . createListener ( ( conn ) => { } )
173
+
174
+ listener . on ( 'listening' , ( ) => {
137
175
listener . close ( done )
138
176
} )
177
+
178
+ listener . listen ( ma )
139
179
} )
140
- } )
141
180
142
- it ( 'getAddrs preserves IPFS Id ' , ( done ) => {
143
- const ma = multiaddr ( '/ip4/127.0.0.1/tcp/9090/ws/ipfs/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw' )
181
+ it ( 'listen, check for the close event ' , ( done ) => {
182
+ const listener = ws . createListener ( ( conn ) => { } )
144
183
145
- const listener = ws . createListener ( ( conn ) => { } )
184
+ listener . on ( 'listening' , ( ) => {
185
+ listener . on ( 'close' , done )
186
+ listener . close ( )
187
+ } )
146
188
147
- listener . listen ( ma , ( ) => {
148
- listener . getAddrs ( ( err , addrs ) => {
149
- expect ( err ) . to . not . exist ( )
150
- expect ( addrs . length ) . to . equal ( 1 )
151
- expect ( addrs [ 0 ] ) . to . deep . equal ( ma )
189
+ listener . listen ( ma )
190
+ } )
191
+
192
+ it ( 'listen on addr with /ipfs/QmHASH' , ( done ) => {
193
+ const ma = multiaddr ( '/ip6/::1/tcp/9091/ws/ipfs/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw' )
194
+
195
+ const listener = ws . createListener ( ( conn ) => { } )
196
+
197
+ listener . listen ( ma , ( ) => {
152
198
listener . close ( done )
153
199
} )
154
200
} )
155
201
} )
156
202
} )
157
203
158
204
describe ( 'dial' , ( ) => {
159
- let ws
160
- let listener
161
- const ma = multiaddr ( '/ip4/127.0.0.1/tcp/9091/ws' )
162
-
163
- beforeEach ( ( done ) => {
164
- ws = new WS ( )
165
- listener = ws . createListener ( ( conn ) => {
166
- pull ( conn , conn )
205
+ describe ( 'ip4' , ( ) => {
206
+ let ws
207
+ let listener
208
+ const ma = multiaddr ( '/ip4/127.0.0.1/tcp/9091/ws' )
209
+
210
+ beforeEach ( ( done ) => {
211
+ ws = new WS ( )
212
+ listener = ws . createListener ( ( conn ) => {
213
+ pull ( conn , conn )
214
+ } )
215
+ listener . listen ( ma , done )
167
216
} )
168
- listener . listen ( ma , done )
169
- } )
170
217
171
- afterEach ( ( done ) => {
172
- listener . close ( done )
173
- } )
218
+ afterEach ( ( done ) => {
219
+ listener . close ( done )
220
+ } )
174
221
175
- it ( 'dial on IPv4 ' , ( done ) => {
176
- const conn = ws . dial ( ma )
222
+ it ( 'dial' , ( done ) => {
223
+ const conn = ws . dial ( ma )
177
224
178
- const s = goodbye ( {
179
- source : pull . values ( [ 'hey' ] ) ,
180
- sink : pull . collect ( ( err , result ) => {
181
- expect ( err ) . to . not . exist ( )
225
+ const s = goodbye ( {
226
+ source : pull . values ( [ 'hey' ] ) ,
227
+ sink : pull . collect ( ( err , result ) => {
228
+ expect ( err ) . to . not . exist ( )
182
229
183
- expect ( result ) . to . be . eql ( [ 'hey' ] )
184
- done ( )
230
+ expect ( result ) . to . be . eql ( [ 'hey' ] )
231
+ done ( )
232
+ } )
185
233
} )
234
+
235
+ pull ( s , conn , s )
186
236
} )
187
237
188
- pull ( s , conn , s )
189
- } )
238
+ it ( 'dial with IPFS Id' , ( done ) => {
239
+ const ma = multiaddr ( '/ip4/127.0.0.1/tcp/9091/ws/ipfs/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw' )
240
+ const conn = ws . dial ( ma )
241
+
242
+ const s = goodbye ( {
243
+ source : pull . values ( [ 'hey' ] ) ,
244
+ sink : pull . collect ( ( err , result ) => {
245
+ expect ( err ) . to . not . exist ( )
190
246
191
- it . skip ( 'dial on IPv6' , ( done ) => {
192
- // TODO IPv6 not supported yet
247
+ expect ( result ) . to . be . eql ( [ 'hey' ] )
248
+ done ( )
249
+ } )
250
+ } )
251
+
252
+ pull ( s , conn , s )
253
+ } )
193
254
} )
194
255
195
- it ( 'dial on IPv4 with IPFS Id' , ( done ) => {
196
- const ma = multiaddr ( '/ip4/127.0.0.1/tcp/9091/ws/ipfs/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw' )
197
- const conn = ws . dial ( ma )
256
+ describe ( 'ip6' , ( ) => {
257
+ let ws
258
+ let listener
259
+ const ma = multiaddr ( '/ip6/::1/tcp/9091' )
198
260
199
- const s = goodbye ( {
200
- source : pull . values ( [ 'hey' ] ) ,
201
- sink : pull . collect ( ( err , result ) => {
202
- expect ( err ) . to . not . exist ( )
261
+ beforeEach ( ( done ) => {
262
+ ws = new WS ( )
263
+ listener = ws . createListener ( ( conn ) => {
264
+ pull ( conn , conn )
265
+ } )
266
+ listener . listen ( ma , done )
267
+ } )
203
268
204
- expect ( result ) . to . be . eql ( [ 'hey' ] )
205
- done ( )
269
+ afterEach ( ( done ) => {
270
+ listener . close ( done )
271
+ } )
272
+
273
+ it ( 'dial' , ( done ) => {
274
+ const conn = ws . dial ( ma )
275
+
276
+ const s = goodbye ( {
277
+ source : pull . values ( [ 'hey' ] ) ,
278
+ sink : pull . collect ( ( err , result ) => {
279
+ expect ( err ) . to . not . exist ( )
280
+
281
+ expect ( result ) . to . be . eql ( [ 'hey' ] )
282
+ done ( )
283
+ } )
206
284
} )
285
+
286
+ pull ( s , conn , s )
207
287
} )
208
288
209
- pull ( s , conn , s )
289
+ it ( 'dial with IPFS Id' , ( done ) => {
290
+ const ma = multiaddr ( '/ip6/::1/tcp/9091/ws/ipfs/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw' )
291
+ const conn = ws . dial ( ma )
292
+
293
+ const s = goodbye ( {
294
+ source : pull . values ( [ 'hey' ] ) ,
295
+ sink : pull . collect ( ( err , result ) => {
296
+ expect ( err ) . to . not . exist ( )
297
+
298
+ expect ( result ) . to . be . eql ( [ 'hey' ] )
299
+ done ( )
300
+ } )
301
+ } )
302
+
303
+ pull ( s , conn , s )
304
+ } )
210
305
} )
211
306
} )
212
307
@@ -460,24 +555,6 @@ describe('valid Connection', () => {
460
555
} )
461
556
} )
462
557
463
- describe ( 'ma-to-url test' , function ( ) {
464
- it ( 'should convert ipv4 ma to url' , function ( ) {
465
- expect ( maToUrl ( multiaddr ( '/ip4/127.0.0.1/ws' ) ) ) . to . equal ( 'ws://127.0.0.1' )
466
- } )
467
-
468
- it ( 'should convert ipv4 ma with port to url' , function ( ) {
469
- expect ( maToUrl ( multiaddr ( '/ip4/127.0.0.1/tcp/80/ws' ) ) ) . to . equal ( 'ws://127.0.0.1:80' )
470
- } )
471
-
472
- it ( 'should convert dns ma to url' , function ( ) {
473
- expect ( maToUrl ( multiaddr ( '/dns4/ipfs.io/ws' ) ) ) . to . equal ( 'ws://ipfs.io' )
474
- } )
475
-
476
- it ( 'should convert dns ma with port to url' , function ( ) {
477
- expect ( maToUrl ( multiaddr ( '/dns4/ipfs.io/tcp/80/ws' ) ) ) . to . equal ( 'ws://ipfs.io:80' )
478
- } )
479
- } )
480
-
481
558
describe . skip ( 'turbolence' , ( ) => {
482
559
it ( 'dialer - emits error on the other end is terminated abruptly' , ( done ) => {
483
560
} )
0 commit comments