File tree 3 files changed +21
-13
lines changed
3 files changed +21
-13
lines changed Original file line number Diff line number Diff line change @@ -70,14 +70,14 @@ class FloodSub extends EventEmitter {
70
70
Connection specifically between me and that Peer"
71
71
*/
72
72
let existing = this . peers . get ( id )
73
- if ( existing ) {
74
- log ( 'already existing peer' , id )
75
- ++ existing . _references
76
- } else {
73
+ if ( ! existing ) {
77
74
log ( 'new peer' , id )
78
75
this . peers . set ( id , peer )
79
76
existing = peer
77
+
78
+ peer . once ( 'close' , ( ) => this . _removePeer ( peer ) )
80
79
}
80
+ ++ existing . _references
81
81
82
82
return existing
83
83
}
Original file line number Diff line number Diff line change @@ -35,7 +35,7 @@ class Peer extends EventEmitter {
35
35
*/
36
36
this . stream = null
37
37
38
- this . _references = 1
38
+ this . _references = 0
39
39
}
40
40
41
41
/**
Original file line number Diff line number Diff line change @@ -304,13 +304,6 @@ describe('basics between 2 nodes', () => {
304
304
} )
305
305
} )
306
306
307
- after ( ( done ) => {
308
- parallel ( [
309
- ( cb ) => nodeA . stop ( cb ) ,
310
- ( cb ) => nodeB . stop ( cb )
311
- ] , done )
312
- } )
313
-
314
307
it ( 'peer is removed from the state when connection ends' , ( done ) => {
315
308
nodeA . dial ( nodeB . peerInfo , ( err ) => {
316
309
expect ( err ) . to . not . exist ( )
@@ -321,10 +314,25 @@ describe('basics between 2 nodes', () => {
321
314
fsA . stop ( ( ) => setTimeout ( ( ) => {
322
315
expect ( first ( fsB . peers ) . _references ) . to . equal ( 1 )
323
316
done ( )
324
- } , 250 ) )
317
+ } , 1000 ) )
325
318
} , 1000 )
326
319
} )
327
320
} )
321
+
322
+ it ( 'stop one node' , ( done ) => {
323
+ parallel ( [
324
+ ( cb ) => nodeA . stop ( cb ) ,
325
+ ( cb ) => nodeB . stop ( cb )
326
+ ] , done )
327
+ } )
328
+
329
+ it ( 'nodes don\'t have peers in it' , ( done ) => {
330
+ setTimeout ( ( ) => {
331
+ expect ( fsA . peers . size ) . to . equal ( 0 )
332
+ expect ( fsB . peers . size ) . to . equal ( 0 )
333
+ done ( )
334
+ } , 1000 )
335
+ } )
328
336
} )
329
337
330
338
describe ( 'dial the pubsub protocol on mount' , ( ) => {
You can’t perform that action at this time.
0 commit comments