23
23
../../ waku/ v2/ protocol/ waku_store,
24
24
../../ waku/ v2/ protocol/ waku_filter,
25
25
../../ waku/ v2/ protocol/ waku_swap/ waku_swap,
26
- ../ test_helpers
26
+ ../ test_helpers,
27
+ ./ testlib/ testutils
27
28
28
29
procSuite " Peer Manager" :
29
30
asyncTest " Peer dialing works" :
@@ -49,11 +50,11 @@ procSuite "Peer Manager":
49
50
50
51
# Check that node2 is being managed in node1
51
52
check:
52
- node1.peerManager.peers ().anyIt (it.peerId == peerInfo2.peerId)
53
+ node1.peerManager.peerStore. peers ().anyIt (it.peerId == peerInfo2.peerId)
53
54
54
55
# Check connectedness
55
56
check:
56
- node1.peerManager.connectedness (peerInfo2.peerId) == Connectedness .Connected
57
+ node1.peerManager.peerStore. connectedness (peerInfo2.peerId) == Connectedness .Connected
57
58
58
59
await allFutures ([node1.stop (), node2.stop ()])
59
60
@@ -110,16 +111,16 @@ procSuite "Peer Manager":
110
111
111
112
# Check peers were successfully added to peer manager
112
113
check:
113
- node.peerManager.peers ().len == 3
114
- node.peerManager.peers (WakuFilterCodec ).allIt (it.peerId == filterPeer.peerId and
115
- it.addrs.contains (filterLoc) and
116
- it.protos.contains (WakuFilterCodec ))
117
- node.peerManager.peers (WakuSwapCodec ).allIt (it.peerId == swapPeer.peerId and
118
- it.addrs.contains (swapLoc) and
119
- it.protos.contains (WakuSwapCodec ))
120
- node.peerManager.peers (WakuStoreCodec ).allIt (it.peerId == storePeer.peerId and
121
- it.addrs.contains (storeLoc) and
122
- it.protos.contains (WakuStoreCodec ))
114
+ node.peerManager.peerStore. peers ().len == 3
115
+ node.peerManager.peerStore. peers (WakuFilterCodec ).allIt (it.peerId == filterPeer.peerId and
116
+ it.addrs.contains (filterLoc) and
117
+ it.protos.contains (WakuFilterCodec ))
118
+ node.peerManager.peerStore. peers (WakuSwapCodec ).allIt (it.peerId == swapPeer.peerId and
119
+ it.addrs.contains (swapLoc) and
120
+ it.protos.contains (WakuSwapCodec ))
121
+ node.peerManager.peerStore. peers (WakuStoreCodec ).allIt (it.peerId == storePeer.peerId and
122
+ it.addrs.contains (storeLoc) and
123
+ it.protos.contains (WakuStoreCodec ))
123
124
124
125
await node.stop ()
125
126
@@ -141,27 +142,27 @@ procSuite "Peer Manager":
141
142
node1.peerManager.addPeer (peerInfo2.toRemotePeerInfo (), WakuRelayCodec )
142
143
check:
143
144
# No information about node2's connectedness
144
- node1.peerManager.connectedness (peerInfo2.peerId) == NotConnected
145
+ node1.peerManager.peerStore. connectedness (peerInfo2.peerId) == NotConnected
145
146
146
147
# Purposefully don't start node2
147
148
# Attempt dialing node2 from node1
148
149
discard await node1.peerManager.dialPeer (peerInfo2.toRemotePeerInfo (), WakuRelayCodec , 2 .seconds)
149
150
check:
150
151
# Cannot connect to node2
151
- node1.peerManager.connectedness (peerInfo2.peerId) == CannotConnect
152
+ node1.peerManager.peerStore. connectedness (peerInfo2.peerId) == CannotConnect
152
153
153
154
# Successful connection
154
155
await node2.start ()
155
156
discard await node1.peerManager.dialPeer (peerInfo2.toRemotePeerInfo (), WakuRelayCodec , 2 .seconds)
156
157
check:
157
158
# Currently connected to node2
158
- node1.peerManager.connectedness (peerInfo2.peerId) == Connected
159
+ node1.peerManager.peerStore. connectedness (peerInfo2.peerId) == Connected
159
160
160
161
# Stop node. Gracefully disconnect from all peers.
161
162
await node1.stop ()
162
163
check:
163
164
# Not currently connected to node2, but had recent, successful connection.
164
- node1.peerManager.connectedness (peerInfo2.peerId) == CanConnect
165
+ node1.peerManager.peerStore. connectedness (peerInfo2.peerId) == CanConnect
165
166
166
167
await node2.stop ()
167
168
@@ -184,9 +185,9 @@ procSuite "Peer Manager":
184
185
discard await node1.peerManager.dialPeer (peerInfo2.toRemotePeerInfo (), WakuRelayCodec , 2 .seconds)
185
186
check:
186
187
# Currently connected to node2
187
- node1.peerManager.peers ().len == 1
188
- node1.peerManager.peers ().anyIt (it.peerId == peerInfo2.peerId)
189
- node1.peerManager.connectedness (peerInfo2.peerId) == Connected
188
+ node1.peerManager.peerStore. peers ().len == 1
189
+ node1.peerManager.peerStore. peers ().anyIt (it.peerId == peerInfo2.peerId)
190
+ node1.peerManager.peerStore. connectedness (peerInfo2.peerId) == Connected
190
191
191
192
# Simulate restart by initialising a new node using the same storage
192
193
let
@@ -196,21 +197,22 @@ procSuite "Peer Manager":
196
197
await node3.start ()
197
198
check:
198
199
# Node2 has been loaded after "restart", but we have not yet reconnected
199
- node3.peerManager.peers ().len == 1
200
- node3.peerManager.peers ().anyIt (it.peerId == peerInfo2.peerId)
201
- node3.peerManager.connectedness (peerInfo2.peerId) == NotConnected
200
+ node3.peerManager.peerStore. peers ().len == 1
201
+ node3.peerManager.peerStore. peers ().anyIt (it.peerId == peerInfo2.peerId)
202
+ node3.peerManager.peerStore. connectedness (peerInfo2.peerId) == NotConnected
202
203
203
204
await node3.mountRelay () # This should trigger a reconnect
204
205
205
206
check:
206
207
# Reconnected to node2 after "restart"
207
- node3.peerManager.peers ().len == 1
208
- node3.peerManager.peers ().anyIt (it.peerId == peerInfo2.peerId)
209
- node3.peerManager.connectedness (peerInfo2.peerId) == Connected
208
+ node3.peerManager.peerStore. peers ().len == 1
209
+ node3.peerManager.peerStore. peers ().anyIt (it.peerId == peerInfo2.peerId)
210
+ node3.peerManager.peerStore. connectedness (peerInfo2.peerId) == Connected
210
211
211
212
await allFutures ([node1.stop (), node2.stop (), node3.stop ()])
212
-
213
- asyncTest " Peer manager support multiple protocol IDs when reconnecting to peers" :
213
+
214
+ # TODO: nwaku/issues/1377
215
+ xasyncTest " Peer manager support multiple protocol IDs when reconnecting to peers" :
214
216
let
215
217
database = SqliteDatabase .new (" :memory:" )[]
216
218
storage = WakuPeerStorage .new (database)[]
@@ -233,10 +235,10 @@ procSuite "Peer Manager":
233
235
discard await node1.peerManager.dialPeer (peerInfo2.toRemotePeerInfo (), node2.wakuRelay.codec, 2 .seconds)
234
236
check:
235
237
# Currently connected to node2
236
- node1.peerManager.peers ().len == 1
237
- node1.peerManager.peers ().anyIt (it.peerId == peerInfo2.peerId)
238
- node1.peerManager.peers ().anyIt (it.protos.contains (node2.wakuRelay.codec))
239
- node1.peerManager.connectedness (peerInfo2.peerId) == Connected
238
+ node1.peerManager.peerStore. peers ().len == 1
239
+ node1.peerManager.peerStore. peers ().anyIt (it.peerId == peerInfo2.peerId)
240
+ node1.peerManager.peerStore. peers ().anyIt (it.protos.contains (node2.wakuRelay.codec))
241
+ node1.peerManager.peerStore. connectedness (peerInfo2.peerId) == Connected
240
242
241
243
# Simulate restart by initialising a new node using the same storage
242
244
let
@@ -250,19 +252,19 @@ procSuite "Peer Manager":
250
252
node2.wakuRelay.codec == betaCodec
251
253
node3.wakuRelay.codec == stableCodec
252
254
# Node2 has been loaded after "restart", but we have not yet reconnected
253
- node3.peerManager.peers ().len == 1
254
- node3.peerManager.peers ().anyIt (it.peerId == peerInfo2.peerId)
255
- node3.peerManager.peers ().anyIt (it.protos.contains (betaCodec))
256
- node3.peerManager.connectedness (peerInfo2.peerId) == NotConnected
255
+ node3.peerManager.peerStore. peers ().len == 1
256
+ node3.peerManager.peerStore. peers ().anyIt (it.peerId == peerInfo2.peerId)
257
+ node3.peerManager.peerStore. peers ().anyIt (it.protos.contains (betaCodec))
258
+ node3.peerManager.peerStore. connectedness (peerInfo2.peerId) == NotConnected
257
259
258
260
await node3.start () # This should trigger a reconnect
259
261
260
262
check:
261
263
# Reconnected to node2 after "restart"
262
- node3.peerManager.peers ().len == 1
263
- node3.peerManager.peers ().anyIt (it.peerId == peerInfo2.peerId)
264
- node3.peerManager.peers ().anyIt (it.protos.contains (betaCodec))
265
- node3.peerManager.peers ().anyIt (it.protos.contains (stableCodec))
266
- node3.peerManager.connectedness (peerInfo2.peerId) == Connected
264
+ node3.peerManager.peerStore. peers ().len == 1
265
+ node3.peerManager.peerStore. peers ().anyIt (it.peerId == peerInfo2.peerId)
266
+ node3.peerManager.peerStore. peers ().anyIt (it.protos.contains (betaCodec))
267
+ node3.peerManager.peerStore. peers ().anyIt (it.protos.contains (stableCodec))
268
+ node3.peerManager.peerStore. connectedness (peerInfo2.peerId) == Connected
267
269
268
270
await allFutures ([node1.stop (), node2.stop (), node3.stop ()])
0 commit comments