@libp2p/interface-compliance-tests 1.1.6 → 1.1.10

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 (92) hide show
  1. package/dist/src/mocks/connection.d.ts +13 -2
  2. package/dist/src/mocks/connection.d.ts.map +1 -1
  3. package/dist/src/mocks/connection.js +56 -24
  4. package/dist/src/mocks/connection.js.map +1 -1
  5. package/dist/src/mocks/multiaddr-connection.d.ts +2 -1
  6. package/dist/src/mocks/multiaddr-connection.d.ts.map +1 -1
  7. package/dist/src/mocks/multiaddr-connection.js +2 -2
  8. package/dist/src/mocks/multiaddr-connection.js.map +1 -1
  9. package/dist/src/mocks/muxer.d.ts +2 -2
  10. package/dist/src/mocks/muxer.d.ts.map +1 -1
  11. package/dist/src/mocks/muxer.js +175 -26
  12. package/dist/src/mocks/muxer.js.map +1 -1
  13. package/dist/src/mocks/registrar.d.ts +11 -2
  14. package/dist/src/mocks/registrar.d.ts.map +1 -1
  15. package/dist/src/mocks/registrar.js +47 -5
  16. package/dist/src/mocks/registrar.js.map +1 -1
  17. package/dist/src/mocks/upgrader.d.ts.map +1 -1
  18. package/dist/src/mocks/upgrader.js +8 -4
  19. package/dist/src/mocks/upgrader.js.map +1 -1
  20. package/dist/src/pubsub/api.d.ts +3 -2
  21. package/dist/src/pubsub/api.d.ts.map +1 -1
  22. package/dist/src/pubsub/api.js +23 -13
  23. package/dist/src/pubsub/api.js.map +1 -1
  24. package/dist/src/pubsub/connection-handlers.d.ts +3 -2
  25. package/dist/src/pubsub/connection-handlers.d.ts.map +1 -1
  26. package/dist/src/pubsub/connection-handlers.js +165 -69
  27. package/dist/src/pubsub/connection-handlers.js.map +1 -1
  28. package/dist/src/pubsub/emit-self.d.ts +3 -2
  29. package/dist/src/pubsub/emit-self.d.ts.map +1 -1
  30. package/dist/src/pubsub/emit-self.js +15 -4
  31. package/dist/src/pubsub/emit-self.js.map +1 -1
  32. package/dist/src/pubsub/index.d.ts +6 -3
  33. package/dist/src/pubsub/index.d.ts.map +1 -1
  34. package/dist/src/pubsub/index.js.map +1 -1
  35. package/dist/src/pubsub/messages.d.ts +3 -2
  36. package/dist/src/pubsub/messages.d.ts.map +1 -1
  37. package/dist/src/pubsub/messages.js +42 -39
  38. package/dist/src/pubsub/messages.js.map +1 -1
  39. package/dist/src/pubsub/multiple-nodes.d.ts +3 -2
  40. package/dist/src/pubsub/multiple-nodes.d.ts.map +1 -1
  41. package/dist/src/pubsub/multiple-nodes.js +163 -65
  42. package/dist/src/pubsub/multiple-nodes.js.map +1 -1
  43. package/dist/src/pubsub/two-nodes.d.ts +3 -2
  44. package/dist/src/pubsub/two-nodes.d.ts.map +1 -1
  45. package/dist/src/pubsub/two-nodes.js +80 -38
  46. package/dist/src/pubsub/two-nodes.js.map +1 -1
  47. package/dist/src/stream-muxer/base-test.js +1 -1
  48. package/dist/src/stream-muxer/base-test.js.map +1 -1
  49. package/dist/src/stream-muxer/close-test.d.ts.map +1 -1
  50. package/dist/src/stream-muxer/close-test.js +12 -10
  51. package/dist/src/stream-muxer/close-test.js.map +1 -1
  52. package/dist/src/transport/dial-test.d.ts.map +1 -1
  53. package/dist/src/transport/dial-test.js +2 -1
  54. package/dist/src/transport/dial-test.js.map +1 -1
  55. package/dist/src/transport/filter-test.js +1 -1
  56. package/dist/src/transport/filter-test.js.map +1 -1
  57. package/dist/src/transport/listen-test.d.ts.map +1 -1
  58. package/dist/src/transport/listen-test.js +2 -1
  59. package/dist/src/transport/listen-test.js.map +1 -1
  60. package/dist/src/utils/is-valid-tick.d.ts +6 -0
  61. package/dist/src/utils/is-valid-tick.d.ts.map +1 -0
  62. package/dist/src/utils/is-valid-tick.js +15 -0
  63. package/dist/src/utils/is-valid-tick.js.map +1 -0
  64. package/package.json +7 -5
  65. package/src/mocks/connection.ts +80 -24
  66. package/src/mocks/multiaddr-connection.ts +3 -2
  67. package/src/mocks/muxer.ts +230 -28
  68. package/src/mocks/registrar.ts +65 -7
  69. package/src/mocks/upgrader.ts +8 -5
  70. package/src/pubsub/api.ts +29 -15
  71. package/src/pubsub/connection-handlers.ts +186 -75
  72. package/src/pubsub/emit-self.ts +19 -7
  73. package/src/pubsub/index.ts +6 -3
  74. package/src/pubsub/messages.ts +59 -44
  75. package/src/pubsub/multiple-nodes.ts +189 -76
  76. package/src/pubsub/two-nodes.ts +94 -46
  77. package/src/stream-muxer/base-test.ts +1 -1
  78. package/src/stream-muxer/close-test.ts +13 -12
  79. package/src/transport/dial-test.ts +2 -1
  80. package/src/transport/filter-test.ts +1 -1
  81. package/src/transport/listen-test.ts +2 -1
  82. package/src/utils/is-valid-tick.ts +18 -0
  83. package/dist/src/pubsub/utils.d.ts +0 -3
  84. package/dist/src/pubsub/utils.d.ts.map +0 -1
  85. package/dist/src/pubsub/utils.js +0 -11
  86. package/dist/src/pubsub/utils.js.map +0 -1
  87. package/dist/src/transport/utils/index.d.ts +0 -15
  88. package/dist/src/transport/utils/index.d.ts.map +0 -1
  89. package/dist/src/transport/utils/index.js +0 -137
  90. package/dist/src/transport/utils/index.js.map +0 -1
  91. package/src/pubsub/utils.ts +0 -13
  92. package/src/transport/utils/index.ts +0 -172
