@@ -8,6 +8,7 @@ const multiaddr = require('multiaddr')
8
8
const Peer = require ( 'peer-info' )
9
9
const Swarm = require ( '../src' )
10
10
const TCP = require ( 'libp2p-tcp' )
11
+ const WebSockets = require ( 'libp2p-websockets' )
11
12
const bl = require ( 'bl' )
12
13
const spdy = require ( 'libp2p-spdy' )
13
14
@@ -174,18 +175,77 @@ describe('transport - tcp', function () {
174
175
} )
175
176
} )
176
177
177
- describe ( 'transport - udt ' , function ( ) {
178
+ describe ( 'transport - websockets ' , function ( ) {
178
179
this . timeout ( 10000 )
179
180
180
- before ( ( done ) => { done ( ) } )
181
+ var swarmA
182
+ var swarmB
183
+ var peerA = new Peer ( )
184
+ var peerB = new Peer ( )
181
185
182
- it . skip ( 'add' , ( done ) => { } )
183
- it . skip ( 'listen' , ( done ) => { } )
184
- it . skip ( 'dial' , ( done ) => { } )
185
- it . skip ( 'close' , ( done ) => { } )
186
+ before ( ( done ) => {
187
+ peerA . multiaddr . add ( multiaddr ( '/ip4/127.0.0.1/tcp/9888/websockets' ) )
188
+ peerB . multiaddr . add ( multiaddr ( '/ip4/127.0.0.1/tcp/9999/websockets' ) )
189
+ swarmA = new Swarm ( peerA )
190
+ swarmB = new Swarm ( peerB )
191
+ done ( )
192
+ } )
193
+
194
+ it ( 'add' , ( done ) => {
195
+ swarmA . transport . add ( 'ws' , new WebSockets ( ) )
196
+ expect ( Object . keys ( swarmA . transports ) . length ) . to . equal ( 1 )
197
+ swarmB . transport . add ( 'ws' , new WebSockets ( ) , ( ) => {
198
+ expect ( Object . keys ( swarmB . transports ) . length ) . to . equal ( 1 )
199
+ done ( )
200
+ } )
201
+ } )
202
+
203
+ it ( 'listen' , ( done ) => {
204
+ var count = 0
205
+ swarmA . transport . listen ( 'ws' , { } , ( conn ) => {
206
+ conn . pipe ( conn )
207
+ } , ready )
208
+ swarmB . transport . listen ( 'ws' , { } , ( conn ) => {
209
+ conn . pipe ( conn )
210
+ } , ready )
211
+
212
+ function ready ( ) {
213
+ if ( ++ count === 2 ) {
214
+ expect ( peerA . multiaddrs . length ) . to . equal ( 1 )
215
+ expect ( peerA . multiaddrs [ 0 ] ) . to . deep . equal ( multiaddr ( '/ip4/127.0.0.1/tcp/9888/websockets' ) )
216
+ expect ( peerB . multiaddrs . length ) . to . equal ( 1 )
217
+ expect ( peerB . multiaddrs [ 0 ] ) . to . deep . equal ( multiaddr ( '/ip4/127.0.0.1/tcp/9999/websockets' ) )
218
+ done ( )
219
+ }
220
+ }
221
+ } )
222
+
223
+ it ( 'dial' , ( done ) => {
224
+ const conn = swarmA . transport . dial ( 'ws' , multiaddr ( '/ip4/127.0.0.1/tcp/9999/websockets' ) , ( err , conn ) => {
225
+ expect ( err ) . to . not . exist
226
+ } )
227
+ conn . pipe ( bl ( ( err , data ) => {
228
+ expect ( err ) . to . not . exist
229
+ done ( )
230
+ } ) )
231
+ conn . write ( 'hey' )
232
+ conn . end ( )
233
+ } )
234
+
235
+ it ( 'close' , ( done ) => {
236
+ var count = 0
237
+ swarmA . transport . close ( 'ws' , closed )
238
+ swarmB . transport . close ( 'ws' , closed )
239
+
240
+ function closed ( ) {
241
+ if ( ++ count === 2 ) {
242
+ done ( )
243
+ }
244
+ }
245
+ } )
186
246
} )
187
247
188
- describe ( 'transport - websockets ' , function ( ) {
248
+ describe ( 'transport - utp ' , function ( ) {
189
249
this . timeout ( 10000 )
190
250
191
251
before ( ( done ) => { done ( ) } )
0 commit comments