@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.
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/network-manager.d.ts +10 -14
- package/dist/src/network-manager.d.ts.map +1 -1
- package/dist/src/network-manager.js +28 -33
- package/dist/src/network-manager.js.map +1 -1
- package/dist/src/protocol-factory.d.ts.map +1 -1
- package/dist/src/protocol-factory.js +8 -6
- package/dist/src/protocol-factory.js.map +1 -1
- package/dist/src/signal/index.d.ts +2 -2
- package/dist/src/signal/index.d.ts.map +1 -1
- package/dist/src/signal/index.js +2 -2
- package/dist/src/signal/index.js.map +1 -1
- package/dist/src/signal/message-router.d.ts +2 -2
- package/dist/src/signal/message-router.js +3 -3
- package/dist/src/signal/message-router.js.map +1 -1
- package/dist/src/signal/{signal-messaging.d.ts → signal-messenger.d.ts} +2 -2
- package/dist/src/signal/{signal-messaging.d.ts.map → signal-messenger.d.ts.map} +1 -1
- package/dist/src/signal/{signal-messaging.js → signal-messenger.js} +1 -1
- package/dist/src/signal/signal-messenger.js.map +1 -0
- package/dist/src/swarm/connection.d.ts +6 -3
- package/dist/src/swarm/connection.d.ts.map +1 -1
- package/dist/src/swarm/connection.js +28 -15
- package/dist/src/swarm/connection.js.map +1 -1
- package/dist/src/swarm/peer.d.ts +45 -0
- package/dist/src/swarm/peer.d.ts.map +1 -0
- package/dist/src/swarm/peer.js +113 -0
- package/dist/src/swarm/peer.js.map +1 -0
- package/dist/src/swarm/swarm-mapper.d.ts +2 -2
- package/dist/src/swarm/swarm-mapper.d.ts.map +1 -1
- package/dist/src/swarm/swarm-mapper.js +12 -10
- package/dist/src/swarm/swarm-mapper.js.map +1 -1
- package/dist/src/swarm/swarm.d.ts +13 -18
- package/dist/src/swarm/swarm.d.ts.map +1 -1
- package/dist/src/swarm/swarm.js +126 -97
- package/dist/src/swarm/swarm.js.map +1 -1
- package/dist/src/swarm/swarm.test.js +2 -2
- package/dist/src/swarm/swarm.test.js.map +1 -1
- package/dist/src/testing/test-builder.d.ts +31 -18
- package/dist/src/testing/test-builder.d.ts.map +1 -1
- package/dist/src/testing/test-builder.js +120 -48
- package/dist/src/testing/test-builder.js.map +1 -1
- package/dist/src/testing/test-protocol.d.ts +5 -5
- package/dist/src/testing/test-protocol.d.ts.map +1 -1
- package/dist/src/testing/test-protocol.js +28 -24
- package/dist/src/testing/test-protocol.js.map +1 -1
- package/dist/src/tests/basic-test-suite.d.ts +6 -0
- package/dist/src/tests/basic-test-suite.d.ts.map +1 -0
- package/dist/src/tests/basic-test-suite.js +142 -0
- package/dist/src/tests/basic-test-suite.js.map +1 -0
- package/dist/src/tests/memory-transport.test.d.ts +2 -0
- package/dist/src/tests/memory-transport.test.d.ts.map +1 -0
- package/dist/src/tests/memory-transport.test.js +12 -0
- package/dist/src/tests/memory-transport.test.js.map +1 -0
- package/dist/src/{presence.test.d.ts → tests/presence.test.d.ts} +0 -0
- package/dist/src/tests/presence.test.d.ts.map +1 -0
- package/dist/src/{presence.test.js → tests/presence.test.js} +21 -20
- package/dist/src/tests/presence.test.js.map +1 -0
- package/dist/src/tests/property-test-suite.d.ts +5 -0
- package/dist/src/tests/property-test-suite.d.ts.map +1 -0
- package/dist/src/tests/property-test-suite.js +203 -0
- package/dist/src/tests/property-test-suite.js.map +1 -0
- package/dist/src/tests/utils.d.ts +21 -0
- package/dist/src/tests/utils.d.ts.map +1 -0
- package/dist/src/tests/utils.js +76 -0
- package/dist/src/tests/utils.js.map +1 -0
- package/dist/src/tests/webrtc-transport.test.d.ts +2 -0
- package/dist/src/tests/webrtc-transport.test.d.ts.map +1 -0
- package/dist/src/tests/webrtc-transport.test.js +16 -0
- package/dist/src/tests/webrtc-transport.test.js.map +1 -0
- package/dist/src/topology/fully-connected-topology.d.ts +1 -1
- package/dist/src/topology/fully-connected-topology.d.ts.map +1 -1
- package/dist/src/topology/fully-connected-topology.js +4 -3
- package/dist/src/topology/fully-connected-topology.js.map +1 -1
- package/dist/src/topology/mmst-topology.js +4 -4
- package/dist/src/topology/mmst-topology.js.map +1 -1
- package/dist/src/topology/star-topology.js +4 -4
- package/dist/src/topology/star-topology.js.map +1 -1
- package/dist/src/topology/topology.d.ts +0 -5
- package/dist/src/topology/topology.d.ts.map +1 -1
- package/dist/src/transport/memory-transport.d.ts +8 -7
- package/dist/src/transport/memory-transport.d.ts.map +1 -1
- package/dist/src/transport/memory-transport.js +79 -45
- package/dist/src/transport/memory-transport.js.map +1 -1
- package/dist/src/transport/memory-transport.test.js +3 -2
- package/dist/src/transport/memory-transport.test.js.map +1 -1
- package/dist/src/transport/transport.d.ts +8 -4
- package/dist/src/transport/transport.d.ts.map +1 -1
- package/dist/src/transport/webrtc-simple-peer.test.d.ts +2 -0
- package/dist/src/transport/webrtc-simple-peer.test.d.ts.map +1 -0
- package/dist/src/transport/{wrtc-simple-peer.test.js → webrtc-simple-peer.test.js} +2 -2
- package/dist/src/transport/webrtc-simple-peer.test.js.map +1 -0
- package/dist/src/transport/webrtc-transport-proxy.d.ts +4 -4
- package/dist/src/transport/webrtc-transport-proxy.d.ts.map +1 -1
- package/dist/src/transport/webrtc-transport-proxy.js +15 -10
- package/dist/src/transport/webrtc-transport-proxy.js.map +1 -1
- package/dist/src/transport/webrtc-transport-proxy.test.js +2 -2
- package/dist/src/transport/webrtc-transport-proxy.test.js.map +1 -1
- package/dist/src/transport/webrtc-transport-service.js +2 -2
- package/dist/src/transport/webrtc-transport-service.js.map +1 -1
- package/dist/src/transport/webrtc-transport.d.ts +3 -3
- package/dist/src/transport/webrtc-transport.d.ts.map +1 -1
- package/dist/src/transport/webrtc-transport.js +10 -10
- package/dist/src/transport/webrtc-transport.js.map +1 -1
- package/dist/src/transport/webrtc-transport.test.js +3 -3
- package/dist/src/transport/webrtc-transport.test.js.map +1 -1
- package/dist/src/types.d.ts +1 -1
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +25 -18
- package/src/index.ts +2 -2
- package/src/network-manager.ts +30 -45
- package/src/protocol-factory.ts +5 -3
- package/src/signal/index.ts +2 -2
- package/src/signal/integration.test.ts +1 -1
- package/src/signal/message-router.test.ts +1 -1
- package/src/signal/message-router.ts +2 -2
- package/src/signal/{signal-messaging.ts → signal-messenger.ts} +2 -2
- package/src/swarm/connection.ts +23 -12
- package/src/swarm/peer.ts +156 -0
- package/src/swarm/swarm-mapper.ts +21 -10
- package/src/swarm/swarm.ts +142 -111
- package/src/testing/test-builder.ts +143 -63
- package/src/testing/test-protocol.ts +31 -23
- package/src/tests/basic-test-suite.ts +168 -0
- package/src/tests/memory-transport.test.ts +11 -0
- package/src/{presence.test.ts → tests/presence.test.ts} +24 -23
- package/src/tests/property-test-suite.ts +221 -0
- package/src/tests/utils.ts +85 -0
- package/src/tests/webrtc-transport.test.ts +16 -0
- package/src/topology/fully-connected-topology.ts +5 -4
- package/src/topology/topology.ts +0 -5
- package/src/transport/memory-transport.test.ts +3 -2
- package/src/transport/memory-transport.ts +79 -49
- package/src/transport/transport.ts +9 -3
- package/src/transport/{wrtc-simple-peer.test.ts → webrtc-simple-peer.test.ts} +1 -1
- package/src/transport/webrtc-transport-proxy.test.ts +2 -2
- package/src/transport/webrtc-transport-proxy.ts +17 -8
- package/src/transport/webrtc-transport-service.ts +1 -1
- package/src/transport/webrtc-transport.test.ts +4 -6
- package/src/transport/webrtc-transport.ts +4 -4
- package/dist/src/network-manager.test.d.ts +0 -2
- package/dist/src/network-manager.test.d.ts.map +0 -1
- package/dist/src/network-manager.test.js +0 -596
- package/dist/src/network-manager.test.js.map +0 -1
- package/dist/src/presence.test.d.ts.map +0 -1
- package/dist/src/presence.test.js.map +0 -1
- package/dist/src/signal/signal-messaging.js.map +0 -1
- package/dist/src/transport/wrtc-simple-peer.test.d.ts +0 -2
- package/dist/src/transport/wrtc-simple-peer.test.d.ts.map +0 -1
- package/dist/src/transport/wrtc-simple-peer.test.js.map +0 -1
- 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.
|
|
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
|
|
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
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Builder used to construct networks and peers.
|
|
20
|
+
*/
|
|
16
21
|
class TestBuilder {
|
|
17
|
-
constructor(
|
|
18
|
-
this.
|
|
22
|
+
constructor(options = {}) {
|
|
23
|
+
this.options = options;
|
|
19
24
|
this._signalContext = new messaging_1.MemorySignalManagerContext();
|
|
20
25
|
}
|
|
21
26
|
createSignalManager() {
|
|
22
|
-
if (this.
|
|
23
|
-
return new messaging_1.WebsocketSignalManager(
|
|
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
|
-
|
|
28
|
-
return new
|
|
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
|
-
*
|
|
38
|
+
* Testing network peer.
|
|
39
39
|
*/
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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;;;
|
|
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;
|
|
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.
|
|
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:
|
|
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
|
|
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
|
-
|
|
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)('
|
|
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', {
|
|
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;
|
|
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,2BAA2B;AAC3B,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;IAED,OAAO,gBAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC,CAAC;AAPW,QAAA,SAAS,aAOpB;AAEF;;GAEG;AACH,0DAA0D;AACnD,MAAM,oBAAoB,GAAG,CAAC,KAAa,EAAE,MAAiB,EAAE,cAAmB,EAAE,EAAE;IAC5F,IAAA,SAAG,EAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,gBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,6RAAC,CAAC;IAE3E,OAAO,IAAA,kCAAe,EAAC;QACrB,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC;QACxB,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE;QACnC,OAAO,EAAE,CAAC,cAAc,CAAC;KAC1B,CAAC,CAAC;AACL,CAAC,CAAC;AARW,QAAA,oBAAoB,wBAQ/B;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,6RAAC,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;IAElD,KAAK,CAAC,KAAK,CAAC,QAAkB;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED;;;;;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,CAAC,2BAA2B;QAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,mBAAmB,gBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SACzE;QAED,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,SAAS,EAAE,EAAE,MAAM,EAAE,gBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,8RAAC,CAAC;QAC5D,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,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,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,MAAM,EAAE,gBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,8RAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAkB;QACrC,IAAA,SAAG,EAAC,YAAY,EAAE,EAAE,EAAE,EAAE,gBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,8RAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO;SACR;QAED,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,IAAA,SAAG,EAAC,eAAe,EAAE,EAAE,EAAE,EAAE,gBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,8RAAC,CAAC;QAC1D,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;AAtHD,gDAsHC"}
|
|
@@ -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 @@
|
|
|
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"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presence.test.d.ts","sourceRoot":"","sources":["../../../src/tests/presence.test.ts"],"names":[],"mappings":""}
|