@libp2p/interface-compliance-tests 1.1.24 → 1.1.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/src/mocks/connection-manager.d.ts +0 -8
  2. package/dist/src/mocks/connection-manager.d.ts.map +1 -1
  3. package/dist/src/mocks/connection-manager.js +4 -16
  4. package/dist/src/mocks/connection-manager.js.map +1 -1
  5. package/dist/src/mocks/connection.d.ts +2 -1
  6. package/dist/src/mocks/connection.d.ts.map +1 -1
  7. package/dist/src/mocks/connection.js +4 -4
  8. package/dist/src/mocks/connection.js.map +1 -1
  9. package/dist/src/mocks/registrar.d.ts +2 -5
  10. package/dist/src/mocks/registrar.d.ts.map +1 -1
  11. package/dist/src/mocks/registrar.js +4 -4
  12. package/dist/src/mocks/registrar.js.map +1 -1
  13. package/dist/src/pubsub/api.d.ts.map +1 -1
  14. package/dist/src/pubsub/api.js +10 -15
  15. package/dist/src/pubsub/api.js.map +1 -1
  16. package/dist/src/pubsub/connection-handlers.d.ts.map +1 -1
  17. package/dist/src/pubsub/connection-handlers.js +53 -145
  18. package/dist/src/pubsub/connection-handlers.js.map +1 -1
  19. package/dist/src/pubsub/emit-self.d.ts.map +1 -1
  20. package/dist/src/pubsub/emit-self.js +8 -7
  21. package/dist/src/pubsub/emit-self.js.map +1 -1
  22. package/dist/src/pubsub/messages.d.ts.map +1 -1
  23. package/dist/src/pubsub/messages.js +9 -12
  24. package/dist/src/pubsub/messages.js.map +1 -1
  25. package/dist/src/pubsub/multiple-nodes.d.ts.map +1 -1
  26. package/dist/src/pubsub/multiple-nodes.js +80 -216
  27. package/dist/src/pubsub/multiple-nodes.js.map +1 -1
  28. package/dist/src/pubsub/two-nodes.d.ts.map +1 -1
  29. package/dist/src/pubsub/two-nodes.js +20 -38
  30. package/dist/src/pubsub/two-nodes.js.map +1 -1
  31. package/dist/src/pubsub/utils.d.ts +2 -0
  32. package/dist/src/pubsub/utils.d.ts.map +1 -1
  33. package/dist/src/pubsub/utils.js +10 -0
  34. package/dist/src/pubsub/utils.js.map +1 -1
  35. package/package.json +1 -1
  36. package/src/mocks/connection-manager.ts +4 -20
  37. package/src/mocks/connection.ts +5 -5
  38. package/src/mocks/registrar.ts +6 -10
  39. package/src/pubsub/api.ts +11 -16
  40. package/src/pubsub/connection-handlers.ts +54 -151
  41. package/src/pubsub/emit-self.ts +10 -7
  42. package/src/pubsub/messages.ts +11 -13
  43. package/src/pubsub/multiple-nodes.ts +88 -220
  44. package/src/pubsub/two-nodes.ts +23 -41
  45. package/src/pubsub/utils.ts +11 -0
@@ -5,10 +5,8 @@ import pDefer from 'p-defer';
5
5
  import pWaitFor from 'p-wait-for';
6
6
  import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
7
7
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
8
- import { createEd25519PeerId } from '@libp2p/peer-id-factory';
9
- import { connectPeers, mockRegistrar } from '../mocks/registrar.js';
10
- import { waitForSubscriptionUpdate } from './utils.js';
11
- import { Components } from '@libp2p/interfaces/components';
8
+ import { connectPeers } from '../mocks/registrar.js';
9
+ import { createComponents, waitForSubscriptionUpdate } from './utils.js';
12
10
  import { start, stop } from '../index.js';
