@dxos/network-manager 0.1.9 → 0.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 (153) hide show
  1. package/dist/src/index.d.ts +2 -2
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +2 -2
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/network-manager.d.ts +10 -14
  6. package/dist/src/network-manager.d.ts.map +1 -1
  7. package/dist/src/network-manager.js +28 -33
  8. package/dist/src/network-manager.js.map +1 -1
  9. package/dist/src/protocol-factory.d.ts.map +1 -1
  10. package/dist/src/protocol-factory.js +8 -6
  11. package/dist/src/protocol-factory.js.map +1 -1
  12. package/dist/src/signal/index.d.ts +2 -2
  13. package/dist/src/signal/index.d.ts.map +1 -1
  14. package/dist/src/signal/index.js +2 -2
  15. package/dist/src/signal/index.js.map +1 -1
  16. package/dist/src/signal/message-router.d.ts +2 -2
  17. package/dist/src/signal/message-router.js +3 -3
  18. package/dist/src/signal/message-router.js.map +1 -1
  19. package/dist/src/signal/{signal-messaging.d.ts → signal-messenger.d.ts} +2 -2
  20. package/dist/src/signal/{signal-messaging.d.ts.map → signal-messenger.d.ts.map} +1 -1
  21. package/dist/src/signal/{signal-messaging.js → signal-messenger.js} +1 -1
  22. package/dist/src/signal/signal-messenger.js.map +1 -0
  23. package/dist/src/swarm/connection.d.ts +6 -3
  24. package/dist/src/swarm/connection.d.ts.map +1 -1
  25. package/dist/src/swarm/connection.js +28 -15
  26. package/dist/src/swarm/connection.js.map +1 -1
  27. package/dist/src/swarm/peer.d.ts +45 -0
  28. package/dist/src/swarm/peer.d.ts.map +1 -0
  29. package/dist/src/swarm/peer.js +113 -0
  30. package/dist/src/swarm/peer.js.map +1 -0
  31. package/dist/src/swarm/swarm-mapper.d.ts +2 -2
  32. package/dist/src/swarm/swarm-mapper.d.ts.map +1 -1
  33. package/dist/src/swarm/swarm-mapper.js +12 -10
  34. package/dist/src/swarm/swarm-mapper.js.map +1 -1
  35. package/dist/src/swarm/swarm.d.ts +13 -18
  36. package/dist/src/swarm/swarm.d.ts.map +1 -1
  37. package/dist/src/swarm/swarm.js +126 -97
  38. package/dist/src/swarm/swarm.js.map +1 -1
  39. package/dist/src/swarm/swarm.test.js +2 -2
  40. package/dist/src/swarm/swarm.test.js.map +1 -1
  41. package/dist/src/testing/test-builder.d.ts +31 -18
  42. package/dist/src/testing/test-builder.d.ts.map +1 -1
  43. package/dist/src/testing/test-builder.js +120 -48
  44. package/dist/src/testing/test-builder.js.map +1 -1
  45. package/dist/src/testing/test-protocol.d.ts +5 -5
  46. package/dist/src/testing/test-protocol.d.ts.map +1 -1
  47. package/dist/src/testing/test-protocol.js +28 -24
  48. package/dist/src/testing/test-protocol.js.map +1 -1
  49. package/dist/src/tests/basic-test-suite.d.ts +6 -0
  50. package/dist/src/tests/basic-test-suite.d.ts.map +1 -0
  51. package/dist/src/tests/basic-test-suite.js +142 -0
  52. package/dist/src/tests/basic-test-suite.js.map +1 -0
  53. package/dist/src/tests/memory-transport.test.d.ts +2 -0
  54. package/dist/src/tests/memory-transport.test.d.ts.map +1 -0
  55. package/dist/src/tests/memory-transport.test.js +12 -0
  56. package/dist/src/tests/memory-transport.test.js.map +1 -0
  57. package/dist/src/{presence.test.d.ts → tests/presence.test.d.ts} +0 -0
  58. package/dist/src/tests/presence.test.d.ts.map +1 -0
  59. package/dist/src/{presence.test.js → tests/presence.test.js} +21 -20
  60. package/dist/src/tests/presence.test.js.map +1 -0
  61. package/dist/src/tests/property-test-suite.d.ts +5 -0
  62. package/dist/src/tests/property-test-suite.d.ts.map +1 -0
  63. package/dist/src/tests/property-test-suite.js +203 -0
  64. package/dist/src/tests/property-test-suite.js.map +1 -0
  65. package/dist/src/tests/utils.d.ts +21 -0
  66. package/dist/src/tests/utils.d.ts.map +1 -0
  67. package/dist/src/tests/utils.js +76 -0
  68. package/dist/src/tests/utils.js.map +1 -0
  69. package/dist/src/tests/webrtc-transport.test.d.ts +2 -0
  70. package/dist/src/tests/webrtc-transport.test.d.ts.map +1 -0
  71. package/dist/src/tests/webrtc-transport.test.js +16 -0
  72. package/dist/src/tests/webrtc-transport.test.js.map +1 -0
  73. package/dist/src/topology/fully-connected-topology.d.ts +1 -1
  74. package/dist/src/topology/fully-connected-topology.d.ts.map +1 -1
  75. package/dist/src/topology/fully-connected-topology.js +4 -3
  76. package/dist/src/topology/fully-connected-topology.js.map +1 -1
  77. package/dist/src/topology/mmst-topology.js +4 -4
  78. package/dist/src/topology/mmst-topology.js.map +1 -1
  79. package/dist/src/topology/star-topology.js +4 -4
  80. package/dist/src/topology/star-topology.js.map +1 -1
  81. package/dist/src/topology/topology.d.ts +0 -5
  82. package/dist/src/topology/topology.d.ts.map +1 -1
  83. package/dist/src/transport/memory-transport.d.ts +8 -7
  84. package/dist/src/transport/memory-transport.d.ts.map +1 -1
  85. package/dist/src/transport/memory-transport.js +79 -45
  86. package/dist/src/transport/memory-transport.js.map +1 -1
  87. package/dist/src/transport/memory-transport.test.js +3 -2
  88. package/dist/src/transport/memory-transport.test.js.map +1 -1
  89. package/dist/src/transport/transport.d.ts +8 -4
  90. package/dist/src/transport/transport.d.ts.map +1 -1
  91. package/dist/src/transport/webrtc-simple-peer.test.d.ts +2 -0
  92. package/dist/src/transport/webrtc-simple-peer.test.d.ts.map +1 -0
  93. package/dist/src/transport/{wrtc-simple-peer.test.js → webrtc-simple-peer.test.js} +2 -2
  94. package/dist/src/transport/webrtc-simple-peer.test.js.map +1 -0
  95. package/dist/src/transport/webrtc-transport-proxy.d.ts +4 -4
  96. package/dist/src/transport/webrtc-transport-proxy.d.ts.map +1 -1
  97. package/dist/src/transport/webrtc-transport-proxy.js +15 -10
  98. package/dist/src/transport/webrtc-transport-proxy.js.map +1 -1
  99. package/dist/src/transport/webrtc-transport-proxy.test.js +2 -2
  100. package/dist/src/transport/webrtc-transport-proxy.test.js.map +1 -1
  101. package/dist/src/transport/webrtc-transport-service.js +2 -2
  102. package/dist/src/transport/webrtc-transport-service.js.map +1 -1
  103. package/dist/src/transport/webrtc-transport.d.ts +3 -3
  104. package/dist/src/transport/webrtc-transport.d.ts.map +1 -1
  105. package/dist/src/transport/webrtc-transport.js +10 -10
  106. package/dist/src/transport/webrtc-transport.js.map +1 -1
  107. package/dist/src/transport/webrtc-transport.test.js +3 -3
  108. package/dist/src/transport/webrtc-transport.test.js.map +1 -1
  109. package/dist/src/types.d.ts +1 -1
  110. package/dist/src/types.d.ts.map +1 -1
  111. package/package.json +25 -18
  112. package/src/index.ts +2 -2
  113. package/src/network-manager.ts +30 -45
  114. package/src/protocol-factory.ts +5 -3
  115. package/src/signal/index.ts +2 -2
  116. package/src/signal/integration.test.ts +1 -1
  117. package/src/signal/message-router.test.ts +1 -1
  118. package/src/signal/message-router.ts +2 -2
  119. package/src/signal/{signal-messaging.ts → signal-messenger.ts} +2 -2
  120. package/src/swarm/connection.ts +23 -12
  121. package/src/swarm/peer.ts +156 -0
  122. package/src/swarm/swarm-mapper.ts +21 -10
  123. package/src/swarm/swarm.ts +142 -111
  124. package/src/testing/test-builder.ts +143 -63
  125. package/src/testing/test-protocol.ts +31 -23
  126. package/src/tests/basic-test-suite.ts +168 -0
  127. package/src/tests/memory-transport.test.ts +11 -0
  128. package/src/{presence.test.ts → tests/presence.test.ts} +24 -23
  129. package/src/tests/property-test-suite.ts +221 -0
  130. package/src/tests/utils.ts +85 -0
  131. package/src/tests/webrtc-transport.test.ts +16 -0
  132. package/src/topology/fully-connected-topology.ts +5 -4
  133. package/src/topology/topology.ts +0 -5
  134. package/src/transport/memory-transport.test.ts +3 -2
  135. package/src/transport/memory-transport.ts +79 -49
  136. package/src/transport/transport.ts +9 -3
  137. package/src/transport/{wrtc-simple-peer.test.ts → webrtc-simple-peer.test.ts} +1 -1
  138. package/src/transport/webrtc-transport-proxy.test.ts +2 -2
  139. package/src/transport/webrtc-transport-proxy.ts +17 -8
  140. package/src/transport/webrtc-transport-service.ts +1 -1
  141. package/src/transport/webrtc-transport.test.ts +4 -6
  142. package/src/transport/webrtc-transport.ts +4 -4
  143. package/dist/src/network-manager.test.d.ts +0 -2
  144. package/dist/src/network-manager.test.d.ts.map +0 -1
  145. package/dist/src/network-manager.test.js +0 -596
  146. package/dist/src/network-manager.test.js.map +0 -1
  147. package/dist/src/presence.test.d.ts.map +0 -1
  148. package/dist/src/presence.test.js.map +0 -1
  149. package/dist/src/signal/signal-messaging.js.map +0 -1
  150. package/dist/src/transport/wrtc-simple-peer.test.d.ts +0 -2
  151. package/dist/src/transport/wrtc-simple-peer.test.d.ts.map +0 -1
  152. package/dist/src/transport/wrtc-simple-peer.test.js.map +0 -1
  153. package/src/network-manager.test.ts +0 -707
