@libp2p/pubsub 1.0.0 → 1.0.4

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 (43) hide show
  1. package/dist/src/peer-streams.d.ts +2 -6
  2. package/dist/src/peer-streams.d.ts.map +1 -1
  3. package/dist/src/peer-streams.js +4 -8
  4. package/dist/src/peer-streams.js.map +1 -1
  5. package/package.json +153 -56
  6. package/src/peer-streams.ts +6 -9
  7. package/dist/test/emit-self.spec.d.ts +0 -2
  8. package/dist/test/emit-self.spec.d.ts.map +0 -1
  9. package/dist/test/emit-self.spec.js +0 -63
  10. package/dist/test/emit-self.spec.js.map +0 -1
  11. package/dist/test/instance.spec.d.ts +0 -2
  12. package/dist/test/instance.spec.d.ts.map +0 -1
  13. package/dist/test/instance.spec.js +0 -50
  14. package/dist/test/instance.spec.js.map +0 -1
  15. package/dist/test/lifesycle.spec.d.ts +0 -2
  16. package/dist/test/lifesycle.spec.d.ts.map +0 -1
  17. package/dist/test/lifesycle.spec.js +0 -192
  18. package/dist/test/lifesycle.spec.js.map +0 -1
  19. package/dist/test/message.spec.d.ts +0 -2
  20. package/dist/test/message.spec.d.ts.map +0 -1
  21. package/dist/test/message.spec.js +0 -83
  22. package/dist/test/message.spec.js.map +0 -1
  23. package/dist/test/pubsub.spec.d.ts +0 -2
  24. package/dist/test/pubsub.spec.d.ts.map +0 -1
  25. package/dist/test/pubsub.spec.js +0 -310
  26. package/dist/test/pubsub.spec.js.map +0 -1
  27. package/dist/test/sign.spec.d.ts +0 -2
  28. package/dist/test/sign.spec.d.ts.map +0 -1
  29. package/dist/test/sign.spec.js +0 -93
  30. package/dist/test/sign.spec.js.map +0 -1
  31. package/dist/test/topic-validators.spec.d.ts +0 -2
  32. package/dist/test/topic-validators.spec.d.ts.map +0 -1
  33. package/dist/test/topic-validators.spec.js +0 -86
  34. package/dist/test/topic-validators.spec.js.map +0 -1
  35. package/dist/test/utils/index.d.ts +0 -22
  36. package/dist/test/utils/index.d.ts.map +0 -1
  37. package/dist/test/utils/index.js +0 -86
  38. package/dist/test/utils/index.js.map +0 -1
  39. package/dist/test/utils.spec.d.ts +0 -2
  40. package/dist/test/utils.spec.d.ts.map +0 -1
  41. package/dist/test/utils.spec.js +0 -53
  42. package/dist/test/utils.spec.js.map +0 -1
  43. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,192 +0,0 @@