13
11
  export default (common) => {
14
12
  describe('pubsub with multiple nodes', function () {
@@ -20,43 +18,28 @@ export default (common) => {
20
18
  let psA;
21
19
  let psB;
22
20
  let psC;
23
- let peerIdA;
24
- let peerIdB;
25
- let peerIdC;
26
- let registrarA;
27
- let registrarB;
28
- let registrarC;
21
+ let componentsA;
22
+ let componentsB;
23
+ let componentsC;
29
24
  // Create and start pubsub nodes
30
25
  beforeEach(async () => {
31
- peerIdA = await createEd25519PeerId();
32
- peerIdB = await createEd25519PeerId();
33
- peerIdC = await createEd25519PeerId();
34
- registrarA = mockRegistrar();
35
- registrarB = mockRegistrar();
36
- registrarC = mockRegistrar();
26
+ componentsA = await createComponents();
27
+ componentsB = await createComponents();
28
+ componentsC = await createComponents();
37
29
  psA = await common.setup({
38
- components: new Components({
39
- peerId: peerIdA,
40
- registrar: registrarA
41
- }),
30
+ components: componentsA,
42
31
  init: {
43
32
  emitSelf: true
44
33
  }
45
34
  });
46
35
  psB = await common.setup({
47
- components: new Components({
48
- peerId: peerIdB,
49
- registrar: registrarB
50
- }),
36
+ components: componentsB,
51
37
  init: {
52
38
  emitSelf: true
53
39
  }
54
40
  });
55
41
  psC = await common.setup({
56
- components: new Components({
57
- peerId: peerIdC,
58
- registrar: registrarC
59
- }),
42
+ components: componentsC,
60
43
  init: {
61
44
  emitSelf: true
62
45
  }
@@ -66,20 +49,8 @@ export default (common) => {
66
49
  });
67
50
  // Connect nodes
68
51
  beforeEach(async () => {
69
- await connectPeers(psA.multicodecs[0], {
70
- peerId: peerIdA,
71
- registrar: registrarA
72
- }, {
73
- peerId: peerIdB,
74
- registrar: registrarB
75
- });
76
- await connectPeers(psA.multicodecs[0], {
77
- peerId: peerIdB,
78
- registrar: registrarB
79
- }, {
80
- peerId: peerIdC,
81
- registrar: registrarC
82
- });
52
+ await connectPeers(psA.multicodecs[0], componentsA, componentsB);
53
+ await connectPeers(psB.multicodecs[0], componentsB, componentsC);
83
54
  // Wait for peers to be ready in pubsub
84
55
  await pWaitFor(() => psA.getPeers().length === 1 &&
85
56
  psC.getPeers().length === 1 &&
@@ -94,9 +65,9 @@ export default (common) => {
94
65
  const topic = 'Z';
95
66
  psA.subscribe(topic);
96
67
  expect(psA.getTopics()).to.deep.equal([topic]);
97
- await waitForSubscriptionUpdate(psB, peerIdA);
68
+ await waitForSubscriptionUpdate(psB, componentsA.getPeerId());
98
69
  expect(psB.getPeers().length).to.equal(2);
99
- expect(psB.getSubscribers(topic).map(p => p.toString())).to.deep.equal([peerIdA.toString()]);
70
+ expect(psB.getSubscribers(topic).map(p => p.toString())).to.deep.equal([componentsA.getPeerId().toString()]);
100
71
  expect(psC.getPeers().length).to.equal(1);
101
72
  expect(psC.getSubscribers(topic)).to.be.empty();
102
73
  });
@@ -105,13 +76,13 @@ export default (common) => {
105
76
  psB.subscribe(topic);
106
77
  expect(psB.getTopics()).to.deep.equal([topic]);
107
78
  await Promise.all([
108
- waitForSubscriptionUpdate(psA, peerIdB),
109
- waitForSubscriptionUpdate(psC, peerIdB)
79
+ waitForSubscriptionUpdate(psA, componentsB.getPeerId()),
80
+ waitForSubscriptionUpdate(psC, componentsB.getPeerId())
110
81
  ]);
111
82
  expect(psA.getPeers().length).to.equal(1);
112
- expect(psA.getSubscribers(topic).map(p => p.toString())).to.deep.equal([peerIdB.toString()]);
83
+ expect(psA.getSubscribers(topic).map(p => p.toString())).to.deep.equal([componentsB.getPeerId().toString()]);
113
84
  expect(psC.getPeers().length).to.equal(1);
114
- expect(psC.getSubscribers(topic).map(p => p.toString())).to.deep.equal([peerIdB.toString()]);
85
+ expect(psC.getSubscribers(topic).map(p => p.toString())).to.deep.equal([componentsB.getPeerId().toString()]);
115
86
  });
116
87
  it('subscribe to the topic on node c', async () => {
117
88
  const topic = 'Z';
@@ -121,7 +92,7 @@ export default (common) => {
121
92
  psB.addEventListener('subscription-change', () => {
122
93
  expect(psA.getPeers().length).to.equal(1);
123
94
  expect(psB.getPeers().length).to.equal(2);
124
- expect(psB.getSubscribers(topic).map(p => p.toString())).to.deep.equal([peerIdC.toString()]);
95
+ expect(psB.getSubscribers(topic).map(p => p.toString())).to.deep.equal([componentsC.getPeerId().toString()]);
125
96
  defer.resolve();
126
97
  }, {
127
98
  once: true
@@ -135,49 +106,29 @@ export default (common) => {
135
106
  psB.subscribe(topic);
136
107
  psC.subscribe(topic);
137
108
  let counter = 0;
138
- psA.addEventListener('message', (evt) => {
139
- if (evt.detail.topic === topic) {
140
- incMsg(evt);
141
- }
142
- });
143
- psB.addEventListener('message', (evt) => {
144
- if (evt.detail.topic === topic) {
145
- incMsg(evt);
146
- }
147
- });
148
- psC.addEventListener('message', (evt) => {
149
- if (evt.detail.topic === topic) {
150
- incMsg(evt);
151
- }
152
- });
109
+ psA.addEventListener('message', incMsg);
110
+ psB.addEventListener('message', incMsg);
111
+ psC.addEventListener('message', incMsg);
153
112
  await Promise.all([
154
- waitForSubscriptionUpdate(psA, peerIdB),
155
- waitForSubscriptionUpdate(psB, peerIdA),
156
- waitForSubscriptionUpdate(psC, peerIdB)
113
+ waitForSubscriptionUpdate(psA, componentsB.getPeerId()),
114
+ waitForSubscriptionUpdate(psB, componentsA.getPeerId()),
115
+ waitForSubscriptionUpdate(psC, componentsB.getPeerId())
157
116
  ]);
158
- psA.publish(topic, uint8ArrayFromString('hey'));
117
+ const result = await psA.publish(topic, uint8ArrayFromString('hey'));
118
+ expect(result).to.have.property('recipients').with.property('length').greaterThanOrEqual(1);
159
119
  function incMsg(evt) {
160
120
  const msg = evt.detail;
121
+ if (msg.topic !== topic) {
122
+ return;
123
+ }
161
124
  expect(uint8ArrayToString(msg.data)).to.equal('hey');
162
125
  check();
163
126
  }
164
127
  function check() {
165
128
  if (++counter === 3) {
166
- psA.removeEventListener('message', (evt) => {
167
- if (evt.detail.topic === topic) {
168
- incMsg(evt);
169
- }
170
- });
171
- psB.removeEventListener('message', (evt) => {
172
- if (evt.detail.topic === topic) {
173
- incMsg(evt);
174
- }
175
- });
176
- psC.removeEventListener('message', (evt) => {
177
- if (evt.detail.topic === topic) {
178
- incMsg(evt);
179
- }
180
- });
129
+ psA.removeEventListener('message', incMsg);
130
+ psB.removeEventListener('message', incMsg);
131
+ psC.removeEventListener('message', incMsg);
181
132
  defer.resolve();
182
133
  }
183
134
  }
@@ -195,52 +146,31 @@ export default (common) => {
195
146
  const topic = 'Z';
196
147
  const defer = pDefer();
197
148
  let counter = 0;
198
- psA.addEventListener('message', (evt) => {
199
- if (evt.detail.topic === topic) {
200
- incMsg(evt);
201
- }
202
- });
203
- psB.addEventListener('message', (evt) => {
204
- if (evt.detail.topic === topic) {
205
- incMsg(evt);
206
- }
207
- });
208
- psC.addEventListener('message', (evt) => {
209
- if (evt.detail.topic === topic) {
210
- incMsg(evt);
211
- }
212
- });
149
+ psA.addEventListener('message', incMsg);
150
+ psB.addEventListener('message', incMsg);
151
+ psC.addEventListener('message', incMsg);
213
152
  psA.subscribe(topic);
214
153
  psB.subscribe(topic);
215
154
  psC.subscribe(topic);
216
155
  await Promise.all([
217
- waitForSubscriptionUpdate(psA, peerIdB),
218
- waitForSubscriptionUpdate(psB, peerIdA),
219
- waitForSubscriptionUpdate(psC, peerIdB)
156
+ waitForSubscriptionUpdate(psA, componentsB.getPeerId()),
157
+ waitForSubscriptionUpdate(psB, componentsA.getPeerId()),
158
+ waitForSubscriptionUpdate(psC, componentsB.getPeerId())
220
159
  ]);
221
- psB.publish(topic, uint8ArrayFromString('hey'));
160
+ await psB.publish(topic, uint8ArrayFromString('hey'));
222
161
  function incMsg(evt) {
223
162
  const msg = evt.detail;
163
+ if (msg.topic !== topic) {
164
+ return;
165
+ }
224
166
  expect(uint8ArrayToString(msg.data)).to.equal('hey');
225
167
  check();
226
168
  }
227
169
  function check() {
228
170
  if (++counter === 3) {
229
- psA.removeEventListener('message', (evt) => {
230
- if (evt.detail.topic === topic) {
231
- incMsg(evt);
232
- }
233
- });
234
- psB.removeEventListener('message', (evt) => {
235
- if (evt.detail.topic === topic) {
236
- incMsg(evt);
237
- }
238
- });
239
- psC.removeEventListener('message', (evt) => {
240
- if (evt.detail.topic === topic) {
241
- incMsg(evt);
242
- }
243
- });
171
+ psA.removeEventListener('message', incMsg);
172
+ psB.removeEventListener('message', incMsg);
173
+ psC.removeEventListener('message', incMsg);
244
174
  defer.resolve();
245
175
  }
246
176
  }
@@ -261,69 +191,44 @@ export default (common) => {
261
191
  let psC;
262
192
  let psD;
263
193
  let psE;
264
- let peerIdA;
265
- let peerIdB;
266
- let peerIdC;
267
- let peerIdD;
268
- let peerIdE;
269
- let registrarA;
270
- let registrarB;
271
- let registrarC;
272
- let registrarD;
273
- let registrarE;
194
+ let componentsA;
195
+ let componentsB;
196
+ let componentsC;
197
+ let componentsD;
198
+ let componentsE;
274
199
  // Create and start pubsub nodes
275
200
  beforeEach(async () => {
276
- peerIdA = await createEd25519PeerId();
277
- peerIdB = await createEd25519PeerId();
278
- peerIdC = await createEd25519PeerId();
279
- peerIdD = await createEd25519PeerId();
280
- peerIdE = await createEd25519PeerId();
281
- registrarA = mockRegistrar();
282
- registrarB = mockRegistrar();
283
- registrarC = mockRegistrar();
284
- registrarD = mockRegistrar();
285
- registrarE = mockRegistrar();
201
+ componentsA = await createComponents();
202
+ componentsB = await createComponents();
203
+ componentsC = await createComponents();
204
+ componentsD = await createComponents();
205
+ componentsE = await createComponents();
286
206
  psA = await common.setup({
287
- components: new Components({
288
- peerId: peerIdA,
289
- registrar: registrarA
290
- }),
207
+ components: componentsA,
291
208
  init: {
292
209
  emitSelf: true
293
210
  }
294
211
  });
295
212
  psB = await common.setup({
296
- components: new Components({
297
- peerId: peerIdB,
298
- registrar: registrarB
299
- }),
213
+ components: componentsB,
300
214
  init: {
301
215
  emitSelf: true
302
216
  }
303
217
  });
304
218
  psC = await common.setup({
305
- components: new Components({
306
- peerId: peerIdC,
307
- registrar: registrarC
308
- }),
219
+ components: componentsC,
309
220
  init: {
310
221
  emitSelf: true
311
222
  }
312
223
  });
313
224
  psD = await common.setup({
314
- components: new Components({
315
- peerId: peerIdD,
316
- registrar: registrarD
317
- }),
225
+ components: componentsD,
318
226
  init: {
319
227
  emitSelf: true
320
228
  }
321
229
  });
322
230
  psE = await common.setup({
323
- components: new Components({
324
- peerId: peerIdE,
325
- registrar: registrarE
326
- }),
231
+ components: componentsE,
327
232
  init: {
328
233
  emitSelf: true
329
234
  }
@@ -333,34 +238,10 @@ export default (common) => {
333
238
  });
334
239
  // connect nodes
335
240
  beforeEach(async () => {
336
- await connectPeers(psA.multicodecs[0], {
337
- peerId: peerIdA,
338
- registrar: registrarA
339
- }, {
340
- peerId: peerIdB,
341
- registrar: registrarB
342
- });
343
- await connectPeers(psA.multicodecs[0], {
344
- peerId: peerIdB,
345
- registrar: registrarB
346
- }, {
347
- peerId: peerIdC,
348
- registrar: registrarC
349
- });
350
- await connectPeers(psA.multicodecs[0], {
351
- peerId: peerIdC,
352
- registrar: registrarC
353
- }, {
354
- peerId: peerIdD,
355
- registrar: registrarD
356
- });
357
- await connectPeers(psA.multicodecs[0], {
358
- peerId: peerIdD,
359
- registrar: registrarD
360
- }, {
361
- peerId: peerIdE,
362
- registrar: registrarE
363
- });
241
+ await connectPeers(psA.multicodecs[0], componentsA, componentsB);
242
+ await connectPeers(psA.multicodecs[0], componentsB, componentsC);
243
+ await connectPeers(psA.multicodecs[0], componentsC, componentsD);
244
+ await connectPeers(psA.multicodecs[0], componentsD, componentsE);
364
245
  // Wait for peers to be ready in pubsub
365
246
  await pWaitFor(() => psA.getPeers().length === 1 &&
366
247
  psB.getPeers().length === 2 &&
@@ -389,45 +270,28 @@ export default (common) => {
389
270
  let counter = 0;
390
271
  const topic = 'Z';
391
272
  psA.subscribe(topic);
392
- psA.addEventListener('message', (evt) => {
393
- if (evt.detail.topic === topic) {
394
- incMsg(evt);
395
- }
396
- });
273
+ psA.addEventListener('message', incMsg);
397
274
  psB.subscribe(topic);
398
- psB.addEventListener('message', (evt) => {
399
- if (evt.detail.topic === topic) {
400
- incMsg(evt);
401
- }
402
- });
275
+ psB.addEventListener('message', incMsg);
403
276
  psC.subscribe(topic);
404
- psC.addEventListener('message', (evt) => {
405
- if (evt.detail.topic === topic) {
406
- incMsg(evt);
407
- }
408
- });
277
+ psC.addEventListener('message', incMsg);
409
278
  psD.subscribe(topic);
410
- psD.addEventListener('message', (evt) => {
411
- if (evt.detail.topic === topic) {
412
- incMsg(evt);
413
- }
414
- });
279
+ psD.addEventListener('message', incMsg);
415
280
  psE.subscribe(topic);
416
- psE.addEventListener('message', (evt) => {
417
- if (evt.detail.topic === topic) {
418
- incMsg(evt);
419
- }
420
- });
281
+ psE.addEventListener('message', incMsg);
421
282
  await Promise.all([
422
- waitForSubscriptionUpdate(psA, peerIdB),
423
- waitForSubscriptionUpdate(psB, peerIdA),
424
- waitForSubscriptionUpdate(psC, peerIdB),
425
- waitForSubscriptionUpdate(psD, peerIdC),
426
- waitForSubscriptionUpdate(psE, peerIdD)
283
+ waitForSubscriptionUpdate(psA, componentsB.getPeerId()),
284
+ waitForSubscriptionUpdate(psB, componentsA.getPeerId()),
285
+ waitForSubscriptionUpdate(psC, componentsB.getPeerId()),
286
+ waitForSubscriptionUpdate(psD, componentsC.getPeerId()),
287
+ waitForSubscriptionUpdate(psE, componentsD.getPeerId())
427
288
  ]);
428
- psC.publish('Z', uint8ArrayFromString('hey from c'));
289
+ await psC.publish('Z', uint8ArrayFromString('hey from c'));
429
290
  function incMsg(evt) {
430
291
  const msg = evt.detail;
292
+ if (msg.topic !== topic) {
293
+ return;
294
+ }
431
295
  expect(uint8ArrayToString(msg.data)).to.equal('hey from c');
432
296
  check();
433
297
  }
@@ -1 +1 @@
1
- {"version":3,"file":"multiple-nodes.js","sourceRoot":"","sources":["../../../src/pubsub/multiple-nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multiple-nodes.js","sourceRoot":"","sources":["../../../src/pubsub/multiple-nodes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"two-nodes.d.ts","sourceRoot":"","sources":["../../../src/pubsub/two-nodes.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;iCAYpB,UAAU,MAAM,EAAE,UAAU,CAAC;AAArD,wBAmOC"}
1
+ {"version":3,"file":"two-nodes.d.ts","sourceRoot":"","sources":["../../../src/pubsub/two-nodes.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;iCAUpB,UAAU,MAAM,EAAE,UAAU,CAAC;AAArD,wBAoNC"}
@@ -5,10 +5,8 @@ import pDefer from 'p-defer';
5
5
  import pWaitFor from 'p-wait-for';
6
6
  import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
7
7
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
8
- import { connectPeers, mockRegistrar } from '../mocks/registrar.js';
9
- import { createEd25519PeerId } from '@libp2p/peer-id-factory';
10
- import { waitForSubscriptionUpdate } from './utils.js';
11
- import { Components } from '@libp2p/interfaces/components';
8
+ import { connectPeers } from '../mocks/registrar.js';
9
+ import { createComponents, waitForSubscriptionUpdate } from './utils.js';
12
10
  import { start, stop } from '../index.js';
13
11
  const topic = 'foo';
14
12
  function shouldNotHappen() {
@@ -18,30 +16,20 @@ export default (common) => {
18
16
  describe('pubsub with two nodes', () => {
19
17
  let psA;
20
18
  let psB;
21
- let peerIdA;
22
- let peerIdB;
23
- let registrarA;
24
- let registrarB;
19
+ let componentsA;
20
+ let componentsB;
25
21
  // Create pubsub nodes and connect them
26
22
  beforeEach(async () => {
27
- peerIdA = await createEd25519PeerId();
28
- peerIdB = await createEd25519PeerId();
29
- registrarA = mockRegistrar();
30
- registrarB = mockRegistrar();
23
+ componentsA = await createComponents();
24
+ componentsB = await createComponents();
31
25
  psA = await common.setup({
32
- components: new Components({
33
- peerId: peerIdA,
34
- registrar: registrarA
35
- }),
26
+ components: componentsA,
36
27
  init: {
37
28
  emitSelf: true
38
29
  }
39
30
  });
40
31
  psB = await common.setup({
41
- components: new Components({
42
- peerId: peerIdB,
43
- registrar: registrarB
44
- }),
32
+ components: componentsB,
45
33
  init: {
46
34
  emitSelf: false
47
35
  }
@@ -50,13 +38,7 @@ export default (common) => {
50
38
  await start(psA, psB);
51
39
  expect(psA.getPeers()).to.be.empty();
52
40
  expect(psB.getPeers()).to.be.empty();
53
- await connectPeers(psA.multicodecs[0], {
54
- peerId: peerIdA,
55
- registrar: registrarA
56
- }, {
57
- peerId: peerIdB,
58
- registrar: registrarB
59
- });
41
+ await connectPeers(psA.multicodecs[0], componentsA, componentsB);
60
42
  // Wait for peers to be ready in pubsub
61
43
  await pWaitFor(() => psA.getPeers().length === 1 && psB.getPeers().length === 1);
62
44
  });
@@ -71,7 +53,7 @@ export default (common) => {
71
53
  const { peerId: changedPeerId, subscriptions: changedSubs } = evt.detail;
72
54
  expect(psA.getTopics()).to.deep.equal([topic]);
73
55
  expect(psB.getPeers()).to.have.lengthOf(1);
74
- expect(psB.getSubscribers(topic).map(p => p.toString())).to.deep.equal([peerIdA.toString()]);
56
+ expect(psB.getSubscribers(topic).map(p => p.toString())).to.deep.equal([componentsA.getPeerId().toString()]);
75
57
  expect(changedPeerId).to.deep.equal(psB.getPeers()[0]);
76
58
  expect(changedSubs).to.have.lengthOf(1);
77
59
  expect(changedSubs[0].topic).to.equal(topic);
@@ -98,10 +80,10 @@ export default (common) => {
98
80
  psA.subscribe(topic);
99
81
  psB.subscribe(topic);
100
82
  await Promise.all([
101
- waitForSubscriptionUpdate(psA, peerIdB),
102
- waitForSubscriptionUpdate(psB, peerIdA)
83
+ waitForSubscriptionUpdate(psA, componentsB.getPeerId()),
84
+ waitForSubscriptionUpdate(psB, componentsA.getPeerId())
103
85
  ]);
104
- psA.publish(topic, uint8ArrayFromString('hey'));
86
+ await psA.publish(topic, uint8ArrayFromString('hey'));
105
87
  return await defer.promise;
106
88
  });
107
89
  it('Publish to a topic in nodeB', async () => {
@@ -131,10 +113,10 @@ export default (common) => {
131
113
  psA.subscribe(topic);
132
114
  psB.subscribe(topic);
133
115
  await Promise.all([
134
- waitForSubscriptionUpdate(psA, peerIdB),
135
- waitForSubscriptionUpdate(psB, peerIdA)
116
+ waitForSubscriptionUpdate(psA, componentsB.getPeerId()),
117
+ waitForSubscriptionUpdate(psB, componentsA.getPeerId())
136
118
  ]);
137
- psB.publish(topic, uint8ArrayFromString('banana'));
119
+ await psB.publish(topic, uint8ArrayFromString('banana'));
138
120
  return await defer.promise;
139
121
  });
140
122
  it('Publish 10 msg to a topic in nodeB', async () => {
@@ -145,7 +127,7 @@ export default (common) => {
145
127
  function receivedMsg(evt) {
146
128
  const msg = evt.detail;
147
129
  expect(uint8ArrayToString(msg.data)).to.equal('banana');
148
- expect(msg.from.toString()).to.equal(peerIdB.toString());
130
+ expect(msg.from.toString()).to.equal(componentsB.getPeerId().toString());
149
131
  expect(msg.sequenceNumber).to.be.a('BigInt');
150
132
  expect(msg.topic).to.be.equal(topic);
151
133
  if (++counter === 10) {
@@ -157,10 +139,10 @@ export default (common) => {
157
139
  psA.subscribe(topic);
158
140
  psB.subscribe(topic);
159
141
  await Promise.all([
160
- waitForSubscriptionUpdate(psA, peerIdB),
161
- waitForSubscriptionUpdate(psB, peerIdA)
142
+ waitForSubscriptionUpdate(psA, componentsB.getPeerId()),
143
+ waitForSubscriptionUpdate(psB, componentsA.getPeerId())
162
144
  ]);
163
- Array.from({ length: 10 }, (_, i) => psB.publish(topic, uint8ArrayFromString('banana')));
145
+ await Promise.all(Array.from({ length: 10 }, async (_, i) => await psB.publish(topic, uint8ArrayFromString('banana'))));
164
146
  return await defer.promise;
165
147
  });
166
148
  it('Unsubscribe from topic in nodeA', async () => {