@dxos/network-manager 0.1.8 → 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
@@ -3,71 +3,143 @@
3
3
  // Copyright 2022 DXOS.org
4
4
  //
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createPeer = exports.TestBuilder = exports.TEST_SIGNAL_URL = void 0;
6
+ exports.TestSwarmConnection = exports.TestPeer = exports.TestBuilder = exports.TEST_SIGNAL_URL = void 0;
7
+ const keys_1 = require("@dxos/keys");
7
8
  const messaging_1 = require("@dxos/messaging");
8
- const testutils_1 = require("@dxos/testutils");
9
+ const protocols_1 = require("@dxos/protocols");
10
+ const rpc_1 = require("@dxos/rpc");
11
+ const util_1 = require("@dxos/util");
9
12
  const network_manager_1 = require("../network-manager");
10
13
  const topology_1 = require("../topology");
11
14
  const transport_1 = require("../transport");
12
15
  const test_protocol_1 = require("./test-protocol");
13
16
  // Signal server will be started by the setup script.
14
17
  exports.TEST_SIGNAL_URL = 'ws://localhost:4000/.well-known/dx/signal';
15
- // TODO(burdon): Builder pattern (see feed-store).
18
+ /**
19
+ * Builder used to construct networks and peers.
20
+ */
16
21
  class TestBuilder {
17
- constructor(_options = {}) {
18
- this._options = _options;
22
+ constructor(options = {}) {
23
+ this.options = options;
19
24
  this._signalContext = new messaging_1.MemorySignalManagerContext();
20
25
  }
21
26
  createSignalManager() {
22
- if (this._options.signalUrl) {
23
- return new messaging_1.WebsocketSignalManager([this._options.signalUrl]);
27
+ if (this.options.signalHosts) {
28
+ return new messaging_1.WebsocketSignalManager(this.options.signalHosts);
24
29
  }
25
30
  return new messaging_1.MemorySignalManager(this._signalContext);
26
31
  }
27
- createNetworkManager() {
28
- return new network_manager_1.NetworkManager({
29
- signalManager: new messaging_1.MemorySignalManager(this._signalContext),
30
- transportFactory: transport_1.MemoryTransportFactory
31
- });
32
+ createPeer() {
33
+ return new TestPeer(this);
32
34
  }
33
35
  }
34
36
  exports.TestBuilder = TestBuilder;
35
- // TODO(burdon): Remove.
36
- const signalContext = new messaging_1.MemorySignalManagerContext();
37
37
  /**
38
- * @deprecated
38
+ * Testing network peer.
39
39
  */
40
- const createPeer = async ({ topic, peerId, topology = new topology_1.FullyConnectedTopology(), signalHosts, transportFactory }) => {
41
- const signalManager = signalHosts ? new messaging_1.WebsocketSignalManager(signalHosts) : new messaging_1.MemorySignalManager(signalContext);
42
- await signalManager.subscribeMessages(peerId);
43
- const networkManager = new network_manager_1.NetworkManager({
44
- signalManager,
45
- transportFactory
46
- });
47
- (0, testutils_1.afterTest)(() => networkManager.destroy());
48
- // TODO(burdon): Use keys everywhere.
49
- const plugin = new test_protocol_1.TestProtocolPlugin(peerId.asBuffer());
50
- const protocolProvider = (0, test_protocol_1.testProtocolProvider)(topic.asBuffer(), peerId, plugin);
51
- await networkManager.openSwarmConnection({ topic, peerId, protocol: protocolProvider, topology });
52
- return {
53
- networkManager,
54
- plugin
55
- };
56
- };
57
- exports.createPeer = createPeer;
58
- // const createMemoryNetworkManager = (signalContext: MemorySignalManagerContext) => {
59
- // return new NetworkManager({
60
- // signalManager: new MemorySignalManager(signalContext),
61
- // transportFactory: MemoryTransportFactory
62
- // });
63
- // };
64
- // const createWebRTCNetworkManager = async (config: any, peerId: PublicKey) => {
65
- // const signalManager = new WebsocketSignalManager(signalHosts!);
66
- // await signalManager.subscribeMessages(peerId);
67
- //
68
- // return new NetworkManager({
69
- // signalManager,
70
- // transportFactory: createWebRTCTransportFactory(config)
71
- // });
72
- // };
40
+ class TestPeer {
41
+ constructor(testBuilder) {
42
+ this.testBuilder = testBuilder;
43
+ this.peerId = keys_1.PublicKey.random();
44
+ this._swarms = new util_1.ComplexMap(keys_1.PublicKey.hash);
45
+ this._networkManager = this.createNetworkManager();
46
+ }
47
+ // TODO(burdon): Move to TestBuilder.
48
+ createNetworkManager() {
49
+ let transportFactory = transport_1.MemoryTransportFactory;
50
+ if (this.testBuilder.options.signalHosts) {
51
+ if (this.testBuilder.options.bridge) {
52
+ // Simulates bridge to shared worker.
53
+ const [proxyPort, servicePort] = (0, rpc_1.createLinkedPorts)();
54
+ this._proxy = (0, rpc_1.createProtoRpcPeer)({
55
+ port: proxyPort,
56
+ requested: {
57
+ BridgeService: protocols_1.schema.getService('dxos.mesh.bridge.BridgeService')
58
+ },
59
+ noHandshake: true,
60
+ encodingOptions: {
61
+ preserveAny: true
62
+ }
63
+ });
64
+ this._service = (0, rpc_1.createProtoRpcPeer)({
65
+ port: servicePort,
66
+ exposed: {
67
+ BridgeService: protocols_1.schema.getService('dxos.mesh.bridge.BridgeService')
68
+ },
69
+ handlers: { BridgeService: new transport_1.WebRTCTransportService() },
70
+ noHandshake: true,
71
+ encodingOptions: {
72
+ preserveAny: true
73
+ }
74
+ });
75
+ transportFactory = new transport_1.WebRTCTransportProxyFactory().setBridgeService(this._proxy.rpc.BridgeService);
76
+ }
77
+ else {
78
+ transportFactory = {
79
+ createTransport: (params) => new transport_1.WebRTCTransport(params)
80
+ };
81
+ }
82
+ }
83
+ return new network_manager_1.NetworkManager({
84
+ signalManager: this.testBuilder.createSignalManager(),
85
+ transportFactory
86
+ });
87
+ }
88
+ async open() {
89
+ var _a, _b;
90
+ await ((_a = this._proxy) === null || _a === void 0 ? void 0 : _a.open());
91
+ await ((_b = this._service) === null || _b === void 0 ? void 0 : _b.open());
92
+ }
93
+ async close() {
94
+ var _a, _b;
95
+ await Promise.all(Array.from(this._swarms.values()).map((swarm) => swarm.leave()));
96
+ this._swarms.clear();
97
+ await ((_a = this._proxy) === null || _a === void 0 ? void 0 : _a.close());
98
+ await ((_b = this._service) === null || _b === void 0 ? void 0 : _b.close());
99
+ await this._networkManager.close();
100
+ }
101
+ getSwarm(topic) {
102
+ const swarm = this._swarms.get(topic);
103
+ if (!swarm) {
104
+ throw new Error(`Swarm not found for topic: ${topic}`);
105
+ }
106
+ return swarm;
107
+ }
108
+ createSwarm(topic) {
109
+ // TODO(burdon): Multiple.
110
+ // if (this._swarms.get(topic)) {
111
+ // throw new Error(`Swarm already exists for topic: ${topic.truncate()}`);
112
+ // }
113
+ const swarm = new TestSwarmConnection(this, topic);
114
+ this._swarms.set(topic, swarm);
115
+ return swarm;
116
+ }
117
+ }
118
+ exports.TestPeer = TestPeer;
119
+ // TODO(burdon): Reconcile with new Swarm concept.
120
+ class TestSwarmConnection {
121
+ constructor(peer, topic) {
122
+ this.peer = peer;
123
+ this.topic = topic;
124
+ // TODO(burdon): Configure plugins.
125
+ // TODO(burdon): Prevent reuse?
126
+ this.plugin = new test_protocol_1.TestProtocolPlugin(this.peer.peerId.asBuffer()); // TODO(burdon): PublicKey.
127
+ }
128
+ // TODO(burdon): Need to create new plugin instance per swarm?
129
+ // If so, then perhaps joinSwarm should return swarm object with access to plugins.
130
+ async join(topology = new topology_1.FullyConnectedTopology()) {
131
+ await this.peer._networkManager.joinSwarm({
132
+ topic: this.topic,
133
+ peerId: this.peer.peerId,
134
+ protocol: (0, test_protocol_1.testProtocolProvider)(this.topic.asBuffer(), this.peer.peerId, this.plugin),
135
+ topology
136
+ });
137
+ return this;
138
+ }
139
+ async leave() {
140
+ await this.peer._networkManager.leaveSwarm(this.topic);
141
+ return this;
142
+ }
143
+ }
144
+ exports.TestSwarmConnection = TestSwarmConnection;
73
145
  //# sourceMappingURL=test-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-builder.js","sourceRoot":"","sources":["../../../src/testing/test-builder.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAGF,+CAA0G;AAC1G,+CAA4C;AAE5C,wDAAoD;AACpD,0CAA+D;AAC/D,4CAAwE;AACxE,mDAA2E;AAE3E,qDAAqD;AACxC,QAAA,eAAe,GAAG,2CAA2C,CAAC;AAM3E,kDAAkD;AAClD,MAAa,WAAW;IAGtB,YAAoB,WAA+B,EAAE;QAAjC,aAAQ,GAAR,QAAQ,CAAyB;QAF7C,mBAAc,GAAG,IAAI,sCAA0B,EAAE,CAAC;IAEF,CAAC;IAEzD,mBAAmB;QACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC3B,OAAO,IAAI,kCAAsB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;SAC9D;QAED,OAAO,IAAI,+BAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtD,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,gCAAc,CAAC;YACxB,aAAa,EAAE,IAAI,+BAAmB,CAAC,IAAI,CAAC,cAAc,CAAC;YAC3D,gBAAgB,EAAE,kCAAsB;SACzC,CAAC,CAAC;IACL,CAAC;CACF;AAnBD,kCAmBC;AAUD,wBAAwB;AACxB,MAAM,aAAa,GAAG,IAAI,sCAA0B,EAAE,CAAC;AAEvD;;GAEG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,EAC/B,KAAK,EACL,MAAM,EACN,QAAQ,GAAG,IAAI,iCAAsB,EAAE,EACvC,WAAW,EACX,gBAAgB,EACE,EAAE,EAAE;IACtB,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,kCAAsB,CAAC,WAAY,CAAC,CAAC,CAAC,CAAC,IAAI,+BAAmB,CAAC,aAAa,CAAC,CAAC;IACtH,MAAM,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,IAAI,gCAAc,CAAC;QACxC,aAAa;QACb,gBAAgB;KACjB,CAAC,CAAC;IAEH,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;IAE1C,qCAAqC;IACrC,MAAM,MAAM,GAAG,IAAI,kCAAkB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG,IAAA,oCAAoB,EAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChF,MAAM,cAAc,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,CAAC;IAElG,OAAO;QACL,cAAc;QACd,MAAM;KACP,CAAC;AACJ,CAAC,CAAC;AAzBW,QAAA,UAAU,cAyBrB;AAEF,sFAAsF;AACtF,gCAAgC;AAChC,6DAA6D;AAC7D,+CAA+C;AAC/C,QAAQ;AACR,KAAK;AAEL,iFAAiF;AACjF,oEAAoE;AACpE,mDAAmD;AACnD,EAAE;AACF,gCAAgC;AAChC,qBAAqB;AACrB,6DAA6D;AAC7D,QAAQ;AACR,KAAK"}
1
+ {"version":3,"file":"test-builder.js","sourceRoot":"","sources":["../../../src/testing/test-builder.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,10 @@ import { EventEmitter } from 'events';
4
4
  import { PublicKey } from '@dxos/keys';
5
5
  import { Extension, Protocol } from '@dxos/mesh-protocol';
6
6
  export declare const getPeerId: (protocol: Protocol) => Buffer | undefined;
7
+ /**
8
+ * @deprecated
9
+ */
10
+ export declare const testProtocolProvider: (topic: Buffer, peerId: PublicKey, protocolPlugin: any) => import("..").ProtocolProvider;
7
11
  /**
8
12
  * Object Implementing a p2p protocol (interaction across a set of peers using a common protocol)
9
13
  * and an associated transport connection protocol (interaction with each individual peer over a single network
@@ -33,6 +37,7 @@ export declare class TestProtocolPlugin extends EventEmitter {
33
37
  * @return {Extension}
34
38
  */
35
39
  createExtension(): Extension;
40
+ private _init;
36
41
  /**
37
42
  * Send/Receive messages with peer when initiating a request/response interaction.
38
43
  * @param peerId Must be the value passed to the constructor on the responding node.
@@ -40,13 +45,8 @@ export declare class TestProtocolPlugin extends EventEmitter {
40
45
  * @return Message received from peer in response to our request.
41
46
  */
42
47
  send(peerId: Buffer, payload: string): Promise<string>;
43
- private _init;
44
48
  _receive(protocol: Protocol, data: any): Promise<void>;
45
49
  _onPeerConnect(protocol: Protocol): Promise<void>;
46
50
  _onPeerDisconnect(protocol: Protocol): Promise<void>;
47
51
  }
48
- /**
49
- * @return {ProtocolProvider}
50
- */
51
- export declare const testProtocolProvider: (swarmKey: Buffer, peerId: PublicKey, protocolPlugin: any) => import("..").ProtocolProvider;
52
52
  //# sourceMappingURL=test-protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-protocol.d.ts","sourceRoot":"","sources":["../../../src/testing/test-protocol.ts"],"names":[],"mappings":";;AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAO1D,eAAO,MAAM,SAAS,aAAc,QAAQ,uBAM3C,CAAC;AAEF;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IAEpC,qBAAqB;IACrB,OAAO,SAAC;IAER,sBAAsB;IACtB,UAAU,UAAC;IAEX,UAAU,UAAS;IAEnB;;;;;;OAMG;gBACS,MAAM,EAAE,MAAM,EAAE,SAAS,UAAQ;IAU7C,IAAI,MAAM,WAET;IAGD,IAAI,KAAK,UAER;IAED;;;;OAIG;IACH,eAAe;IAYf;;;;;OAKG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAY9C,KAAK;IAIb,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG;IAatC,cAAc,CAAC,QAAQ,EAAE,QAAQ;IAcjC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;CAS3C;AAED;;GAEG;AAEH,eAAO,MAAM,oBAAoB,aAAc,MAAM,UAAU,SAAS,kBAAkB,GAAG,kCAO5F,CAAC"}
1
+ {"version":3,"file":"test-protocol.d.ts","sourceRoot":"","sources":["../../../src/testing/test-protocol.ts"],"names":[],"mappings":";;AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAQ1D,eAAO,MAAM,SAAS,aAAc,QAAQ,uBAO3C,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,oBAAoB,UAAW,MAAM,UAAU,SAAS,kBAAkB,GAAG,kCAQzF,CAAC;AAEF;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IAEpC,qBAAqB;IACrB,OAAO,SAAC;IAER,sBAAsB;IACtB,UAAU,UAAC;IAEX,UAAU,UAAS;IAEnB;;;;;;OAMG;gBACS,MAAM,EAAE,MAAM,EAAE,SAAS,UAAQ;IAU7C,IAAI,MAAM,WAET;IAGD,IAAI,KAAK,UAER;IAED;;;;OAIG;IACH,eAAe;YAYD,KAAK;IAInB;;;;;OAKG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAetD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG;IAYtC,cAAc,CAAC,QAAQ,EAAE,QAAQ;IAgBjC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;CAU3C"}
@@ -6,7 +6,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6
6
  return (mod && mod.__esModule) ? mod : { "default": mod };
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.testProtocolProvider = exports.TestProtocolPlugin = exports.getPeerId = void 0;
9
+ exports.TestProtocolPlugin = exports.testProtocolProvider = exports.getPeerId = void 0;
10
10
  // Test/mock Protocol implementation used in network-manager tests.
11
11
  const events_1 = require("events");
12
12
  const node_assert_1 = __importDefault(require("node:assert"));
@@ -15,6 +15,7 @@ const log_1 = require("@dxos/log");
15
15
  const mesh_protocol_1 = require("@dxos/mesh-protocol");
16
16
  const protocol_factory_1 = require("../protocol-factory");
17
17
  const EXTENSION_NAME = 'test';
18
+ // TODO(burdon): PublicKey.
18
19
  // TODO(dboreham): This method should be added to Protocol (and one for "my ID"?).
19
20
  const getPeerId = (protocol) => {
20
21
  var _a;
@@ -25,6 +26,19 @@ const getPeerId = (protocol) => {
25
26
  return keys_1.PublicKey.bufferize(peerId);
26
27
  };
27
28
  exports.getPeerId = getPeerId;
29
+ /**
30
+ * @deprecated
31
+ */
32
+ // TODO(burdon): Reconcile with transportProtocolProvider.
33
+ const testProtocolProvider = (topic, peerId, protocolPlugin) => {
34
+ (0, log_1.log)('creating protocol-factory', { topic: keys_1.PublicKey.from(topic), peerId }, { file: "packages/core/mesh/network-manager/src/testing/test-protocol.ts", line: 34, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
35
+ return (0, protocol_factory_1.protocolFactory)({
36
+ getTopics: () => [topic],
37
+ session: { peerId: peerId.toHex() },
38
+ plugins: [protocolPlugin]
39
+ });
40
+ };
41
+ exports.testProtocolProvider = testProtocolProvider;
28
42
  /**
29
43
  * Object Implementing a p2p protocol (interaction across a set of peers using a common protocol)
30
44
  * and an associated transport connection protocol (interaction with each individual peer over a single network
@@ -62,15 +76,18 @@ class TestProtocolPlugin extends events_1.EventEmitter {
62
76
  * @return {Extension}
63
77
  */
64
78
  createExtension() {
65
- (0, log_1.log)('creating extension', { peerId: keys_1.PublicKey.from(this.peerId) }, { file: "packages/core/mesh/network-manager/src/testing/test-protocol.ts", line: 76 }); // TODO(burdon): Just key.
79
+ (0, log_1.log)('creating extension', { peerId: keys_1.PublicKey.from(this.peerId) }, { file: "packages/core/mesh/network-manager/src/testing/test-protocol.ts", line: 92, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." }); // TODO(burdon): Just key.
66
80
  return new mesh_protocol_1.Extension(EXTENSION_NAME, { binary: true })
67
81
  .setInitHandler(this._init.bind(this))
68
82
  .setMessageHandler(this._receive.bind(this))
69
83
  .setHandshakeHandler(this._onPeerConnect.bind(this))
70
84
  .setCloseHandler(this._onPeerDisconnect.bind(this));
71
85
  }
72
- // Methods below are per-peer-connection.
86
+ // Methods below are per-peer connection.
73
87
  // TODO(dboreham): Why are these here and not on Protocol?
88
+ async _init(protocol) {
89
+ this.initCalled = true;
90
+ }
74
91
  /**
75
92
  * Send/Receive messages with peer when initiating a request/response interaction.
76
93
  * @param peerId Must be the value passed to the constructor on the responding node.
@@ -79,29 +96,28 @@ class TestProtocolPlugin extends events_1.EventEmitter {
79
96
  */
80
97
  async send(peerId, payload) {
81
98
  (0, node_assert_1.default)(Buffer.isBuffer(peerId));
82
- const peerIdStr = keys_1.PublicKey.stringify(peerId);
99
+ const peerIdStr = keys_1.PublicKey.stringify(peerId); // TODO(burdon): PublicKey.
83
100
  const peer = this._peers.get(peerIdStr);
84
- // TODO(dboreham): Throw fatal error if peer not found.
101
+ if (!peer) {
102
+ throw new Error(`peer not found: ${keys_1.PublicKey.from(peerId).truncate()}`);
103
+ }
85
104
  const extension = peer.getExtension(EXTENSION_NAME);
86
105
  const encoded = Buffer.from(payload);
87
- (0, log_1.log)('sent', { peerIdStr, payload }, { file: "packages/core/mesh/network-manager/src/testing/test-protocol.ts", line: 101 });
106
+ (0, log_1.log)('sending', { peerId: keys_1.PublicKey.from(peerId), payload }, { file: "packages/core/mesh/network-manager/src/testing/test-protocol.ts", line: 124, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
88
107
  return await extension.send(encoded, { oneway: true });
89
108
  }
90
- async _init(protocol) {
91
- this.initCalled = true;
92
- }
93
109
  async _receive(protocol, data) {
94
110
  const peerId = (0, exports.getPeerId)(protocol);
95
111
  (0, node_assert_1.default)(peerId !== undefined);
96
- const peerIdStr = keys_1.PublicKey.stringify(peerId);
97
112
  let payload = data.data.toString();
98
113
  if (this._uppercase) {
99
114
  payload = payload.toUpperCase();
100
115
  }
101
- (0, log_1.log)('received', { peerIdStr, payload }, { file: "packages/core/mesh/network-manager/src/testing/test-protocol.ts", line: 118 });
116
+ (0, log_1.log)('received', { peerId: keys_1.PublicKey.from(peerId), payload }, { file: "packages/core/mesh/network-manager/src/testing/test-protocol.ts", line: 136, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
102
117
  this.emit('receive', protocol, payload);
103
118
  }
104
119
  async _onPeerConnect(protocol) {
120
+ (0, log_1.log)('connecting', { id: keys_1.PublicKey.from(protocol.id) }, { file: "packages/core/mesh/network-manager/src/testing/test-protocol.ts", line: 141, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
105
121
  const peerId = (0, exports.getPeerId)(protocol);
106
122
  if (peerId === undefined) {
107
123
  return;
@@ -114,6 +130,7 @@ class TestProtocolPlugin extends events_1.EventEmitter {
114
130
  this.emit('connect', protocol);
115
131
  }
116
132
  async _onPeerDisconnect(protocol) {
133
+ (0, log_1.log)('disconnecting', { id: keys_1.PublicKey.from(protocol.id) }, { file: "packages/core/mesh/network-manager/src/testing/test-protocol.ts", line: 157, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
117
134
  const peerId = (0, exports.getPeerId)(protocol);
118
135
  if (peerId === undefined) {
119
136
  return;
@@ -123,17 +140,4 @@ class TestProtocolPlugin extends events_1.EventEmitter {
123
140
  }
124
141
  }
125
142
  exports.TestProtocolPlugin = TestProtocolPlugin;
126
- /**
127
- * @return {ProtocolProvider}
128
- */
129
- // TODO(dboreham): Try to encapsulate swarm_key, nodeId.
130
- const testProtocolProvider = (swarmKey, peerId, protocolPlugin) => {
131
- (0, log_1.log)('creating protocol factory', { swarmKey: keys_1.PublicKey.from(swarmKey), peerId }, { file: "packages/core/mesh/network-manager/src/testing/test-protocol.ts", line: 152 });
132
- return (0, protocol_factory_1.protocolFactory)({
133
- getTopics: () => [swarmKey],
134
- session: { peerId: peerId.toHex() },
135
- plugins: [protocolPlugin]
136
- });
137
- };
138
- exports.testProtocolProvider = testProtocolProvider;
139
143
  //# sourceMappingURL=test-protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-protocol.js","sourceRoot":"","sources":["../../../src/testing/test-protocol.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,mEAAmE;AAEnE,mCAAsC;AACtC,8DAAiC;AAEjC,qCAAuC;AACvC,mCAAgC;AAChC,uDAA0D;AAE1D,0DAAsD;AAEtD,MAAM,cAAc,GAAG,MAAM,CAAC;AAE9B,kFAAkF;AAC3E,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,EAAE;;IAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAA,QAAQ,CAAC,UAAU,EAAE,mCAAI,EAAE,CAAC;IAC/C,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,gBAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB;AAEF;;;;GAIG;AACH,MAAa,kBAAmB,SAAQ,qBAAY;IAYlD;;;;;;OAMG;IACH,YAAY,MAAc,EAAE,SAAS,GAAG,KAAK;QAC3C,KAAK,EAAE,CAAC;QAnBV,sCAAsC;QACrB,WAAM,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,6BAA6B;QAQlE,eAAU,GAAG,KAAK,CAAC;QAWjB,IAAA,qBAAM,EAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAEhC,iFAAiF;QACjF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,qCAAqC;IACrC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,6BAA6B;IAC7B,IAAI,KAAK;QACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,eAAe;QACb,IAAA,SAAG,EAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,gBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,wFAAC,CAAC,CAAC,0BAA0B;QAC9F,OAAO,IAAI,yBAAS,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;aACnD,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC3C,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnD,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,yCAAyC;IACzC,0DAA0D;IAE1D;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,OAAe;QACxC,IAAA,qBAAM,EAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAChC,MAAM,SAAS,GAAG,gBAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxC,uDAAuD;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAErC,IAAA,SAAG,EAAC,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,yFAAC,CAAC;QACpC,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,QAAkB;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAkB,EAAE,IAAS;QAC1C,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,QAAQ,CAAC,CAAC;QACnC,IAAA,qBAAM,EAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,gBAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;SACjC;QAED,IAAA,SAAG,EAAC,UAAU,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,yFAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAkB;QACrC,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO;SACR;QACD,MAAM,SAAS,GAAG,gBAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAC9B,OAAO;SACR;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,QAAkB;QACxC,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO;SACR;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;CACF;AAjHD,gDAiHC;AAED;;GAEG;AACH,wDAAwD;AACjD,MAAM,oBAAoB,GAAG,CAAC,QAAgB,EAAE,MAAiB,EAAE,cAAmB,EAAE,EAAE;IAC/F,IAAA,SAAG,EAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,gBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,yFAAC,CAAC;IACjF,OAAO,IAAA,kCAAe,EAAC;QACrB,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC;QAC3B,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE;QACnC,OAAO,EAAE,CAAC,cAAc,CAAC;KAC1B,CAAC,CAAC;AACL,CAAC,CAAC;AAPW,QAAA,oBAAoB,wBAO/B"}
1
+ {"version":3,"file":"test-protocol.js","sourceRoot":"","sources":["../../../src/testing/test-protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { TestBuilder } from '../testing';
2
+ /**
3
+ * Basic swarm tests.
4
+ */
5
+ export declare const basicTestSuite: (testBuilder: TestBuilder, runTests?: boolean) => void;
6
+ //# sourceMappingURL=basic-test-suite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic-test-suite.d.ts","sourceRoot":"","sources":["../../../src/tests/basic-test-suite.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMzC;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAiB,WAAW,6BAiJtD,CAAC"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2021 DXOS.org
4
+ //
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.basicTestSuite = void 0;
10
+ const chai_1 = require("chai");
11
+ const wait_for_expect_1 = __importDefault(require("wait-for-expect"));
12
+ const async_1 = require("@dxos/async");
13
+ const keys_1 = require("@dxos/keys");
14
+ const log_1 = require("@dxos/log");
15
+ const util_1 = require("@dxos/util");
16
+ const topology_1 = require("../topology");
17
+ const utils_1 = require("./utils");
18
+ // TODO(burdon): Use PublicKey throughout (remove conversion to strings, from buffers, etc.)
19
+ /**
20
+ * Basic swarm tests.
21
+ */
22
+ const basicTestSuite = (testBuilder, runTests = true) => {
23
+ if (runTests) {
24
+ return;
25
+ }
26
+ it('joins swarm, sends messages, and cleanly exits', async () => {
27
+ const peer1 = testBuilder.createPeer();
28
+ const peer2 = testBuilder.createPeer();
29
+ await (0, utils_1.openAndCloseAfterTest)([peer1, peer2]);
30
+ const topic = keys_1.PublicKey.random();
31
+ const [swarm1, swarm2] = await (0, utils_1.joinSwarm)([peer1, peer2], topic, () => new topology_1.FullyConnectedTopology());
32
+ await (0, utils_1.exchangeMessages)(swarm1, swarm2);
33
+ await (0, utils_1.leaveSwarm)([peer1, peer2], topic);
34
+ });
35
+ // TODO(burdon): Test with more peers (configure and test messaging).
36
+ it('joins swarm with star topology', async () => {
37
+ const peer1 = testBuilder.createPeer();
38
+ const peer2 = testBuilder.createPeer();
39
+ await (0, utils_1.openAndCloseAfterTest)([peer1, peer2]);
40
+ const topic = keys_1.PublicKey.random();
41
+ const [swarm1, swarm2] = await (0, utils_1.joinSwarm)([peer1, peer2], topic, () => new topology_1.StarTopology(peer1.peerId)); // NOTE: Same peer.
42
+ await (0, utils_1.exchangeMessages)(swarm1, swarm2);
43
+ await (0, utils_1.leaveSwarm)([peer1, peer2], topic);
44
+ });
45
+ // TODO(burdon): Fails when trying to reconnect to same topic.
46
+ it('joins swarm multiple times', async () => {
47
+ const peer1 = testBuilder.createPeer();
48
+ const peer2 = testBuilder.createPeer();
49
+ await (0, utils_1.openAndCloseAfterTest)([peer1, peer2]);
50
+ const topic1 = keys_1.PublicKey.random();
51
+ {
52
+ const [swarm1, swarm2] = await (0, utils_1.joinSwarm)([peer1, peer2], topic1);
53
+ await (0, utils_1.exchangeMessages)(swarm1, swarm2);
54
+ await (0, utils_1.leaveSwarm)([peer1, peer2], topic1);
55
+ }
56
+ // TODO(burdon): Add log marker like this to logging lib. Auto add between tests?
57
+ // TODO(burdon): Enable new Error to take second context obj: new Error('msg', {}).
58
+ (0, log_1.log)('————————————————————————————————————————', {}, { file: "packages/core/mesh/network-manager/src/tests/basic-test-suite.ts", line: 67, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation." });
59
+ const topic2 = keys_1.PublicKey.random();
60
+ {
61
+ const [swarm1, swarm2] = await (0, utils_1.joinSwarm)([peer1, peer2], topic2);
62
+ await (0, utils_1.exchangeMessages)(swarm1, swarm2);
63
+ await (0, utils_1.leaveSwarm)([peer1, peer2], topic2);
64
+ }
65
+ });
66
+ it.skip('joins multiple swarms', async () => {
67
+ // TODO(burdon): N peers.
68
+ // TODO(burdon): Merge with test below.
69
+ const peer1 = testBuilder.createPeer();
70
+ const peer2 = testBuilder.createPeer();
71
+ await (0, utils_1.openAndCloseAfterTest)([peer1, peer2]);
72
+ const numSwarms = 5;
73
+ const topics = Array.from(Array(numSwarms)).map(() => keys_1.PublicKey.random());
74
+ (0, chai_1.expect)(topics).to.have.length(numSwarms);
75
+ });
76
+ // TODO(burdon): Fails with WebRTC.
77
+ // TODO(burdon): This just tests multiple swarms (not peers in the same swarm)?
78
+ // Generalize for n swarms and factor into other tests; configure message activity.
79
+ it.skip('joins multiple swarms concurrently', async () => {
80
+ const createSwarm = async (messages, label) => {
81
+ const topicA = keys_1.PublicKey.random();
82
+ const peer1a = testBuilder.createPeer();
83
+ const peer2a = testBuilder.createPeer();
84
+ const swarm1a = await peer1a.createSwarm(topicA).join();
85
+ const swarm2a = await peer2a.createSwarm(topicA).join();
86
+ swarm1a.plugin.on('receive', (_, msg) => {
87
+ messages.push(msg);
88
+ });
89
+ swarm2a.plugin.on('connect', async () => {
90
+ await swarm2a.plugin.send(peer1a.peerId.asBuffer(), label);
91
+ });
92
+ };
93
+ const receivedA = [];
94
+ const receivedB = [];
95
+ void createSwarm(receivedA, 'Swarm A');
96
+ void createSwarm(receivedB, 'Swarm B');
97
+ // TODO(burdon): Replace with triggers.
98
+ await (0, wait_for_expect_1.default)(() => {
99
+ (0, chai_1.expect)(receivedA).to.have.length(1);
100
+ (0, chai_1.expect)(receivedB).to.have.length(1);
101
+ (0, chai_1.expect)(receivedA[0]).to.eq('Swarm A');
102
+ (0, chai_1.expect)(receivedB[0]).to.eq('Swarm B');
103
+ });
104
+ });
105
+ // TODO(burdon): Fails with WebRTC.
106
+ // TODO(burdon): Factor out components of test.
107
+ it.skip('many peers and connections', async () => {
108
+ const numTopics = 5;
109
+ const peersPerTopic = 5;
110
+ await Promise.all((0, util_1.range)(numTopics).map(async () => {
111
+ const topic = keys_1.PublicKey.random();
112
+ await Promise.all((0, util_1.range)(peersPerTopic).map(async () => {
113
+ const peer = testBuilder.createPeer();
114
+ const swarm = await peer.createSwarm(topic).join();
115
+ const [done, pongReceived] = (0, async_1.latch)({ count: peersPerTopic - 1 });
116
+ swarm.plugin.on('connect', async (protocol) => {
117
+ var _a;
118
+ const { peerId } = (_a = protocol.getSession()) !== null && _a !== void 0 ? _a : {};
119
+ const remoteId = keys_1.PublicKey.from(peerId);
120
+ await swarm.plugin.send(remoteId.asBuffer(), 'ping');
121
+ });
122
+ swarm.plugin.on('receive', async (protocol, data) => {
123
+ var _a;
124
+ const { peerId } = (_a = protocol.getSession()) !== null && _a !== void 0 ? _a : {};
125
+ const remoteId = keys_1.PublicKey.from(peerId);
126
+ if (data === 'ping') {
127
+ await swarm.plugin.send(remoteId.asBuffer(), 'pong');
128
+ }
129
+ else if (data === 'pong') {
130
+ pongReceived();
131
+ }
132
+ else {
133
+ throw new Error(`Invalid message: ${data}`);
134
+ }
135
+ });
136
+ await done();
137
+ }));
138
+ }));
139
+ });
140
+ };
141
+ exports.basicTestSuite = basicTestSuite;
142
+ //# sourceMappingURL=basic-test-suite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic-test-suite.js","sourceRoot":"","sources":["../../../src/tests/basic-test-suite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=memory-transport.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-transport.test.d.ts","sourceRoot":"","sources":["../../../src/tests/memory-transport.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2021 DXOS.org
4
+ //
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const testing_1 = require("../testing");
7
+ const basic_test_suite_1 = require("./basic-test-suite");
8
+ describe('Memory transport', function () {
9
+ const testBuilder = new testing_1.TestBuilder();
10
+ (0, basic_test_suite_1.basicTestSuite)(testBuilder);
11
+ });
12
+ //# sourceMappingURL=memory-transport.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-transport.test.js","sourceRoot":"","sources":["../../../src/tests/memory-transport.test.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;AAEF,wCAAyC;AACzC,yDAAoD;AAEpD,QAAQ,CAAC,kBAAkB,EAAE;IAC3B,MAAM,WAAW,GAAG,IAAI,qBAAW,EAAE,CAAC;IACtC,IAAA,iCAAc,EAAC,WAAW,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presence.test.d.ts","sourceRoot":"","sources":["../../../src/tests/presence.test.ts"],"names":[],"mappings":""}