1
- import { expect } from 'aegir/utils/chai.js';
2
- import sinon from 'sinon';
3
- import { PubsubBaseProtocol } from '../src/index.js';
4
- import { createPeerId, createMockRegistrar, PubsubImplementation, ConnectionPair } from './utils/index.js';
5
- class PubsubProtocol extends PubsubBaseProtocol {
6
- async _publish(message) {
7
- throw new Error('Method not implemented.');
8
- }
9
- }
10
- describe('pubsub base lifecycle', () => {
11
- describe('should start and stop properly', () => {
12
- let pubsub;
13
- let sinonMockRegistrar;
14
- beforeEach(async () => {
15
- const peerId = await createPeerId();
16
- sinonMockRegistrar = {
17
- handle: sinon.stub(),
18
- register: sinon.stub().returns(`id-${Math.random()}`),
19
- unregister: sinon.stub()
20
- };
21
- pubsub = new PubsubProtocol({
22
- debugName: 'pubsub',
23
- multicodecs: ['/pubsub/1.0.0'],
24
- libp2p: {
25
- peerId: peerId,
26
- registrar: sinonMockRegistrar
27
- }
28
- });
29
- expect(pubsub.peers.size).to.be.eql(0);
30
- });
31
- afterEach(() => {
32
- sinon.restore();
33
- });
34
- it('should be able to start and stop', async () => {
35
- await pubsub.start();
36
- expect(sinonMockRegistrar.handle).to.have.property('calledOnce', true);
37
- expect(sinonMockRegistrar.register).to.have.property('calledOnce', true);
38
- await pubsub.stop();
39
- expect(sinonMockRegistrar.unregister).to.have.property('calledOnce', true);
40
- });
41
- it('starting should not throw if already started', async () => {
42
- await pubsub.start();
43
- await pubsub.start();
44
- expect(sinonMockRegistrar.handle).to.have.property('calledOnce', true);
45
- expect(sinonMockRegistrar.register).to.have.property('calledOnce', true);
46
- await pubsub.stop();
47
- expect(sinonMockRegistrar.unregister).to.have.property('calledOnce', true);
48
- });
49
- it('stopping should not throw if not started', async () => {
50
- await pubsub.stop();
51
- expect(sinonMockRegistrar.register).to.have.property('calledOnce', false);
52
- expect(sinonMockRegistrar.unregister).to.have.property('calledOnce', false);
53
- });
54
- });
55
- describe('should be able to register two nodes', () => {
56
- const protocol = '/pubsub/1.0.0';
57
- let pubsubA, pubsubB;
58
- let peerIdA, peerIdB;
59
- const registrarRecordA = new Map();
60
- const registrarRecordB = new Map();
61
- // mount pubsub
62
- beforeEach(async () => {
63
- peerIdA = await createPeerId();
64
- peerIdB = await createPeerId();
65
- pubsubA = new PubsubImplementation({
66
- multicodecs: [protocol],
67
- libp2p: {
68
- peerId: peerIdA,
69
- registrar: createMockRegistrar(registrarRecordA)
70
- }
71
- });
72
- pubsubB = new PubsubImplementation({
73
- multicodecs: [protocol],
74
- libp2p: {
75
- peerId: peerIdB,
76
- registrar: createMockRegistrar(registrarRecordB)
77
- }
78
- });
79
- });
80
- // start pubsub
81
- beforeEach(() => {
82
- pubsubA.start();
83
- pubsubB.start();
84
- expect(registrarRecordA).to.have.lengthOf(1);
85
- expect(registrarRecordB).to.have.lengthOf(1);
86
- });
87
- afterEach(async () => {
88
- sinon.restore();
89
- return await Promise.all([
90
- pubsubA.stop(),
91
- pubsubB.stop()
92
- ]);
93
- });
94
- it('should handle onConnect as expected', async () => {
95
- const onConnectA = registrarRecordA.get(protocol).onConnect;
96
- const handlerB = registrarRecordB.get(protocol).handler;
97
- // Notice peers of connection
98
- const [c0, c1] = ConnectionPair();
99
- await onConnectA(peerIdB, c0);
100
- await handlerB({
101
- protocol,
102
- stream: c1.stream,
103
- connection: {
104
- remotePeer: peerIdA
105
- }
106
- });
107
- expect(pubsubA.peers.size).to.be.eql(1);
108
- expect(pubsubB.peers.size).to.be.eql(1);
109
- });
110
- it('should use the latest connection if onConnect is called more than once', async () => {
111
- const onConnectA = registrarRecordA.get(protocol).onConnect;
112
- const handlerB = registrarRecordB.get(protocol).handler;
113
- // Notice peers of connection
114
- const [c0, c1] = ConnectionPair();
115
- const [c2] = ConnectionPair();
116
- sinon.spy(c0, 'newStream');
117
- await onConnectA(peerIdB, c0);
118
- await handlerB({
119
- protocol,
120
- stream: c1.stream,
121
- connection: {
122
- remotePeer: peerIdA
123
- }
124
- });
125
- expect(c0.newStream).to.have.property('callCount', 1);
126
- // @ts-expect-error _removePeer is a protected method
127
- sinon.spy(pubsubA, '_removePeer');
128
- sinon.spy(c2, 'newStream');
129
- await onConnectA(peerIdB, c2);
130
- expect(c2.newStream).to.have.property('callCount', 1);
131
- // @ts-expect-error _removePeer is a protected method
132
- expect(pubsubA._removePeer).to.have.property('callCount', 0);
133
- // Verify the first stream was closed
134
- // @ts-expect-error .returnValues is a sinon property
135
- const { stream: firstStream } = await c0.newStream.returnValues[0];
136
- try {
137
- await firstStream.sink(['test']);
138
- }
139
- catch (err) {
140
- expect(err).to.exist();
141
- return;
142
- }
143
- expect.fail('original stream should have ended');
144
- });
145
- it('should handle newStream errors in onConnect', async () => {
146
- const onConnectA = registrarRecordA.get(protocol).onConnect;
147
- const handlerB = registrarRecordB.get(protocol).handler;
148
- // Notice peers of connection
149
- const [c0, c1] = ConnectionPair();
150
- const error = new Error('new stream error');
151
- sinon.stub(c0, 'newStream').throws(error);
152
- await onConnectA(peerIdB, c0);
153
- await handlerB({
154
- protocol,
155
- stream: c1.stream,
156
- connection: {
157
- remotePeer: peerIdA
158
- }
159
- });
160
- expect(c0.newStream).to.have.property('callCount', 1);
161
- });
162
- it('should handle onDisconnect as expected', async () => {
163
- const onConnectA = registrarRecordA.get(protocol).onConnect;
164
- const onDisconnectA = registrarRecordA.get(protocol).onDisconnect;
165
- const handlerB = registrarRecordB.get(protocol).handler;
166
- const onDisconnectB = registrarRecordB.get(protocol).onDisconnect;
167
- // Notice peers of connection
168
- const [c0, c1] = ConnectionPair();
169
- await onConnectA(peerIdB, c0);
170
- await handlerB({
171
- protocol,
172
- stream: c1.stream,
173
- connection: {
174
- remotePeer: peerIdA
175
- }
176
- });
177
- // Notice peers of disconnect
178
- onDisconnectA(peerIdB);
179
- onDisconnectB(peerIdA);
180
- expect(pubsubA.peers.size).to.be.eql(0);
181
- expect(pubsubB.peers.size).to.be.eql(0);
182
- });
183
- it('should handle onDisconnect for unknown peers', () => {
184
- const onDisconnectA = registrarRecordA.get(protocol).onDisconnect;
185
- expect(pubsubA.peers.size).to.be.eql(0);
186
- // Notice peers of disconnect
187
- onDisconnectA(peerIdB);
188
- expect(pubsubA.peers.size).to.be.eql(0);
189
- });
190
- });
191
- });
192
- //# sourceMappingURL=lifesycle.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifesycle.spec.js","sourceRoot":"","sources":["../../test/lifesycle.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=message.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message.spec.d.ts","sourceRoot":"","sources":["../../test/message.spec.ts"],"names":[],"mappings":""}
@@ -1,83 +0,0 @@
1
- /* eslint-env mocha */
2
- import { expect } from 'aegir/utils/chai.js';
3
- import sinon from 'sinon';
4
- import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
5
- import { PubsubBaseProtocol } from '../src/index.js';
6
- import { createPeerId, mockRegistrar } from './utils/index.js';
7
- class PubsubProtocol extends PubsubBaseProtocol {
8
- async _publish(message) {
9
- throw new Error('Method not implemented');
10
- }
11
- async buildMessage(message) {
12
- return await this._buildMessage(message);
13
- }
14
- }
15
- describe('pubsub base messages', () => {
16
- let peerId;
17
- let pubsub;
18
- before(async () => {
19
- peerId = await createPeerId();
20
- pubsub = new PubsubProtocol({
21
- debugName: 'pubsub',
22
- multicodecs: ['/pubsub/1.0.0'],
23
- libp2p: {
24
- peerId: peerId,
25
- registrar: mockRegistrar
26
- }
27
- });
28
- });
29
- afterEach(() => {
30
- sinon.restore();
31
- });
32
- it('_buildMessage normalizes and signs messages', async () => {
33
- const message = {
34
- from: peerId.multihash.bytes,
35
- receivedFrom: peerId.toString(),
36
- data: uint8ArrayFromString('hello'),
37
- topicIDs: ['test-topic']
38
- };
39
- const signedMessage = await pubsub.buildMessage(message);
40
- await expect(pubsub.validate(signedMessage)).to.eventually.not.be.rejected();
41
- });
42
- it('validate with StrictNoSign will reject a message with from, signature, key, seqno present', async () => {
43
- const message = {
44
- from: peerId.multihash.bytes,
45
- receivedFrom: peerId.toString(),
46
- data: uint8ArrayFromString('hello'),
47
- topicIDs: ['test-topic']
48
- };
49
- sinon.stub(pubsub, 'globalSignaturePolicy').value('StrictSign');
50
- const signedMessage = await pubsub.buildMessage(message);
51
- sinon.stub(pubsub, 'globalSignaturePolicy').value('StrictNoSign');
52
- await expect(pubsub.validate(signedMessage)).to.eventually.be.rejected();
53
- delete signedMessage.from;
54
- await expect(pubsub.validate(signedMessage)).to.eventually.be.rejected();
55
- delete signedMessage.signature;
56
- await expect(pubsub.validate(signedMessage)).to.eventually.be.rejected();
57
- delete signedMessage.key;
58
- await expect(pubsub.validate(signedMessage)).to.eventually.be.rejected();
59
- delete signedMessage.seqno;
60
- await expect(pubsub.validate(signedMessage)).to.eventually.not.be.rejected();
61
- });
62
- it('validate with StrictNoSign will validate a message without a signature, key, and seqno', async () => {
63
- const message = {
64
- from: peerId.multihash.bytes,
65
- receivedFrom: peerId.toString(),
66
- data: uint8ArrayFromString('hello'),
67
- topicIDs: ['test-topic']
68
- };
69
- sinon.stub(pubsub, 'globalSignaturePolicy').value('StrictNoSign');
70
- const signedMessage = await pubsub.buildMessage(message);
71
- await expect(pubsub.validate(signedMessage)).to.eventually.not.be.rejected();
72
- });
73
- it('validate with StrictSign requires a signature', async () => {
74
- const message = {
75
- from: peerId.multihash.bytes,
76
- receivedFrom: peerId.toString(),
77
- data: uint8ArrayFromString('hello'),
78
- topicIDs: ['test-topic']
79
- };
80
- await expect(pubsub.validate(message)).to.be.rejectedWith(Error, 'Signing required and no signature was present');
81
- });
82
- });
83
- //# sourceMappingURL=message.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message.spec.js","sourceRoot":"","sources":["../../test/message.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=pubsub.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pubsub.spec.d.ts","sourceRoot":"","sources":["../../test/pubsub.spec.ts"],"names":[],"mappings":""}
@@ -1,310 +0,0 @@
1
- /* eslint max-nested-callbacks: ["error", 6] */
2
- import { expect } from 'aegir/utils/chai.js';
3
- import sinon from 'sinon';
4
- import pWaitFor from 'p-wait-for';
5
- import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
6
- import { PeerStreams } from '../src/peer-streams.js';
7
- import { createPeerId, createMockRegistrar, ConnectionPair, mockRegistrar, PubsubImplementation } from './utils/index.js';
8
- const protocol = '/pubsub/1.0.0';
9
- const topic = 'test-topic';
10
- const message = uint8ArrayFromString('hello');
11
- describe('pubsub base implementation', () => {
12
- describe('publish', () => {
13
- let pubsub;
14
- beforeEach(async () => {
15
- const peerId = await createPeerId();
16
- pubsub = new PubsubImplementation({
17
- libp2p: {
18
- peerId: peerId,
19
- registrar: mockRegistrar
20
- },
21
- multicodecs: [protocol]
22
- });
23
- });
24
- afterEach(() => pubsub.stop());
25
- it('calls _publish for router to forward messages', async () => {
26
- sinon.spy(pubsub, '_publish');
27
- await pubsub.start();
28
- await pubsub.publish(topic, message);
29
- // @ts-expect-error .callCount is a added by sinon
30
- expect(pubsub._publish.callCount).to.eql(1);
31
- });
32
- it('should sign messages on publish', async () => {
33
- sinon.spy(pubsub, '_publish');
34
- await pubsub.start();
35
- await pubsub.publish(topic, message);
36
- // Get the first message sent to _publish, and validate it
37
- // @ts-expect-error .getCall is a added by sinon
38
- const signedMessage = pubsub._publish.getCall(0).lastArg;
39
- await expect(pubsub.validate(signedMessage)).to.eventually.be.undefined();
40
- });
41
- });
42
- describe('subscribe', () => {
43
- describe('basics', () => {
44
- let pubsub;
45
- beforeEach(async () => {
46
- const peerId = await createPeerId();
47
- pubsub = new PubsubImplementation({
48
- multicodecs: [protocol],
49
- libp2p: {
50
- peerId: peerId,
51
- registrar: mockRegistrar
52
- }
53
- });
54
- await pubsub.start();
55
- });
56
- afterEach(() => pubsub.stop());
57
- it('should add subscription', () => {
58
- pubsub.subscribe(topic);
59
- expect(pubsub.subscriptions.size).to.eql(1);
60
- expect(pubsub.subscriptions.has(topic)).to.be.true();
61
- });
62
- });
63
- describe('two nodes', () => {
64
- let pubsubA, pubsubB;
65
- let peerIdA, peerIdB;
66
- const registrarRecordA = new Map();
67
- const registrarRecordB = new Map();
68
- beforeEach(async () => {
69
- peerIdA = await createPeerId();
70
- peerIdB = await createPeerId();
71
- pubsubA = new PubsubImplementation({
72
- multicodecs: [protocol],
73
- libp2p: {
74
- peerId: peerIdA,
75
- registrar: createMockRegistrar(registrarRecordA)
76
- }
77
- });
78
- pubsubB = new PubsubImplementation({
79
- multicodecs: [protocol],
80
- libp2p: {
81
- peerId: peerIdB,
82
- registrar: createMockRegistrar(registrarRecordB)
83
- }
84
- });
85
- });
86
- // start pubsub and connect nodes
87
- beforeEach(async () => {
88
- pubsubA.start();
89
- pubsubB.start();
90
- const onConnectA = registrarRecordA.get(protocol).onConnect;
91
- const handlerB = registrarRecordB.get(protocol).handler;
92
- // Notice peers of connection
93
- const [c0, c1] = ConnectionPair();
94
- await onConnectA(peerIdB, c0);
95
- await handlerB({
96
- protocol,
97
- stream: c1.stream,
98
- connection: {
99
- remotePeer: peerIdA
100
- }
101
- });
102
- });
103
- afterEach(() => {
104
- pubsubA.stop();
105
- pubsubB.stop();
106
- });
107
- it('should send subscribe message to connected peers', async () => {
108
- sinon.spy(pubsubA, '_sendSubscriptions');
109
- sinon.spy(pubsubB, '_processRpcSubOpt');
110
- pubsubA.subscribe(topic);
111
- // Should send subscriptions to a peer
112
- // @ts-expect-error .callCount is a added by sinon
113
- expect(pubsubA._sendSubscriptions.callCount).to.eql(1);
114
- // Other peer should receive subscription message
115
- await pWaitFor(() => {
116
- const subscribers = pubsubB.getSubscribers(topic);
117
- return subscribers.length === 1;
118
- });
119
- // @ts-expect-error .callCount is a added by sinon
120
- expect(pubsubB._processRpcSubOpt.callCount).to.eql(1);
121
- });
122
- });
123
- });
124
- describe('unsubscribe', () => {
125
- describe('basics', () => {
126
- let pubsub;
127
- beforeEach(async () => {
128
- const peerId = await createPeerId();
129
- pubsub = new PubsubImplementation({
130
- multicodecs: [protocol],
131
- libp2p: {
132
- peerId: peerId,
133
- registrar: mockRegistrar
134
- }
135
- });
136
- await pubsub.start();
137
- });
138
- afterEach(() => pubsub.stop());
139
- it('should remove all subscriptions for a topic', () => {
140
- pubsub.subscribe(topic);
141
- pubsub.subscribe(topic);
142
- expect(pubsub.subscriptions.size).to.eql(1);
143
- pubsub.unsubscribe(topic);
144
- expect(pubsub.subscriptions.size).to.eql(0);
145
- });
146
- });
147
- describe('two nodes', () => {
148
- let pubsubA, pubsubB;
149
- let peerIdA, peerIdB;
150
- const registrarRecordA = new Map();
151
- const registrarRecordB = new Map();
152
- beforeEach(async () => {
153
- peerIdA = await createPeerId();
154
- peerIdB = await createPeerId();
155
- pubsubA = new PubsubImplementation({
156
- multicodecs: [protocol],
157
- libp2p: {
158
- peerId: peerIdA,
159
- registrar: createMockRegistrar(registrarRecordA)
160
- }
161
- });
162
- pubsubB = new PubsubImplementation({
163
- multicodecs: [protocol],
164
- libp2p: {
165
- peerId: peerIdB,
166
- registrar: createMockRegistrar(registrarRecordB)
167
- }
168
- });
169
- });
170
- // start pubsub and connect nodes
171
- beforeEach(async () => {
172
- pubsubA.start();
173
- pubsubB.start();
174
- const onConnectA = registrarRecordA.get(protocol).onConnect;
175
- const handlerB = registrarRecordB.get(protocol).handler;
176
- // Notice peers of connection
177
- const [c0, c1] = ConnectionPair();
178
- await onConnectA(peerIdB, c0);
179
- await handlerB({
180
- protocol,
181
- stream: c1.stream,
182
- connection: {
183
- remotePeer: peerIdA
184
- }
185
- });
186
- });
187
- afterEach(() => {
188
- pubsubA.stop();
189
- pubsubB.stop();
190
- });
191
- it('should send unsubscribe message to connected peers', async () => {
192
- sinon.spy(pubsubA, '_sendSubscriptions');
193
- sinon.spy(pubsubB, '_processRpcSubOpt');
194
- pubsubA.subscribe(topic);
195
- // Should send subscriptions to a peer
196
- // @ts-expect-error .callCount is a property added by sinon
197
- expect(pubsubA._sendSubscriptions.callCount).to.eql(1);
198
- // Other peer should receive subscription message
199
- await pWaitFor(() => {
200
- const subscribers = pubsubB.getSubscribers(topic);
201
- return subscribers.length === 1;
202
- });
203
- // @ts-expect-error .callCount is a property added by sinon
204
- expect(pubsubB._processRpcSubOpt.callCount).to.eql(1);
205
- // Unsubscribe
206
- pubsubA.unsubscribe(topic);
207
- // Should send subscriptions to a peer
208
- // @ts-expect-error .callCount is a property added by sinon
209
- expect(pubsubA._sendSubscriptions.callCount).to.eql(2);
210
- // Other peer should receive subscription message
211
- await pWaitFor(() => {
212
- const subscribers = pubsubB.getSubscribers(topic);
213
- return subscribers.length === 0;
214
- });
215
- // @ts-expect-error .callCount is a property added by sinon
216
- expect(pubsubB._processRpcSubOpt.callCount).to.eql(2);
217
- });
218
- it('should not send unsubscribe message to connected peers if not subscribed', () => {
219
- sinon.spy(pubsubA, '_sendSubscriptions');
220
- sinon.spy(pubsubB, '_processRpcSubOpt');
221
- // Unsubscribe
222
- pubsubA.unsubscribe(topic);
223
- // Should send subscriptions to a peer
224
- // @ts-expect-error .callCount is a property added by sinon
225
- expect(pubsubA._sendSubscriptions.callCount).to.eql(0);
226
- });
227
- });
228
- });
229
- describe('getTopics', () => {
230
- let peerId;
231
- let pubsub;
232
- beforeEach(async () => {
233
- peerId = await createPeerId();
234
- pubsub = new PubsubImplementation({
235
- multicodecs: [protocol],
236
- libp2p: {
237
- peerId: peerId,
238
- registrar: mockRegistrar
239
- }
240
- });
241
- await pubsub.start();
242
- });
243
- afterEach(() => pubsub.stop());
244
- it('returns the subscribed topics', () => {
245
- let subsTopics = pubsub.getTopics();
246
- expect(subsTopics).to.have.lengthOf(0);
247
- pubsub.subscribe(topic);
248
- subsTopics = pubsub.getTopics();
249
- expect(subsTopics).to.have.lengthOf(1);
250
- expect(subsTopics[0]).to.eql(topic);
251
- });
252
- });
253
- describe('getSubscribers', () => {
254
- let peerId;
255
- let pubsub;
256
- beforeEach(async () => {
257
- peerId = await createPeerId();
258
- pubsub = new PubsubImplementation({
259
- multicodecs: [protocol],
260
- libp2p: {
261
- peerId: peerId,
262
- registrar: mockRegistrar
263
- }
264
- });
265
- });
266
- afterEach(() => pubsub.stop());
267
- it('should fail if pubsub is not started', () => {
268
- const topic = 'topic-test';
269
- try {
270
- pubsub.getSubscribers(topic);
271
- }
272
- catch (err) {
273
- expect(err).to.exist();
274
- expect(err.code).to.eql('ERR_NOT_STARTED_YET');
275
- return;
276
- }
277
- throw new Error('should fail if pubsub is not started');
278
- });
279
- it('should fail if no topic is provided', async () => {
280
- // start pubsub
281
- await pubsub.start();
282
- try {
283
- // @ts-expect-error invalid params
284
- pubsub.getSubscribers();
285
- }
286
- catch (err) {
287
- expect(err).to.exist();
288
- expect(err.code).to.eql('ERR_NOT_VALID_TOPIC');
289
- return;
290
- }
291
- throw new Error('should fail if no topic is provided');
292
- });
293
- it('should get peer subscribed to one topic', async () => {
294
- const topic = 'topic-test';
295
- // start pubsub
296
- await pubsub.start();
297
- let peersSubscribed = pubsub.getSubscribers(topic);
298
- expect(peersSubscribed).to.be.empty();
299
- // Set mock peer subscribed
300
- const peer = new PeerStreams({ id: peerId, protocol: 'a-protocol' });
301
- const id = peer.id.toString();
302
- pubsub.topics.set(topic, new Set([id]));
303
- pubsub.peers.set(id, peer);
304
- peersSubscribed = pubsub.getSubscribers(topic);
305
- expect(peersSubscribed).to.not.be.empty();
306
- expect(peersSubscribed[0]).to.eql(id);
307
- });
308
- });
309
- });
310
- //# sourceMappingURL=pubsub.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pubsub.spec.js","sourceRoot":"","sources":["../../test/pubsub.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=sign.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sign.spec.d.ts","sourceRoot":"","sources":["../../test/sign.spec.ts"],"names":[],"mappings":""}