@@ -1,596 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2021 DXOS.org
4
- //
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = { enumerable: true, get: function() { return m[k]; } };
10
- }
11
- Object.defineProperty(o, k2, desc);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
- Object.defineProperty(o, "default", { enumerable: true, value: v });
18
- }) : function(o, v) {
19
- o["default"] = v;
20
- });
21
- var __importStar = (this && this.__importStar) || function (mod) {
22
- if (mod && mod.__esModule) return mod;
23
- var result = {};
24
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
- __setModuleDefault(result, mod);
26
- return result;
27
- };
28
- var __importDefault = (this && this.__importDefault) || function (mod) {
29
- return (mod && mod.__esModule) ? mod : { "default": mod };
30
- };
31
- Object.defineProperty(exports, "__esModule", { value: true });
32
- const expect_1 = __importDefault(require("expect"));
33
- const fc = __importStar(require("fast-check"));
34
- const wait_for_expect_1 = __importDefault(require("wait-for-expect"));
35
- const async_1 = require("@dxos/async");
36
- const keys_1 = require("@dxos/keys");
37
- const log_1 = require("@dxos/log");
38
- const mesh_protocol_1 = require("@dxos/mesh-protocol");
39
- const protocol_plugin_presence_1 = require("@dxos/protocol-plugin-presence");
40
- const protocols_1 = require("@dxos/protocols");
41
- const rpc_1 = require("@dxos/rpc");
42
- const testutils_1 = require("@dxos/testutils");
43
- const util_1 = require("@dxos/util");
44
- const network_manager_1 = require("./network-manager");
45
- const protocol_factory_1 = require("./protocol-factory");
46
- const testing_1 = require("./testing");
47
- const topology_1 = require("./topology");
48
- const transport_1 = require("./transport");
49
- describe('NetworkManager', function () {
50
- describe('WebRTC transport', function () {
51
- let topic;
52
- let peer1Id;
53
- let peer2Id;
54
- beforeEach(function () {
55
- topic = keys_1.PublicKey.random();
56
- peer1Id = keys_1.PublicKey.random();
57
- peer2Id = keys_1.PublicKey.random();
58
- });
59
- sharedTests({
60
- inMemory: false,
61
- signalUrl: testing_1.TEST_SIGNAL_URL,
62
- getTransportFactory: async () => (0, transport_1.createWebRTCTransportFactory)()
63
- });
64
- // TODO(burdon): Factor out config and remove consts.
65
- it.skip('two peers with different signal & turn servers', async function () {
66
- const { networkManager: networkManager1, plugin: plugin1 } = await (0, testing_1.createPeer)({
67
- topic,
68
- peerId: peer1Id,
69
- signalHosts: ['wss://apollo3.kube.moon.dxos.network/dxos/signal'],
70
- transportFactory: (0, transport_1.createWebRTCTransportFactory)({
71
- iceServers: {
72
- urls: 'turn:apollo3.kube.moon.dxos.network:3478',
73
- username: 'dxos',
74
- credential: 'dxos'
75
- }
76
- })
77
- });
78
- await (0, async_1.sleep)(3000);
79
- const { networkManager: networkManager2, plugin: plugin2 } = await (0, testing_1.createPeer)({
80
- topic,
81
- peerId: peer2Id,
82
- signalHosts: ['wss://apollo2.kube.moon.dxos.network/dxos/signal'],
83
- transportFactory: (0, transport_1.createWebRTCTransportFactory)({
84
- iceServers: {
85
- urls: 'turn:apollo2.kube.moon.dxos.network:3478',
86
- username: 'dxos',
87
- credential: 'dxos'
88
- }
89
- })
90
- });
91
- const received = [];
92
- const mockReceive = (p, s) => {
93
- received.push(p, s);
94
- return undefined;
95
- };
96
- plugin1.on('receive', mockReceive);
97
- plugin2.on('connect', async () => {
98
- await plugin2.send(peer1Id.asBuffer(), '{"message": "Hello"}');
99
- });
100
- await (0, wait_for_expect_1.default)(() => {
101
- (0, expect_1.default)(received.length).toBe(2);
102
- (0, expect_1.default)(received[0]).toBeInstanceOf(mesh_protocol_1.Protocol);
103
- (0, expect_1.default)(received[1]).toBe('{"message": "Hello"}');
104
- });
105
- await networkManager1.destroy();
106
- await networkManager2.destroy();
107
- }).timeout(10000);
108
- describe('StarTopology', function () {
109
- it('two peers connect to each other', async function () {
110
- const { plugin: plugin1 } = await (0, testing_1.createPeer)({
111
- topic,
112
- peerId: peer1Id,
113
- topology: new topology_1.StarTopology(peer1Id),
114
- transportFactory: (0, transport_1.createWebRTCTransportFactory)()
115
- });
116
- const { plugin: plugin2 } = await (0, testing_1.createPeer)({
117
- topic,
118
- peerId: peer2Id,
119
- topology: new topology_1.StarTopology(peer1Id),
120
- transportFactory: (0, transport_1.createWebRTCTransportFactory)()
121
- });
122
- const received = [];
123
- const mockReceive = (p, s) => {
124
- received.push(p, s);
125
- return undefined;
126
- };
127
- plugin1.on('receive', mockReceive);
128
- plugin2.on('connect', async () => {
129
- await plugin2.send(peer1Id.asBuffer(), '{"message": "Hello"}');
130
- });
131
- await (0, wait_for_expect_1.default)(() => {
132
- (0, expect_1.default)(received.length).toBe(2);
133
- (0, expect_1.default)(received[0]).toBeInstanceOf(mesh_protocol_1.Protocol);
134
- (0, expect_1.default)(received[1]).toBe('{"message": "Hello"}');
135
- });
136
- // TODO(burdon): Close.
137
- }).timeout(10000);
138
- });
139
- }).timeout(10000);
140
- describe('WebRTC proxy transport', function () {
141
- const createTransportFactory = async () => {
142
- const [rpcPortA, rpcPortB] = (0, rpc_1.createLinkedPorts)();
143
- const webRTCTransportService = new transport_1.WebRTCTransportService();
144
- const service = (0, rpc_1.createProtoRpcPeer)({
145
- exposed: {
146
- BridgeService: protocols_1.schema.getService('dxos.mesh.bridge.BridgeService')
147
- },
148
- handlers: { BridgeService: webRTCTransportService },
149
- port: rpcPortA,
150
- noHandshake: true,
151
- encodingOptions: {
152
- preserveAny: true
153
- }
154
- });
155
- const rpcClient = (0, rpc_1.createProtoRpcPeer)({
156
- requested: {
157
- BridgeService: protocols_1.schema.getService('dxos.mesh.bridge.BridgeService')
158
- },
159
- port: rpcPortB,
160
- noHandshake: true,
161
- encodingOptions: {
162
- preserveAny: true
163
- }
164
- });
165
- await service.open();
166
- (0, testutils_1.afterTest)(() => service.close());
167
- await rpcClient.open();
168
- (0, testutils_1.afterTest)(() => rpcClient.close());
169
- return new transport_1.WebRTCTransportProxyFactory().setBridgeService(rpcClient.rpc.BridgeService);
170
- };
171
- sharedTests({
172
- inMemory: false,
173
- signalUrl: testing_1.TEST_SIGNAL_URL,
174
- getTransportFactory: createTransportFactory
175
- });
176
- });
177
- describe('memory transport', function () {
178
- sharedTests({
179
- inMemory: true,
180
- getTransportFactory: async () => transport_1.MemoryTransportFactory
181
- });
182
- it('large amount of peers and connections', async function () {
183
- const numTopics = 5;
184
- const peersPerTopic = 5;
185
- await Promise.all((0, util_1.range)(numTopics).map(async () => {
186
- const topic = keys_1.PublicKey.random();
187
- await Promise.all((0, util_1.range)(peersPerTopic).map(async (_, index) => {
188
- const peerId = keys_1.PublicKey.random();
189
- const { plugin } = await (0, testing_1.createPeer)({
190
- topic,
191
- peerId,
192
- transportFactory: transport_1.MemoryTransportFactory
193
- });
194
- const [done, pongReceived] = (0, async_1.latch)({ count: peersPerTopic - 1 });
195
- plugin.on('connect', async (protocol) => {
196
- var _a;
197
- const { peerId } = (_a = protocol.getSession()) !== null && _a !== void 0 ? _a : {};
198
- const remoteId = keys_1.PublicKey.from(peerId);
199
- await plugin.send(remoteId.asBuffer(), 'ping');
200
- });
201
- plugin.on('receive', async (protocol, data) => {
202
- var _a;
203
- const { peerId } = (_a = protocol.getSession()) !== null && _a !== void 0 ? _a : {};
204
- const remoteId = keys_1.PublicKey.from(peerId);
205
- if (data === 'ping') {
206
- await plugin.send(remoteId.asBuffer(), 'pong');
207
- }
208
- else if (data === 'pong') {
209
- pongReceived();
210
- }
211
- else {
212
- throw new Error(`Invalid message: ${data}`);
213
- }
214
- });
215
- await done();
216
- }));
217
- }));
218
- });
219
- // TODO(burdon): Remove flaky tests.
220
- // This test performs random actions in the real system and compares it's state with a simplified model.
221
- // TODO(dmaretskyi): Run this on with actual webrtc and signal servers.
222
- it.skip('property-based tests', async function () {
223
- const testBuilder = new testing_1.TestBuilder();
224
- const assertState = async (model, real) => {
225
- await (0, wait_for_expect_1.default)(() => {
226
- for (const peer of real.peers.values()) {
227
- if (peer.presence) {
228
- for (const expectedJoinedPeer of model.joinedPeers) {
229
- if (expectedJoinedPeer.equals(peer.presence.peerId)) {
230
- continue;
231
- }
232
- const actuallyConnectedPeers = peer.presence.peers;
233
- if (!actuallyConnectedPeers.some((x) => keys_1.PublicKey.equals(expectedJoinedPeer, x))) {
234
- throw new Error(`Expected ${expectedJoinedPeer} to be in the list of joined peers of peer ${peer.presence.peerId.toString('hex')}, actually connected peers: ${actuallyConnectedPeers.map((key) => key.toString('hex'))}`);
235
- }
236
- }
237
- }
238
- }
239
- }, 5000);
240
- real.peers.forEach((peer) => peer.networkManager.topics.forEach((topic) => {
241
- peer.networkManager.getSwarm(topic).errors.assertNoUnhandledErrors();
242
- }));
243
- };
244
- // TODO(burdon): Factor out to TestBuilder.
245
- class CreatePeerCommand {
246
- constructor(peerId) {
247
- this.peerId = peerId;
248
- this.check = (model) => !model.peers.has(this.peerId);
249
- this.toString = () => `CreatePeer(${this.peerId})`;
250
- }
251
- async run(model, real) {
252
- model.peers.add(this.peerId);
253
- const networkManager = testBuilder.createNetworkManager();
254
- (0, testutils_1.afterTest)(() => networkManager.destroy());
255
- real.peers.set(this.peerId, {
256
- networkManager
257
- });
258
- await assertState(model, real);
259
- }
260
- }
261
- class RemovePeerCommand {
262
- constructor(peerId) {
263
- this.peerId = peerId;
264
- this.check = (model) => model.peers.has(this.peerId);
265
- this.toString = () => `RemovePeer(${this.peerId})`;
266
- }
267
- async run(model, real) {
268
- model.peers.delete(this.peerId);
269
- model.joinedPeers.delete(this.peerId);
270
- const peer = real.peers.get(this.peerId);
271
- await peer.networkManager.destroy();
272
- real.peers.delete(this.peerId);
273
- await assertState(model, real);
274
- }
275
- }
276
- class JoinTopicCommand {
277
- constructor(peerId) {
278
- this.peerId = peerId;
279
- this.check = (model) => model.peers.has(this.peerId) && !model.joinedPeers.has(this.peerId);
280
- this.toString = () => `JoinTopic(peerId=${this.peerId})`;
281
- }
282
- async run(model, real) {
283
- model.joinedPeers.add(this.peerId);
284
- const peer = real.peers.get(this.peerId);
285
- const presence = new protocol_plugin_presence_1.PresencePlugin(this.peerId.asBuffer());
286
- (0, testutils_1.afterTest)(() => presence.stop());
287
- const protocol = (0, protocol_factory_1.createProtocolFactory)(model.topic, this.peerId, [presence]);
288
- await peer.networkManager.openSwarmConnection({
289
- peerId: this.peerId,
290
- topic: model.topic,
291
- protocol,
292
- topology: new topology_1.FullyConnectedTopology(),
293
- presence
294
- });
295
- peer.presence = presence;
296
- await assertState(model, real);
297
- }
298
- }
299
- class LeaveTopicCommand {
300
- constructor(peerId) {
301
- this.peerId = peerId;
302
- this.check = (model) => model.peers.has(this.peerId) && model.joinedPeers.has(this.peerId);
303
- this.toString = () => `LeaveTopic(peerId=${this.peerId})`;
304
- }
305
- async run(model, real) {
306
- model.joinedPeers.delete(this.peerId);
307
- const peer = real.peers.get(this.peerId);
308
- await peer.networkManager.closeSwarmConnection(model.topic);
309
- peer.presence = undefined;
310
- await assertState(model, real);
311
- }
312
- }
313
- const peerIds = (0, util_1.range)(10).map(() => keys_1.PublicKey.random());
314
- const aPeerId = fc.constantFrom(...peerIds);
315
- const allCommands = [
316
- aPeerId.map((x) => new CreatePeerCommand(x)),
317
- aPeerId.map((x) => new RemovePeerCommand(x)),
318
- aPeerId.map((p) => new JoinTopicCommand(p)),
319
- aPeerId.map((p) => new LeaveTopicCommand(p))
320
- ];
321
- await fc.assert(fc.asyncProperty(fc.commands(allCommands, { maxCommands: 30 }), async (cmds) => {
322
- const s = () => ({
323
- model: {
324
- topic: keys_1.PublicKey.random(),
325
- peers: new util_1.ComplexSet(keys_1.PublicKey.hash),
326
- joinedPeers: new util_1.ComplexSet(keys_1.PublicKey.hash)
327
- },
328
- real: {
329
- peers: new util_1.ComplexMap(keys_1.PublicKey.hash)
330
- }
331
- });
332
- await fc.asyncModelRun(s, cmds);
333
- }), {
334
- examples: [
335
- [
336
- [
337
- new CreatePeerCommand(peerIds[0]),
338
- new CreatePeerCommand(peerIds[1]),
339
- new JoinTopicCommand(peerIds[0]),
340
- new JoinTopicCommand(peerIds[1]),
341
- new LeaveTopicCommand(peerIds[0]),
342
- new LeaveTopicCommand(peerIds[1]),
343
- new RemovePeerCommand(peerIds[0]),
344
- new RemovePeerCommand(peerIds[1])
345
- ]
346
- ],
347
- [
348
- [
349
- new CreatePeerCommand(peerIds[0]),
350
- new JoinTopicCommand(peerIds[0]),
351
- new CreatePeerCommand(peerIds[1]),
352
- new RemovePeerCommand(peerIds[0]),
353
- new JoinTopicCommand(peerIds[1]),
354
- new RemovePeerCommand(peerIds[1])
355
- ]
356
- ],
357
- [
358
- [
359
- new CreatePeerCommand(peerIds[0]),
360
- new JoinTopicCommand(peerIds[0]),
361
- new RemovePeerCommand(peerIds[0]),
362
- new CreatePeerCommand(peerIds[1]),
363
- new JoinTopicCommand(peerIds[1]),
364
- new CreatePeerCommand(peerIds[2]),
365
- new JoinTopicCommand(peerIds[2])
366
- ]
367
- ]
368
- ]
369
- });
370
- })
371
- .timeout(30000)
372
- .retries(10);
373
- }).timeout(30000);
374
- });
375
- // TODO(burdon): Factor out test-suite.
376
- function sharedTests({ inMemory, signalUrl, getTransportFactory }) {
377
- it('two peers connect to each other', async function () {
378
- const topic = keys_1.PublicKey.random();
379
- const peer1Id = keys_1.PublicKey.random();
380
- const peer2Id = keys_1.PublicKey.random();
381
- const { plugin: plugin1 } = await (0, testing_1.createPeer)({
382
- topic,
383
- peerId: peer1Id,
384
- signalHosts: !inMemory ? [signalUrl] : undefined,
385
- transportFactory: await getTransportFactory()
386
- });
387
- const { plugin: plugin2 } = await (0, testing_1.createPeer)({
388
- topic,
389
- peerId: peer2Id,
390
- signalHosts: !inMemory ? [signalUrl] : undefined,
391
- transportFactory: await getTransportFactory()
392
- });
393
- const received = [];
394
- const mockReceive = (p, s) => {
395
- received.push(p, s);
396
- return undefined;
397
- };
398
- plugin1.on('receive', mockReceive);
399
- plugin2.on('connect', async () => {
400
- await plugin2.send(peer1Id.asBuffer(), '{"message": "Hello"}');
401
- });
402
- await (0, wait_for_expect_1.default)(() => {
403
- (0, expect_1.default)(received.length).toBe(2);
404
- (0, expect_1.default)(received[0]).toBeInstanceOf(mesh_protocol_1.Protocol);
405
- (0, expect_1.default)(received[1]).toBe('{"message": "Hello"}');
406
- });
407
- })
408
- .timeout(10000)
409
- .retries(10);
410
- it('join and leave swarm', async function () {
411
- const topic = keys_1.PublicKey.random();
412
- const peer1Id = keys_1.PublicKey.random();
413
- const peer2Id = keys_1.PublicKey.random();
414
- const { networkManager: networkManager1, plugin: plugin1 } = await (0, testing_1.createPeer)({
415
- topic,
416
- peerId: peer1Id,
417
- signalHosts: !inMemory ? [signalUrl] : undefined,
418
- transportFactory: await getTransportFactory()
419
- });
420
- const { networkManager: networkManager2, plugin: plugin2 } = await (0, testing_1.createPeer)({
421
- topic,
422
- peerId: peer2Id,
423
- signalHosts: !inMemory ? [signalUrl] : undefined,
424
- transportFactory: await getTransportFactory()
425
- });
426
- await Promise.all([async_1.Event.wrap(plugin1, 'connect').waitForCount(1), async_1.Event.wrap(plugin2, 'connect').waitForCount(1)]);
427
- (0, log_1.log)('Connected', {}, { file: "packages/core/mesh/network-manager/src/network-manager.test.ts", line: 511 });
428
- const promise1 = async_1.Event.wrap(plugin1, 'disconnect').waitForCount(1);
429
- const promise2 = async_1.Event.wrap(plugin2, 'disconnect').waitForCount(1);
430
- await networkManager1.closeSwarmConnection(topic);
431
- await promise1;
432
- (0, log_1.log)('Peer1 disconnected', {}, { file: "packages/core/mesh/network-manager/src/network-manager.test.ts", line: 519 });
433
- await promise2;
434
- (0, log_1.log)('Peer2 disconnected', {}, { file: "packages/core/mesh/network-manager/src/network-manager.test.ts", line: 522 });
435
- await networkManager1.destroy();
436
- (0, log_1.log)('Peer1 destroyed', {}, { file: "packages/core/mesh/network-manager/src/network-manager.test.ts", line: 525 });
437
- await networkManager2.destroy();
438
- (0, log_1.log)('Peer2 destroyed', {}, { file: "packages/core/mesh/network-manager/src/network-manager.test.ts", line: 527 });
439
- })
440
- .timeout(10000)
441
- .retries(10);
442
- it('join and leave swarm and reconnect', async function () {
443
- const topic = keys_1.PublicKey.random();
444
- const peer1Id = keys_1.PublicKey.random();
445
- const peer2Id = keys_1.PublicKey.random();
446
- const { networkManager: networkManager1, plugin: plugin1 } = await (0, testing_1.createPeer)({
447
- topic,
448
- peerId: peer1Id,
449
- signalHosts: !inMemory ? [signalUrl] : undefined,
450
- transportFactory: await getTransportFactory()
451
- });
452
- const { networkManager: networkManager2, plugin: plugin2 } = await (0, testing_1.createPeer)({
453
- topic,
454
- peerId: peer2Id,
455
- signalHosts: !inMemory ? [signalUrl] : undefined,
456
- transportFactory: await getTransportFactory()
457
- });
458
- // prettier-ignore
459
- await Promise.all([
460
- async_1.Event.wrap(plugin1, 'connect').waitForCount(1),
461
- async_1.Event.wrap(plugin2, 'connect').waitForCount(1)
462
- ]);
463
- (0, log_1.log)('Connected', {}, { file: "packages/core/mesh/network-manager/src/network-manager.test.ts", line: 555 });
464
- const disconnectPromises = Promise.all([
465
- async_1.Event.wrap(plugin1, 'disconnect').waitForCount(1),
466
- async_1.Event.wrap(plugin2, 'disconnect').waitForCount(1)
467
- ]);
468
- const connectPromises = Promise.all([
469
- async_1.Event.wrap(plugin1, 'connect').waitForCount(1),
470
- async_1.Event.wrap(plugin2, 'connect').waitForCount(1)
471
- ]);
472
- (0, log_1.log)('Disconnecting peer2', {}, { file: "packages/core/mesh/network-manager/src/network-manager.test.ts", line: 567 });
473
- await networkManager2.closeSwarmConnection(topic);
474
- (0, log_1.log)('Reconnecting peer2', {}, { file: "packages/core/mesh/network-manager/src/network-manager.test.ts", line: 570 });
475
- const newPeer2Id = keys_1.PublicKey.random();
476
- await networkManager2.openSwarmConnection({
477
- topic,
478
- peerId: newPeer2Id,
479
- protocol: (0, testing_1.testProtocolProvider)(topic.asBuffer(), peer2Id, plugin2),
480
- topology: new topology_1.FullyConnectedTopology()
481
- });
482
- await disconnectPromises;
483
- await connectPromises;
484
- await networkManager1.destroy();
485
- (0, log_1.log)('Peer1 destroyed', {}, { file: "packages/core/mesh/network-manager/src/network-manager.test.ts", line: 583 });
486
- await networkManager2.destroy();
487
- (0, log_1.log)('Peer2 destroyed', {}, { file: "packages/core/mesh/network-manager/src/network-manager.test.ts", line: 585 });
488
- })
489
- .timeout(10000)
490
- .retries(10);
491
- it.skip('join two swarms', async function () {
492
- const testBuilder = new testing_1.TestBuilder({ signalUrl: !inMemory ? signalUrl : undefined });
493
- const peerId = keys_1.PublicKey.random();
494
- const plugin1 = new testing_1.TestProtocolPlugin(peerId.asBuffer());
495
- const plugin2 = new testing_1.TestProtocolPlugin(peerId.asBuffer());
496
- const signalManager = testBuilder.createSignalManager();
497
- const networkManager = new network_manager_1.NetworkManager({ signalManager, transportFactory: await getTransportFactory() });
498
- (0, testutils_1.afterTest)(() => networkManager.destroy());
499
- // Joining first swarm.
500
- {
501
- const topic = keys_1.PublicKey.random();
502
- const protocolProvider = (0, testing_1.testProtocolProvider)(topic.asBuffer(), peerId, plugin1);
503
- await networkManager.openSwarmConnection({
504
- topic,
505
- peerId,
506
- protocol: protocolProvider,
507
- topology: new topology_1.FullyConnectedTopology()
508
- });
509
- // Creating and joining second peer.
510
- await (0, testing_1.createPeer)({
511
- topic,
512
- peerId: keys_1.PublicKey.random(),
513
- signalHosts: !inMemory ? [signalUrl] : undefined,
514
- transportFactory: await getTransportFactory()
515
- });
516
- }
517
- // Joining second swarm with same peerId.
518
- {
519
- const topic = keys_1.PublicKey.random();
520
- const protocolProvider = (0, testing_1.testProtocolProvider)(topic.asBuffer(), peerId, plugin2);
521
- await networkManager.openSwarmConnection({
522
- topic,
523
- peerId,
524
- protocol: protocolProvider,
525
- topology: new topology_1.FullyConnectedTopology()
526
- });
527
- // Creating and joining second peer.
528
- await (0, testing_1.createPeer)({
529
- topic,
530
- peerId: keys_1.PublicKey.random(),
531
- signalHosts: !inMemory ? [signalUrl] : undefined,
532
- transportFactory: await getTransportFactory()
533
- });
534
- }
535
- // prettier-ignore
536
- await Promise.all([
537
- async_1.Event.wrap(plugin1, 'connect').waitForCount(1),
538
- async_1.Event.wrap(plugin2, 'connect').waitForCount(1)
539
- ]);
540
- });
541
- it('two swarms at the same time', async function () {
542
- const topicA = keys_1.PublicKey.random();
543
- const topicB = keys_1.PublicKey.random();
544
- const peerA1Id = keys_1.PublicKey.random();
545
- const peerA2Id = keys_1.PublicKey.random();
546
- const peerB1Id = keys_1.PublicKey.random();
547
- const peerB2Id = keys_1.PublicKey.random();
548
- const { plugin: pluginA1 } = await (0, testing_1.createPeer)({
549
- topic: topicA,
550
- peerId: peerA1Id,
551
- transportFactory: await getTransportFactory()
552
- });
553
- const { plugin: pluginA2 } = await (0, testing_1.createPeer)({
554
- topic: topicA,
555
- peerId: peerA2Id,
556
- transportFactory: await getTransportFactory()
557
- });
558
- const { plugin: pluginB1 } = await (0, testing_1.createPeer)({
559
- topic: topicB,
560
- peerId: peerB1Id,
561
- transportFactory: await getTransportFactory()
562
- });
563
- const { plugin: pluginB2 } = await (0, testing_1.createPeer)({
564
- topic: topicB,
565
- peerId: peerB2Id,
566
- transportFactory: await getTransportFactory()
567
- });
568
- const receivedA = [];
569
- const mockReceiveA = (p, s) => {
570
- receivedA.push(p, s);
571
- return undefined;
572
- };
573
- pluginA1.on('receive', mockReceiveA);
574
- const receivedB = [];
575
- const mockReceiveB = (p, s) => {
576
- receivedB.push(p, s);
577
- return undefined;
578
- };
579
- pluginB1.on('receive', mockReceiveB);
580
- pluginA2.on('connect', async () => {
581
- await pluginA2.send(peerA1Id.asBuffer(), 'Test A');
582
- });
583
- pluginB2.on('connect', async () => {
584
- await pluginB2.send(peerB1Id.asBuffer(), 'Test B');
585
- });
586
- await (0, wait_for_expect_1.default)(() => {
587
- (0, expect_1.default)(receivedA.length).toBe(2);
588
- (0, expect_1.default)(receivedA[0]).toBeInstanceOf(mesh_protocol_1.Protocol);
589
- (0, expect_1.default)(receivedA[1]).toBe('Test A');
590
- (0, expect_1.default)(receivedB.length).toBe(2);
591
- (0, expect_1.default)(receivedB[0]).toBeInstanceOf(mesh_protocol_1.Protocol);
592
- (0, expect_1.default)(receivedB[1]).toBe('Test B');
593
- });
594
- });
595
- }
596
- //# sourceMappingURL=network-manager.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"network-manager.test.js","sourceRoot":"","sources":["../../src/network-manager.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"presence.test.d.ts","sourceRoot":"","sources":["../../src/presence.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"presence.test.js","sourceRoot":"","sources":["../../src/presence.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"signal-messaging.js","sourceRoot":"","sources":["../../../src/signal/signal-messaging.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=wrtc-simple-peer.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wrtc-simple-peer.test.d.ts","sourceRoot":"","sources":["../../../src/transport/wrtc-simple-peer.test.ts"],"names":[],"mappings":""}