@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.
- package/dist/src/mocks/connection.d.ts +13 -2
- package/dist/src/mocks/connection.d.ts.map +1 -1
- package/dist/src/mocks/connection.js +56 -24
- package/dist/src/mocks/connection.js.map +1 -1
- package/dist/src/mocks/multiaddr-connection.d.ts +2 -1
- package/dist/src/mocks/multiaddr-connection.d.ts.map +1 -1
- package/dist/src/mocks/multiaddr-connection.js +2 -2
- package/dist/src/mocks/multiaddr-connection.js.map +1 -1
- package/dist/src/mocks/muxer.d.ts +2 -2
- package/dist/src/mocks/muxer.d.ts.map +1 -1
- package/dist/src/mocks/muxer.js +175 -26
- package/dist/src/mocks/muxer.js.map +1 -1
- package/dist/src/mocks/registrar.d.ts +11 -2
- package/dist/src/mocks/registrar.d.ts.map +1 -1
- package/dist/src/mocks/registrar.js +47 -5
- package/dist/src/mocks/registrar.js.map +1 -1
- package/dist/src/mocks/upgrader.d.ts.map +1 -1
- package/dist/src/mocks/upgrader.js +8 -4
- package/dist/src/mocks/upgrader.js.map +1 -1
- package/dist/src/pubsub/api.d.ts +3 -2
- package/dist/src/pubsub/api.d.ts.map +1 -1
- package/dist/src/pubsub/api.js +23 -13
- package/dist/src/pubsub/api.js.map +1 -1
- package/dist/src/pubsub/connection-handlers.d.ts +3 -2
- package/dist/src/pubsub/connection-handlers.d.ts.map +1 -1
- package/dist/src/pubsub/connection-handlers.js +165 -69
- package/dist/src/pubsub/connection-handlers.js.map +1 -1
- package/dist/src/pubsub/emit-self.d.ts +3 -2
- package/dist/src/pubsub/emit-self.d.ts.map +1 -1
- package/dist/src/pubsub/emit-self.js +15 -4
- package/dist/src/pubsub/emit-self.js.map +1 -1
- package/dist/src/pubsub/index.d.ts +6 -3
- package/dist/src/pubsub/index.d.ts.map +1 -1
- package/dist/src/pubsub/index.js.map +1 -1
- package/dist/src/pubsub/messages.d.ts +3 -2
- package/dist/src/pubsub/messages.d.ts.map +1 -1
- package/dist/src/pubsub/messages.js +42 -39
- package/dist/src/pubsub/messages.js.map +1 -1
- package/dist/src/pubsub/multiple-nodes.d.ts +3 -2
- package/dist/src/pubsub/multiple-nodes.d.ts.map +1 -1
- package/dist/src/pubsub/multiple-nodes.js +163 -65
- package/dist/src/pubsub/multiple-nodes.js.map +1 -1
- package/dist/src/pubsub/two-nodes.d.ts +3 -2
- package/dist/src/pubsub/two-nodes.d.ts.map +1 -1
- package/dist/src/pubsub/two-nodes.js +80 -38
- package/dist/src/pubsub/two-nodes.js.map +1 -1
- package/dist/src/stream-muxer/base-test.js +1 -1
- package/dist/src/stream-muxer/base-test.js.map +1 -1
- package/dist/src/stream-muxer/close-test.d.ts.map +1 -1
- package/dist/src/stream-muxer/close-test.js +12 -10
- package/dist/src/stream-muxer/close-test.js.map +1 -1
- package/dist/src/transport/dial-test.d.ts.map +1 -1
- package/dist/src/transport/dial-test.js +2 -1
- package/dist/src/transport/dial-test.js.map +1 -1
- package/dist/src/transport/filter-test.js +1 -1
- package/dist/src/transport/filter-test.js.map +1 -1
- package/dist/src/transport/listen-test.d.ts.map +1 -1
- package/dist/src/transport/listen-test.js +2 -1
- package/dist/src/transport/listen-test.js.map +1 -1
- package/dist/src/utils/is-valid-tick.d.ts +6 -0
- package/dist/src/utils/is-valid-tick.d.ts.map +1 -0
- package/dist/src/utils/is-valid-tick.js +15 -0
- package/dist/src/utils/is-valid-tick.js.map +1 -0
- package/package.json +7 -5
- package/src/mocks/connection.ts +80 -24
- package/src/mocks/multiaddr-connection.ts +3 -2
- package/src/mocks/muxer.ts +230 -28
- package/src/mocks/registrar.ts +65 -7
- package/src/mocks/upgrader.ts +8 -5
- package/src/pubsub/api.ts +29 -15
- package/src/pubsub/connection-handlers.ts +186 -75
- package/src/pubsub/emit-self.ts +19 -7
- package/src/pubsub/index.ts +6 -3
- package/src/pubsub/messages.ts +59 -44
- package/src/pubsub/multiple-nodes.ts +189 -76
- package/src/pubsub/two-nodes.ts +94 -46
- package/src/stream-muxer/base-test.ts +1 -1
- package/src/stream-muxer/close-test.ts +13 -12
- package/src/transport/dial-test.ts +2 -1
- package/src/transport/filter-test.ts +1 -1
- package/src/transport/listen-test.ts +2 -1
- package/src/utils/is-valid-tick.ts +18 -0
- package/dist/src/pubsub/utils.d.ts +0 -3
- package/dist/src/pubsub/utils.d.ts.map +0 -1
- package/dist/src/pubsub/utils.js +0 -11
- package/dist/src/pubsub/utils.js.map +0 -1
- package/dist/src/transport/utils/index.d.ts +0 -15
- package/dist/src/transport/utils/index.d.ts.map +0 -1
- package/dist/src/transport/utils/index.js +0 -137
- package/dist/src/transport/utils/index.js.map +0 -1
- package/src/pubsub/utils.ts +0 -13
- package/src/transport/utils/index.ts +0 -172
package/dist/src/pubsub/api.js
CHANGED
|
@@ -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
|
-
|
|
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(
|
|
31
|
+
sinon.spy(registrar, 'register');
|
|
22
32
|
await pubsub.start();
|
|
23
|
-
expect(pubsub.
|
|
24
|
-
expect(
|
|
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(
|
|
37
|
+
sinon.spy(registrar, 'unregister');
|
|
28
38
|
await pubsub.start();
|
|
29
39
|
await pubsub.stop();
|
|
30
|
-
expect(pubsub.
|
|
31
|
-
expect(
|
|
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.
|
|
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.
|
|
53
|
+
pubsub.removeEventListener(topic, handler);
|
|
45
54
|
await pWaitFor(() => pubsub.getTopics().length === 0);
|
|
46
55
|
// Publish to guarantee the handler is not called
|
|
47
|
-
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/pubsub/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAOhD,MAAM,KAAK,GAAG,KAAK,CAAA;AACnB,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;AAExC,eAAe,CAAC,MAA8D,EAAE,EAAE;IAChF,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,IAAI,MAAwB,CAAA;QAC5B,IAAI,SAAoB,CAAA;QAExB,uBAAuB;QACvB,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,SAAS,GAAG,aAAa,EAAE,CAAA;YAE3B,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;gBAC1B,MAAM,EAAE,MAAM,mBAAmB,EAAE;gBACnC,SAAS;gBACT,QAAQ,EAAE,IAAI;aACf,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,KAAK,CAAC,OAAO,EAAE,CAAA;YACf,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YACnB,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;YACnC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YAEhC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;YAEpB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACzC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAClC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;YAElC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;YACpB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAEnB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAC1C,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;YACrD,CAAC,CAAA;YAED,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;YACpB,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAEvC,MAAM,QAAQ,CAAC,GAAG,EAAE;gBAClB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;gBACjC,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAA;YACnD,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAE1C,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAA;YAErD,iDAAiD;YACjD,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YAE9D,4BAA4B;YAC5B,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;YAEhB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAA;YAEtB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;YAEpB,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;gBACrC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;gBACtB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBACjC,KAAK,CAAC,OAAO,EAAE,CAAA;YACjB,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YAC9D,MAAM,KAAK,CAAC,OAAO,CAAA;YAEnB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { TestSetup } from '../index.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { PubSubOptions } from '@libp2p/interfaces/pubsub';
|
|
3
3
|
import type { EventMap } from './index.js';
|
|
4
|
-
|
|
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":"
|
|
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 {
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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.
|
|
28
|
-
|
|
29
|
-
expect(psB.
|
|
30
|
-
|
|
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
|
-
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
-
|
|
59
|
-
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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.
|
|
73
|
-
pWaitFor(() => psB.
|
|
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
|
-
|
|
81
|
-
|
|
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(
|
|
142
|
+
return subscribedPeers.map(p => p.toString()).includes(peerA.toString());
|
|
96
143
|
});
|
|
97
|
-
void psB.
|
|
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
|
-
|
|
105
|
-
|
|
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.
|
|
123
|
-
pWaitFor(() => psB.
|
|
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.
|
|
136
|
-
pWaitFor(() => psB.
|
|
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(
|
|
221
|
+
return subscribedPeers.map(p => p.toString()).includes(peerA.toString());
|
|
152
222
|
});
|
|
153
|
-
void psB.
|
|
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
|
-
|
|
161
|
-
|
|
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
|
-
|
|
179
|
-
|
|
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(
|
|
284
|
+
return subscribedPeers.map(p => p.toString()).includes(peerA.toString());
|
|
195
285
|
});
|
|
196
|
-
void psB.
|
|
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
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
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(
|
|
311
|
+
return subscribedPeers.toString().includes(peerA.toString());
|
|
219
312
|
});
|
|
220
|
-
void psB.
|
|
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
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
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(
|
|
265
|
-
psB.getSubscribers(topic).includes(
|
|
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.
|
|
269
|
-
void psB.
|
|
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.
|
|
280
|
-
void psB.
|
|
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 {
|
|
2
|
+
import type { PubSubOptions } from '@libp2p/interfaces/pubsub';
|
|
3
3
|
import type { EventMap } from './index.js';
|
|
4
|
-
|
|
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":"
|
|
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({
|
|
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.
|
|
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({
|
|
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.
|
|
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
|
});
|