@@ -77,19 +77,18 @@ describe('basics between 2 nodes', () => {
77
77
78
78
it ( 'Subscribe to a topic:Z in nodeA' , ( done ) => {
79
79
fsA . subscribe ( 'Z' )
80
- setTimeout ( ( ) => {
80
+ fsB . once ( 'floodsub:subscription-change' , ( changedPeerInfo , changedTopics , changedSubs ) => {
81
81
expectSet ( fsA . subscriptions , [ 'Z' ] )
82
82
expect ( fsB . peers . size ) . to . equal ( 1 )
83
83
expectSet ( first ( fsB . peers ) . topics , [ 'Z' ] )
84
+ expect ( changedPeerInfo . id . toB58String ( ) ) . to . equal ( first ( fsB . peers ) . info . id . toB58String ( ) )
85
+ expectSet ( changedTopics , [ 'Z' ] )
86
+ expect ( changedSubs ) . to . be . eql ( [ { topicCID : 'Z' , subscribe : true } ] )
84
87
done ( )
85
- } , 100 )
88
+ } )
86
89
} )
87
90
88
91
it ( 'Publish to a topic:Z in nodeA' , ( done ) => {
89
- fsB . once ( 'Z' , shouldNotHappen )
90
-
91
- function shouldNotHappen ( msg ) { expect . fail ( ) }
92
-
93
92
fsA . once ( 'Z' , ( msg ) => {
94
93
expect ( msg . data . toString ( ) ) . to . equal ( 'hey' )
95
94
fsB . removeListener ( 'Z' , shouldNotHappen )
@@ -102,8 +101,6 @@ describe('basics between 2 nodes', () => {
102
101
} )
103
102
104
103
it ( 'Publish to a topic:Z in nodeB' , ( done ) => {
105
- fsB . once ( 'Z' , shouldNotHappen )
106
-
107
104
fsA . once ( 'Z' , ( msg ) => {
108
105
fsA . once ( 'Z' , shouldNotHappen )
109
106
expect ( msg . data . toString ( ) ) . to . equal ( 'banana' )
@@ -135,6 +132,7 @@ describe('basics between 2 nodes', () => {
135
132
136
133
if ( ++ counter === 10 ) {
137
134
fsA . removeListener ( 'Z' , receivedMsg )
135
+ fsB . removeListener ( 'Z' , shouldNotHappen )
138
136
done ( )
139
137
}
140
138
}
@@ -157,6 +155,7 @@ describe('basics between 2 nodes', () => {
157
155
158
156
if ( ++ counter === 10 ) {
159
157
fsA . removeListener ( 'Z' , receivedMsg )
158
+ fsB . removeListener ( 'Z' , shouldNotHappen )
160
159
done ( )
161
160
}
162
161
}
@@ -170,11 +169,14 @@ describe('basics between 2 nodes', () => {
170
169
fsA . unsubscribe ( 'Z' )
171
170
expect ( fsA . subscriptions . size ) . to . equal ( 0 )
172
171
173
- setTimeout ( ( ) => {
172
+ fsB . once ( 'floodsub:subscription-change' , ( changedPeerInfo , changedTopics , changedSubs ) => {
174
173
expect ( fsB . peers . size ) . to . equal ( 1 )
175
174
expectSet ( first ( fsB . peers ) . topics , [ ] )
175
+ expect ( changedPeerInfo . id . toB58String ( ) ) . to . equal ( first ( fsB . peers ) . info . id . toB58String ( ) )
176
+ expectSet ( changedTopics , [ ] )
177
+ expect ( changedSubs ) . to . be . eql ( [ { topicCID : 'Z' , subscribe : false } ] )
176
178
done ( )
177
- } , 100 )
179
+ } )
178
180
} )
179
181
180
182
it ( 'Publish to a topic:Z in nodeA nodeB' , ( done ) => {
@@ -242,22 +244,26 @@ describe('basics between 2 nodes', () => {
242
244
} )
243
245
244
246
it ( 'existing subscriptions are sent upon peer connection' , ( done ) => {
245
- nodeA . dial ( nodeB . peerInfo , ( err ) => {
246
- expect ( err ) . to . not . exist ( )
247
- setTimeout ( ( ) => {
248
- expect ( fsA . peers . size ) . to . equal ( 1 )
249
- expect ( fsB . peers . size ) . to . equal ( 1 )
247
+ parallel ( [
248
+ cb => fsA . once ( 'floodsub:subscription-change' , ( ) => cb ( ) ) ,
249
+ cb => fsB . once ( 'floodsub:subscription-change' , ( ) => cb ( ) )
250
+ ] , ( ) => {
251
+ expect ( fsA . peers . size ) . to . equal ( 1 )
252
+ expect ( fsB . peers . size ) . to . equal ( 1 )
250
253
251
- expectSet ( fsA . subscriptions , [ 'Za' ] )
252
- expect ( fsB . peers . size ) . to . equal ( 1 )
253
- expectSet ( first ( fsB . peers ) . topics , [ 'Za' ] )
254
+ expectSet ( fsA . subscriptions , [ 'Za' ] )
255
+ expect ( fsB . peers . size ) . to . equal ( 1 )
256
+ expectSet ( first ( fsB . peers ) . topics , [ 'Za' ] )
254
257
255
- expectSet ( fsB . subscriptions , [ 'Zb' ] )
256
- expect ( fsA . peers . size ) . to . equal ( 1 )
257
- expectSet ( first ( fsA . peers ) . topics , [ 'Zb' ] )
258
+ expectSet ( fsB . subscriptions , [ 'Zb' ] )
259
+ expect ( fsA . peers . size ) . to . equal ( 1 )
260
+ expectSet ( first ( fsA . peers ) . topics , [ 'Zb' ] )
258
261
259
- done ( )
260
- } , 1000 )
262
+ done ( )
263
+ } )
264
+
265
+ nodeA . dial ( nodeB . peerInfo , ( err ) => {
266
+ expect ( err ) . to . not . exist ( )
261
267
} )
262
268
} )
263
269
0 commit comments