@@ -3,14 +3,24 @@ import sinon from 'sinon';
3
3
  import pDefer from 'p-defer';
4
4
  import pWaitFor from 'p-wait-for';
5
5
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
6
+ import { mockRegistrar } from '../mocks/registrar.js';
7
+ import { createEd25519PeerId } from '@libp2p/peer-id-factory';
8
+ import delay from 'delay';
9
+ import { CustomEvent } from '@libp2p/interfaces';
6
10
  const topic = 'foo';
7
11
  const data = uint8ArrayFromString('bar');
8
12
  export default (common) => {
9
13
  describe('pubsub api', () => {
10
14
  let pubsub;
15
+ let registrar;
11
16
  // Create pubsub router
12
17
  beforeEach(async () => {
13
- pubsub = await common.setup();
18
+ registrar = mockRegistrar();
19
+ pubsub = await common.setup({
20
+ peerId: await createEd25519PeerId(),
21
+ registrar,
22
+ emitSelf: true
23
+ });
14
24
  });
15
25
  afterEach(async () => {
16
26
  sinon.restore();
@@ -18,45 +28,45 @@ export default (common) => {
18
28
  await common.teardown();
19
29
  });
20
30
  it('can start correctly', async () => {
21
- sinon.spy(pubsub.registrar, 'register');
31
+ sinon.spy(registrar, 'register');
22
32
  await pubsub.start();
23
- expect(pubsub.started).to.eql(true);
24
- expect(pubsub.registrar.register).to.have.property('callCount', 1);
33
+ expect(pubsub.isStarted()).to.equal(true);
34
+ expect(registrar.register).to.have.property('callCount', 1);
25
35
  });
26
36
  it('can stop correctly', async () => {
27
- sinon.spy(pubsub.registrar, 'unregister');
37
+ sinon.spy(registrar, 'unregister');
28
38
  await pubsub.start();
29
39
  await pubsub.stop();
30
- expect(pubsub.started).to.eql(false);
31
- expect(pubsub.registrar.unregister).to.have.property('callCount', 1);
40
+ expect(pubsub.isStarted()).to.equal(false);
41
+ expect(registrar.unregister).to.have.property('callCount', 1);
32
42
  });
33
43
  it('can subscribe and unsubscribe correctly', async () => {
34
44
  const handler = () => {
35
45
  throw new Error('a message should not be received');
36
46
  };
37
47
  await pubsub.start();
38
- pubsub.subscribe(topic);
39
- pubsub.addEventListener('topic', handler);
48
+ pubsub.addEventListener(topic, handler);
40
49
  await pWaitFor(() => {
41
50
  const topics = pubsub.getTopics();
42
51
  return topics.length === 1 && topics[0] === topic;
43
52
  });
44
- pubsub.unsubscribe(topic);
53
+ pubsub.removeEventListener(topic, handler);
45
54
  await pWaitFor(() => pubsub.getTopics().length === 0);
46
55
  // Publish to guarantee the handler is not called
47
- await pubsub.publish(topic, data);
56
+ pubsub.dispatchEvent(new CustomEvent(topic, { detail: data }));
57
+ // handlers are called async
58
+ await delay(100);
48
59
  await pubsub.stop();
49
60
  });
50
61
  it('can subscribe and publish correctly', async () => {
51
62
  const defer = pDefer();
52
63
  await pubsub.start();
53
- pubsub.subscribe(topic);
54
64
  pubsub.addEventListener(topic, (evt) => {
55
65
  const msg = evt.detail;
56
66
  expect(msg).to.not.eql(undefined);
57
67
  defer.resolve();
58
68
  });
59
- await pubsub.publish(topic, data);
69
+ pubsub.dispatchEvent(new CustomEvent(topic, { detail: data }));
60
70
  await defer.promise;
61
71
  await pubsub.stop();
62
72
  });
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/pubsub/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/pubsub/api.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { TestSetup } from '../index.js';
2
- import type { PubSub } from '@libp2p/interfaces/pubsub';
2
+ import type { PubSubOptions } from '@libp2p/interfaces/pubsub';
3
3
  import type { EventMap } from './index.js';
4
- declare const _default: (common: TestSetup<PubSub<EventMap>>) => void;
4
+ import type { PubsubBaseProtocol } from '@libp2p/pubsub';
5
+ declare const _default: (common: TestSetup<PubsubBaseProtocol<EventMap>, PubSubOptions>) => void;
5
6
  export default _default;
6
7
  //# sourceMappingURL=connection-handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection-handlers.d.ts","sourceRoot":"","sources":["../../../src/pubsub/connection-handlers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAW,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;iCAElB,UAAU,OAAO,QAAQ,CAAC,CAAC;AAAnD,wBAiWC"}
1
+ {"version":3,"file":"connection-handlers.d.ts","sourceRoot":"","sources":["../../../src/pubsub/connection-handlers.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAW,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;iCAEhC,UAAU,mBAAmB,QAAQ,CAAC,EAAE,aAAa,CAAC;AAA9E,wBA2cC"}
@@ -4,39 +4,53 @@ import pDefer from 'p-defer';
4
4
  import pWaitFor from 'p-wait-for';
5
5
  import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
6
6
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
7
- import { expectSet } from './utils.js';
7
+ import { createEd25519PeerId } from '@libp2p/peer-id-factory';
8
+ import { connectPeers, mockRegistrar } from '../mocks/registrar.js';
9
+ import { CustomEvent } from '@libp2p/interfaces';
8
10
  export default (common) => {
9
11
  describe('pubsub connection handlers', () => {
10
12
  let psA;
11
13
  let psB;
14
+ let peerA;
15
+ let peerB;
16
+ let registrarA;
17
+ let registrarB;
12
18
  describe('nodes send state on connection', () => {
13
19
  // Create pubsub nodes and connect them
14
20
  before(async () => {
15
- psA = await common.setup();
16
- psB = await common.setup();
17
- expect(psA.peers.size).to.be.eql(0);
18
- expect(psB.peers.size).to.be.eql(0);
21
+ peerA = await createEd25519PeerId();
22
+ peerB = await createEd25519PeerId();
23
+ registrarA = mockRegistrar();
24
+ registrarB = mockRegistrar();
25
+ psA = await common.setup({
26
+ peerId: peerA,
27
+ registrar: registrarA
28
+ });
29
+ psB = await common.setup({
30
+ peerId: peerB,
31
+ registrar: registrarB
32
+ });
19
33
  // Start pubsub
20
34
  await psA.start();
21
35
  await psB.start();
36
+ expect(psA.getPeers()).to.be.empty();
37
+ expect(psB.getPeers()).to.be.empty();
22
38
  });
23
39
  // Make subscriptions prior to nodes connected
24
40
  before(() => {
25
41
  psA.subscribe('Za');
26
42
  psB.subscribe('Zb');
27
- expect(psA.peers.size).to.equal(0);
28
- expectSet(psA.subscriptions, ['Za']);
29
- expect(psB.peers.size).to.equal(0);
30
- expectSet(psB.subscriptions, ['Zb']);
43
+ expect(psA.getPeers()).to.be.empty();
44
+ expect(psA.getTopics()).to.deep.equal(['Za']);
45
+ expect(psB.getPeers()).to.be.empty();
46
+ expect(psB.getTopics()).to.deep.equal(['Zb']);
31
47
  });
32
48
  after(async () => {
33
49
  sinon.restore();
34
50
  await common.teardown();
35
51
  });
36
52
  it('existing subscriptions are sent upon peer connection', async function () {
37
- await Promise.all([
38
- // @ts-expect-error protected fields
39
- psA._libp2p.dial(psB.peerId),
53
+ const subscriptionsChanged = Promise.all([
40
54
  new Promise((resolve) => psA.addEventListener('pubsub:subscription-change', resolve, {
41
55
  once: true
42
56
  })),
@@ -44,19 +58,43 @@ export default (common) => {
44
58
  once: true
45
59
  }))
46
60
  ]);
47
- expect(psA.peers.size).to.equal(1);
48
- expect(psB.peers.size).to.equal(1);
49
- expectSet(psA.subscriptions, ['Za']);
50
- expectSet(psB.topics.get('Za'), [psA.peerId.toString()]);
51
- expectSet(psB.subscriptions, ['Zb']);
52
- expectSet(psA.topics.get('Zb'), [psB.peerId.toString()]);
61
+ await connectPeers(psA.multicodecs[0], {
62
+ peerId: peerA,
63
+ registrar: registrarA
64
+ }, {
65
+ peerId: peerB,
66
+ registrar: registrarB
67
+ });
68
+ await subscriptionsChanged;
69
+ expect(psA.getPeers()).to.have.lengthOf(1);
70
+ expect(psB.getPeers()).to.have.lengthOf(1);
71
+ expect(psA.getTopics()).to.deep.equal(['Za']);
72
+ expect(psB.getTopics()).to.deep.equal(['Zb']);
73
+ expect(psA.getSubscribers('Zb').map(p => p.toString())).to.deep.equal([peerB.toString()]);
74
+ expect(psB.getSubscribers('Za').map(p => p.toString())).to.deep.equal([peerA.toString()]);
53
75
  });
54
76
  });
55
77
  describe('pubsub started before connect', () => {
78
+ let psA;
79
+ let psB;
80
+ let peerA;
81
+ let peerB;
82
+ let registrarA;
83
+ let registrarB;
56
84
  // Create pubsub nodes and start them
57
85
  beforeEach(async () => {
58
- psA = await common.setup();
59
- psB = await common.setup();
86
+ peerA = await createEd25519PeerId();
87
+ peerB = await createEd25519PeerId();
88
+ registrarA = mockRegistrar();
89
+ registrarB = mockRegistrar();
90
+ psA = await common.setup({
91
+ peerId: peerA,
92
+ registrar: registrarA
93
+ });
94
+ psB = await common.setup({
95
+ peerId: peerB,
96
+ registrar: registrarB
97
+ });
60
98
  await psA.start();
61
99
  await psB.start();
62
100
  });
@@ -65,20 +103,29 @@ export default (common) => {
65
103
  await common.teardown();
66
104
  });
67
105
  it('should get notified of connected peers on dial', async () => {
68
- // @ts-expect-error protected fields
69
- const connection = await psA._libp2p.dial(psB.peerId);
70
- expect(connection).to.exist();
106
+ await connectPeers(psA.multicodecs[0], {
107
+ peerId: peerA,
108
+ registrar: registrarA
109
+ }, {
110
+ peerId: peerB,
111
+ registrar: registrarB
112
+ });
71
113
  return await Promise.all([
72
- pWaitFor(() => psA.peers.size === 1),
73
- pWaitFor(() => psB.peers.size === 1)
114
+ pWaitFor(() => psA.getPeers().length === 1),
115
+ pWaitFor(() => psB.getPeers().length === 1)
74
116
  ]);
75
117
  });
76
118
  it('should receive pubsub messages', async () => {
77
119
  const defer = pDefer();
78
120
  const topic = 'test-topic';
79
121
  const data = uint8ArrayFromString('hey!');
80
- // @ts-expect-error protected fields
81
- await psA._libp2p.dial(psB.peerId);
122
+ await connectPeers(psA.multicodecs[0], {
123
+ peerId: peerA,
124
+ registrar: registrarA
125
+ }, {
126
+ peerId: peerB,
127
+ registrar: registrarB
128
+ });
82
129
  let subscribedTopics = psA.getTopics();
83
130
  expect(subscribedTopics).to.not.include(topic);
84
131
  psA.addEventListener(topic, (evt) => {
@@ -92,17 +139,33 @@ export default (common) => {
92
139
  // wait for psB to know about psA subscription
93
140
  await pWaitFor(() => {
94
141
  const subscribedPeers = psB.getSubscribers(topic);
95
- return subscribedPeers.includes(psA.peerId.toString());
142
+ return subscribedPeers.map(p => p.toString()).includes(peerA.toString());
96
143
  });
97
- void psB.publish(topic, data);
144
+ void psB.dispatchEvent(new CustomEvent(topic, { detail: data }));
98
145
  await defer.promise;
99
146
  });
100
147
  });
101
148
  describe('pubsub started after connect', () => {
149
+ let psA;
150
+ let psB;
151
+ let peerA;
152
+ let peerB;
153
+ let registrarA;
154
+ let registrarB;
102
155
  // Create pubsub nodes
103
156
  beforeEach(async () => {
104
- psA = await common.setup();
105
- psB = await common.setup();
157
+ peerA = await createEd25519PeerId();
158
+ peerB = await createEd25519PeerId();
159
+ registrarA = mockRegistrar();
160
+ registrarB = mockRegistrar();
161
+ psA = await common.setup({
162
+ peerId: peerA,
163
+ registrar: registrarA
164
+ });
165
+ psB = await common.setup({
166
+ peerId: peerB,
167
+ registrar: registrarB
168
+ });
106
169
  });
107
170
  afterEach(async () => {
108
171
  sinon.restore();
@@ -111,29 +174,36 @@ export default (common) => {
111
174
  await common.teardown();
112
175
  });
113
176
  it('should get notified of connected peers after starting', async () => {
114
- // @ts-expect-error protected fields
115
- const connection = await psA._libp2p.dial(psB.peerId);
116
- expect(connection).to.exist();
117
- expect(psA.peers.size).to.be.eql(0);
118
- expect(psB.peers.size).to.be.eql(0);
119
177
  await psA.start();
120
178
  await psB.start();
179
+ await connectPeers(psA.multicodecs[0], {
180
+ peerId: peerA,
181
+ registrar: registrarA
182
+ }, {
183
+ peerId: peerB,
184
+ registrar: registrarB
185
+ });
121
186
  return await Promise.all([
122
- pWaitFor(() => psA.peers.size === 1),
123
- pWaitFor(() => psB.peers.size === 1)
187
+ pWaitFor(() => psA.getPeers().length === 1),
188
+ pWaitFor(() => psB.getPeers().length === 1)
124
189
  ]);
125
190
  });
126
191
  it('should receive pubsub messages', async () => {
127
192
  const defer = pDefer();
128
193
  const topic = 'test-topic';
129
194
  const data = uint8ArrayFromString('hey!');
130
- // @ts-expect-error protected fields
131
- await psA._libp2p.dial(psB.peerId);
132
195
  await psA.start();
133
196
  await psB.start();
197
+ await connectPeers(psA.multicodecs[0], {
198
+ peerId: peerA,
199
+ registrar: registrarA
200
+ }, {
201
+ peerId: peerB,
202
+ registrar: registrarB
203
+ });
134
204
  await Promise.all([
135
- pWaitFor(() => psA.peers.size === 1),
136
- pWaitFor(() => psB.peers.size === 1)
205
+ pWaitFor(() => psA.getPeers().length === 1),
206
+ pWaitFor(() => psB.getPeers().length === 1)
137
207
  ]);
138
208
  let subscribedTopics = psA.getTopics();
139
209
  expect(subscribedTopics).to.not.include(topic);
@@ -148,17 +218,33 @@ export default (common) => {
148
218
  // wait for psB to know about psA subscription
149
219
  await pWaitFor(() => {
150
220
  const subscribedPeers = psB.getSubscribers(topic);
151
- return subscribedPeers.includes(psA.peerId.toString());
221
+ return subscribedPeers.map(p => p.toString()).includes(peerA.toString());
152
222
  });
153
- void psB.publish(topic, data);
223
+ void psB.dispatchEvent(new CustomEvent(topic, { detail: data }));
154
224
  await defer.promise;
155
225
  });
156
226
  });
157
227
  describe('pubsub with intermittent connections', () => {
228
+ let psA;
229
+ let psB;
230
+ let peerA;
231
+ let peerB;
232
+ let registrarA;
233
+ let registrarB;
158
234
  // Create pubsub nodes and start them
159
235
  beforeEach(async () => {
160
- psA = await common.setup();
161
- psB = await common.setup();
236
+ peerA = await createEd25519PeerId();
237
+ peerB = await createEd25519PeerId();
238
+ registrarA = mockRegistrar();
239
+ registrarB = mockRegistrar();
240
+ psA = await common.setup({
241
+ peerId: peerA,
242
+ registrar: registrarA
243
+ });
244
+ psB = await common.setup({
245
+ peerId: peerB,
246
+ registrar: registrarB
247
+ });
162
248
  await psA.start();
163
249
  await psB.start();
164
250
  });
@@ -168,15 +254,19 @@ export default (common) => {
168
254
  await psB.stop();
169
255
  await common.teardown();
170
256
  });
171
- it('should receive pubsub messages after a node restart', async function () {
257
+ it.skip('should receive pubsub messages after a node restart', async function () {
172
258
  const topic = 'test-topic';
173
259
  const data = uint8ArrayFromString('hey!');
174
- const psAid = psA.peerId.toString();
175
260
  let counter = 0;
176
261
  const defer1 = pDefer();
177
262
  const defer2 = pDefer();
178
- // @ts-expect-error protected fields
179
- await psA._libp2p.dial(psB.peerId);
263
+ await connectPeers(psA.multicodecs[0], {
264
+ peerId: peerA,
265
+ registrar: registrarA
266
+ }, {
267
+ peerId: peerB,
268
+ registrar: registrarB
269
+ });
180
270
  let subscribedTopics = psA.getTopics();
181
271
  expect(subscribedTopics).to.not.include(topic);
182
272
  psA.addEventListener(topic, (evt) => {
@@ -191,9 +281,9 @@ export default (common) => {
191
281
  // wait for psB to know about psA subscription
192
282
  await pWaitFor(() => {
193
283
  const subscribedPeers = psB.getSubscribers(topic);
194
- return subscribedPeers.includes(psAid);
284
+ return subscribedPeers.map(p => p.toString()).includes(peerA.toString());
195
285
  });
196
- void psB.publish(topic, data);
286
+ void psB.dispatchEvent(new CustomEvent(topic, { detail: data }));
197
287
  await defer1.promise;
198
288
  await psB.stop();
199
289
  // @ts-expect-error protected fields
@@ -208,19 +298,22 @@ export default (common) => {
208
298
  // @ts-expect-error protected fields
209
299
  await psB._libp2p.start();
210
300
  await psB.start();
211
- // @ts-expect-error protected fields
212
- psA._libp2p.peerStore.addressBook.set(psB.peerId, psB._libp2p.multiaddrs);
213
- // @ts-expect-error protected fields
214
- await psA._libp2p.dial(psB.peerId);
301
+ await connectPeers(psA.multicodecs[0], {
302
+ peerId: peerA,
303
+ registrar: registrarA
304
+ }, {
305
+ peerId: peerB,
306
+ registrar: registrarB
307
+ });
215
308
  // wait for remoteLibp2p to know about libp2p subscription
216
309
  await pWaitFor(() => {
217
310
  const subscribedPeers = psB.getSubscribers(topic);
218
- return subscribedPeers.includes(psAid);
311
+ return subscribedPeers.toString().includes(peerA.toString());
219
312
  });
220
- void psB.publish(topic, data);
313
+ void psB.dispatchEvent(new CustomEvent(topic, { detail: data }));
221
314
  await defer2.promise;
222
315
  });
223
- it('should handle quick reconnects with a delayed disconnect', async () => {
316
+ it.skip('should handle quick reconnects with a delayed disconnect', async () => {
224
317
  // Subscribe on both
225
318
  let aReceivedFirstMessageFromB = false;
226
319
  let aReceivedSecondMessageFromB = false;
@@ -255,18 +348,21 @@ export default (common) => {
255
348
  // @ts-expect-error protected fields
256
349
  const originalConnection = await psA._libp2p.dialer.connectToPeer(psB.peerId);
257
350
  // second connection
258
- // @ts-expect-error protected fields
259
- await psA._libp2p.dialer.connectToPeer(psB.peerId);
260
- // @ts-expect-error protected fields
261
- expect(psA._libp2p.connections.get(psB.peerId.toString())).to.have.length(2);
351
+ await connectPeers(psA.multicodecs[0], {
352
+ peerId: peerA,
353
+ registrar: registrarA
354
+ }, {
355
+ peerId: peerB,
356
+ registrar: registrarB
357
+ });
262
358
  // Wait for subscriptions to occur
263
359
  await pWaitFor(() => {
264
- return psA.getSubscribers(topic).includes(psB.peerId.toString()) &&
265
- psB.getSubscribers(topic).includes(psA.peerId.toString());
360
+ return psA.getSubscribers(topic).includes(peerB) &&
361
+ psB.getSubscribers(topic).map(p => p.toString()).includes(peerA.toString());
266
362
  });
267
363
  // Verify messages go both ways
268
- void psA.publish(topic, uint8ArrayFromString('message-from-a-1'));
269
- void psB.publish(topic, uint8ArrayFromString('message-from-b-1'));
364
+ void psA.dispatchEvent(new CustomEvent(topic, { detail: uint8ArrayFromString('message-from-a-1') }));
365
+ void psB.dispatchEvent(new CustomEvent(topic, { detail: uint8ArrayFromString('message-from-b-1') }));
270
366
  await pWaitFor(() => {
271
367
  return aReceivedFirstMessageFromB && bReceivedFirstMessageFromA;
272
368
  });
@@ -276,8 +372,8 @@ export default (common) => {
276
372
  await originalConnection.close();
277
373
  await pWaitFor(() => psAConnUpdateSpy.callCount === 1);
278
374
  // Verify messages go both ways after the disconnect
279
- void psA.publish(topic, uint8ArrayFromString('message-from-a-2'));
280
- void psB.publish(topic, uint8ArrayFromString('message-from-b-2'));
375
+ void psA.dispatchEvent(new CustomEvent(topic, { detail: uint8ArrayFromString('message-from-a-2') }));
376
+ void psB.dispatchEvent(new CustomEvent(topic, { detail: uint8ArrayFromString('message-from-b-2') }));
281
377
  await pWaitFor(() => {
282
378
  return aReceivedSecondMessageFromB && bReceivedSecondMessageFromA;
283
379
  });
@@ -1 +1 @@
1
- {"version":3,"file":"connection-handlers.js","sourceRoot":"","sources":["../../../src/pubsub/connection-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-handlers.js","sourceRoot":"","sources":["../../../src/pubsub/connection-handlers.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { TestSetup } from '../index.js';
2
- import type { PubSub, PubsubOptions } from '@libp2p/interfaces/pubsub';
2
+ import type { PubSubOptions } from '@libp2p/interfaces/pubsub';
3
3
  import type { EventMap } from './index.js';
4
- declare const _default: (common: TestSetup<PubSub<EventMap>, Partial<PubsubOptions>>) => void;
4
+ import type { PubsubBaseProtocol } from '@libp2p/pubsub';
5
+ declare const _default: (common: TestSetup<PubsubBaseProtocol<EventMap>, PubSubOptions>) => void;
5
6
  export default _default;
6
7
  //# sourceMappingURL=emit-self.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"emit-self.d.ts","sourceRoot":"","sources":["../../../src/pubsub/emit-self.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;iCAMlB,UAAU,OAAO,QAAQ,CAAC,EAAE,QAAQ,aAAa,CAAC,CAAC;AAA3E,wBA2DC"}
1
+ {"version":3,"file":"emit-self.d.ts","sourceRoot":"","sources":["../../../src/pubsub/emit-self.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;iCAMhC,UAAU,mBAAmB,QAAQ,CAAC,EAAE,aAAa,CAAC;AAA9E,wBAmEC"}
@@ -1,6 +1,9 @@
1
1
  import { expect } from 'aegir/utils/chai.js';
2
2
  import sinon from 'sinon';
3
3
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
4
+ import { createEd25519PeerId } from '@libp2p/peer-id-factory';
5
+ import { mockRegistrar } from '../mocks/registrar.js';
6
+ import { CustomEvent } from '@libp2p/interfaces';
4
7
  const topic = 'foo';
5
8
  const data = uint8ArrayFromString('bar');
6
9
  const shouldNotHappen = () => expect.fail();
@@ -9,7 +12,11 @@ export default (common) => {
9
12
  let pubsub;
10
13
  describe('enabled', () => {
11
14
  before(async () => {
12
- pubsub = await common.setup({ emitSelf: true });
15
+ pubsub = await common.setup({
16
+ peerId: await createEd25519PeerId(),
17
+ registrar: mockRegistrar(),
18
+ emitSelf: true
19
+ });
13
20
  });
14
21
  before(async () => {
15
22
  await pubsub.start();
@@ -24,13 +31,17 @@ export default (common) => {
24
31
  const promise = new Promise((resolve) => pubsub.addEventListener(topic, resolve, {
25
32
  once: true
26
33
  }));
27
- void pubsub.publish(topic, data);
34
+ void pubsub.dispatchEvent(new CustomEvent(topic, { detail: data }));
28
35
  return await promise;
29
36
  });
30
37
  });
31
38
  describe('disabled', () => {
32
39
  before(async () => {
33
- pubsub = await common.setup({ emitSelf: false });
40
+ pubsub = await common.setup({
41
+ peerId: await createEd25519PeerId(),
42
+ registrar: mockRegistrar(),
43
+ emitSelf: false
44
+ });
34
45
  });
35
46
  before(async () => {
36
47
  await pubsub.start();
@@ -45,7 +56,7 @@ export default (common) => {
45
56
  pubsub.addEventListener(topic, () => shouldNotHappen, {
46
57
  once: true
47
58
  });
48
- void pubsub.publish(topic, data);
59
+ void pubsub.dispatchEvent(new CustomEvent(topic, { detail: data }));
49
60
  // Wait 1 second to guarantee that self is not noticed
50
61
  return await new Promise((resolve) => setTimeout(resolve, 1000));
51
62
  });