@dxos/messaging 0.6.12 → 0.6.13-main.548ca8d
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/lib/browser/chunk-BN7UMWB4.mjs +2299 -0
- package/dist/lib/browser/chunk-BN7UMWB4.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +9 -2286
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +147 -0
- package/dist/lib/browser/testing/index.mjs.map +7 -0
- package/dist/lib/node/chunk-DBUGAS7J.cjs +2276 -0
- package/dist/lib/node/chunk-DBUGAS7J.cjs.map +7 -0
- package/dist/lib/node/index.cjs +9 -2242
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +162 -0
- package/dist/lib/node/testing/index.cjs.map +7 -0
- package/dist/lib/node-esm/chunk-5LCDIQ7T.mjs +2291 -0
- package/dist/lib/node-esm/chunk-5LCDIQ7T.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +22 -0
- package/dist/lib/node-esm/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -0
- package/dist/lib/node-esm/testing/index.mjs +146 -0
- package/dist/lib/node-esm/testing/index.mjs.map +7 -0
- package/dist/types/src/messenger.blueprint-test.d.ts +2 -3
- package/dist/types/src/messenger.blueprint-test.d.ts.map +1 -1
- package/dist/types/src/messenger.d.ts.map +1 -1
- package/dist/types/src/messenger.node.test.d.ts +2 -0
- package/dist/types/src/messenger.node.test.d.ts.map +1 -0
- package/dist/types/src/signal-client/signal-client.node.test.d.ts +2 -0
- package/dist/types/src/signal-client/signal-client.node.test.d.ts.map +1 -0
- package/dist/types/src/signal-client/signal-rpc-client.node.test.d.ts +2 -0
- package/dist/types/src/signal-client/signal-rpc-client.node.test.d.ts.map +1 -0
- package/dist/types/src/signal-manager/edge-signal-manager.d.ts.map +1 -1
- package/dist/types/src/signal-manager/edge-signal-manager.node.test.d.ts +2 -0
- package/dist/types/src/signal-manager/edge-signal-manager.node.test.d.ts.map +1 -0
- package/dist/types/src/signal-manager/websocket-signal-manager.node.test.d.ts +2 -0
- package/dist/types/src/signal-manager/websocket-signal-manager.node.test.d.ts.map +1 -0
- package/dist/types/src/testing/test-builder.d.ts +3 -4
- package/dist/types/src/testing/test-builder.d.ts.map +1 -1
- package/dist/types/src/testing/test-peer.d.ts +0 -1
- package/dist/types/src/testing/test-peer.d.ts.map +1 -1
- package/package.json +32 -21
- package/src/messenger.blueprint-test.ts +25 -33
- package/src/{messenger.test.ts → messenger.node.test.ts} +9 -8
- package/src/messenger.ts +1 -1
- package/src/signal-client/{signal-client.test.ts → signal-client.node.test.ts} +9 -8
- package/src/signal-client/{signal-rpc-client.test.ts → signal-rpc-client.node.test.ts} +8 -13
- package/src/signal-manager/{edge-signal-manager.test.ts → edge-signal-manager.node.test.ts} +14 -7
- package/src/signal-manager/edge-signal-manager.ts +5 -6
- package/src/signal-manager/{websocket-signal-manager.test.ts → websocket-signal-manager.node.test.ts} +12 -30
- package/src/testing/test-builder.ts +3 -6
- package/src/testing/test-peer.ts +5 -7
- package/dist/types/src/messenger.test.d.ts +0 -2
- package/dist/types/src/messenger.test.d.ts.map +0 -1
- package/dist/types/src/signal-client/signal-client.test.d.ts +0 -2
- package/dist/types/src/signal-client/signal-client.test.d.ts.map +0 -1
- package/dist/types/src/signal-client/signal-rpc-client.test.d.ts +0 -2
- package/dist/types/src/signal-client/signal-rpc-client.test.d.ts.map +0 -1
- package/dist/types/src/signal-manager/edge-signal-manager.test.d.ts +0 -2
- package/dist/types/src/signal-manager/edge-signal-manager.test.d.ts.map +0 -1
- package/dist/types/src/signal-manager/websocket-signal-manager.test.d.ts +0 -2
- package/dist/types/src/signal-manager/websocket-signal-manager.test.d.ts.map +0 -1
|
@@ -2,37 +2,31 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { afterAll, beforeAll, describe, test } from 'vitest';
|
|
6
|
+
|
|
5
7
|
import { asyncTimeout, sleep } from '@dxos/async';
|
|
6
8
|
import { PublicKey } from '@dxos/keys';
|
|
7
9
|
import { runTestSignalServer, type SignalServerRunner } from '@dxos/signal';
|
|
8
|
-
import {
|
|
10
|
+
import { openAndClose } from '@dxos/test-utils';
|
|
9
11
|
|
|
10
12
|
import { WebsocketSignalManager } from './websocket-signal-manager';
|
|
11
13
|
import { createMessage, expectPeerAvailable, expectReceivedMessage } from '../testing';
|
|
12
14
|
|
|
13
|
-
describe('WebSocketSignalManager', () => {
|
|
15
|
+
describe.skip('WebSocketSignalManager', () => {
|
|
14
16
|
let broker1: SignalServerRunner;
|
|
15
17
|
let broker2: SignalServerRunner;
|
|
16
18
|
|
|
17
19
|
beforeAll(async () => {
|
|
18
|
-
if (!mochaExecutor.tags.includes('e2e')) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
20
|
broker1 = await runTestSignalServer({ port: 5001 });
|
|
23
21
|
broker2 = await runTestSignalServer({ port: 5002 });
|
|
24
22
|
});
|
|
25
23
|
|
|
26
24
|
afterAll(() => {
|
|
27
|
-
if (!mochaExecutor.tags.includes('e2e')) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
25
|
void broker1.stop();
|
|
32
26
|
void broker2.stop();
|
|
33
27
|
});
|
|
34
28
|
|
|
35
|
-
test('join swarm with two brokers', async () => {
|
|
29
|
+
test('join swarm with two brokers', { timeout: 1_000 }, async () => {
|
|
36
30
|
const client1 = new WebsocketSignalManager([{ server: broker1.url() }, { server: broker2.url() }]);
|
|
37
31
|
const client2 = new WebsocketSignalManager([{ server: broker1.url() }]);
|
|
38
32
|
const client3 = new WebsocketSignalManager([{ server: broker2.url() }]);
|
|
@@ -50,12 +44,9 @@ describe('WebSocketSignalManager', () => {
|
|
|
50
44
|
await client3.join({ topic, peer: { peerKey: peer3.toHex() } });
|
|
51
45
|
|
|
52
46
|
await Promise.all([joined12, joined13, joined21, joined31]);
|
|
53
|
-
})
|
|
54
|
-
.timeout(1_000)
|
|
55
|
-
.retries(2)
|
|
56
|
-
.tag('e2e');
|
|
47
|
+
});
|
|
57
48
|
|
|
58
|
-
test('join single swarm with doubled brokers', async () => {
|
|
49
|
+
test('join single swarm with doubled brokers', { timeout: 1_000 }, async () => {
|
|
59
50
|
const client1 = new WebsocketSignalManager([{ server: broker1.url() }, { server: broker2.url() }]);
|
|
60
51
|
const client2 = new WebsocketSignalManager([{ server: broker1.url() }, { server: broker2.url() }]);
|
|
61
52
|
await openAndClose(client1, client2);
|
|
@@ -78,12 +69,9 @@ describe('WebSocketSignalManager', () => {
|
|
|
78
69
|
await client1.sendMessage(message);
|
|
79
70
|
|
|
80
71
|
await asyncTimeout(received, 1_000);
|
|
81
|
-
})
|
|
82
|
-
.timeout(1_000)
|
|
83
|
-
.retries(2)
|
|
84
|
-
.tag('e2e');
|
|
72
|
+
});
|
|
85
73
|
|
|
86
|
-
test('works with one broken server', async () => {
|
|
74
|
+
test('works with one broken server', { timeout: 1_000 }, async () => {
|
|
87
75
|
const client1 = new WebsocketSignalManager([{ server: 'ws://broken.server/signal' }, { server: broker1.url() }]);
|
|
88
76
|
const client2 = new WebsocketSignalManager([{ server: 'ws://broken.server/signal' }, { server: broker1.url() }]);
|
|
89
77
|
await openAndClose(client1, client2);
|
|
@@ -97,12 +85,9 @@ describe('WebSocketSignalManager', () => {
|
|
|
97
85
|
await client2.join({ topic, peer: { peerKey: peer2.toHex() } });
|
|
98
86
|
|
|
99
87
|
await Promise.all([joined12, joined21]);
|
|
100
|
-
})
|
|
101
|
-
.timeout(1_000)
|
|
102
|
-
.retries(2)
|
|
103
|
-
.tag('e2e');
|
|
88
|
+
});
|
|
104
89
|
|
|
105
|
-
test('join two swarms with a broken signal server', async () => {
|
|
90
|
+
test('join two swarms with a broken signal server', { timeout: 1_000 }, async () => {
|
|
106
91
|
const client1 = new WebsocketSignalManager([{ server: 'ws://broken.server/signal' }, { server: broker1.url() }]);
|
|
107
92
|
const client2 = new WebsocketSignalManager([{ server: 'ws://broken.server/signal' }, { server: broker1.url() }]);
|
|
108
93
|
await openAndClose(client1, client2);
|
|
@@ -122,8 +107,5 @@ describe('WebSocketSignalManager', () => {
|
|
|
122
107
|
await client1.join({ topic: topic2, peer: { peerKey: peer1.toHex() } });
|
|
123
108
|
await client2.join({ topic: topic2, peer: { peerKey: peer2.toHex() } });
|
|
124
109
|
await Promise.all([joined212, joined221]);
|
|
125
|
-
})
|
|
126
|
-
.timeout(1_000)
|
|
127
|
-
.retries(2)
|
|
128
|
-
.tag('e2e');
|
|
110
|
+
});
|
|
129
111
|
});
|
|
@@ -2,14 +2,12 @@
|
|
|
2
2
|
// Copyright 2022 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { type PublicKey } from '@dxos/keys';
|
|
6
|
-
|
|
7
5
|
import { TestPeer } from './test-peer';
|
|
8
6
|
import { type SignalManager, MemorySignalManager, MemorySignalManagerContext } from '../signal-manager';
|
|
9
7
|
import { type Message } from '../signal-methods';
|
|
10
8
|
|
|
11
9
|
export type TestBuilderOptions = {
|
|
12
|
-
signalManagerFactory?: (
|
|
10
|
+
signalManagerFactory?: (peer: TestPeer) => Promise<SignalManager>;
|
|
13
11
|
messageDisruption?: (msg: Message) => Message[];
|
|
14
12
|
};
|
|
15
13
|
|
|
@@ -19,10 +17,9 @@ export class TestBuilder {
|
|
|
19
17
|
|
|
20
18
|
constructor(public options: TestBuilderOptions) {}
|
|
21
19
|
|
|
22
|
-
async createSignalManager(
|
|
20
|
+
async createSignalManager(peer: TestPeer): Promise<SignalManager> {
|
|
23
21
|
const signalManager =
|
|
24
|
-
(await this.options.signalManagerFactory?.(
|
|
25
|
-
new MemorySignalManager(this._signalContext);
|
|
22
|
+
(await this.options.signalManagerFactory?.(peer)) ?? new MemorySignalManager(this._signalContext);
|
|
26
23
|
|
|
27
24
|
if (this.options.messageDisruption) {
|
|
28
25
|
// Imitates signal network disruptions (e. g. message doubling, ).
|
package/src/testing/test-peer.ts
CHANGED
|
@@ -4,8 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
import { Event } from '@dxos/async';
|
|
6
6
|
import { Resource } from '@dxos/context';
|
|
7
|
+
import { PeerSchema } from '@dxos/edge-client';
|
|
7
8
|
import { PublicKey } from '@dxos/keys';
|
|
8
9
|
import { log } from '@dxos/log';
|
|
10
|
+
import { buf } from '@dxos/protocols/buf';
|
|
9
11
|
|
|
10
12
|
import { type TestBuilder } from './test-builder';
|
|
11
13
|
import { expectPeerAvailable, expectPeerLeft, expectReceivedMessage } from './utils';
|
|
@@ -15,7 +17,6 @@ import { type Message, type PeerInfo } from '../signal-methods';
|
|
|
15
17
|
|
|
16
18
|
export class TestPeer extends Resource {
|
|
17
19
|
public peerId = PublicKey.random();
|
|
18
|
-
public identityKey = PublicKey.random();
|
|
19
20
|
public signalManager!: SignalManager;
|
|
20
21
|
public messenger!: Messenger;
|
|
21
22
|
public defaultReceived = new Event<Message>();
|
|
@@ -25,10 +26,7 @@ export class TestPeer extends Resource {
|
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
get peerInfo(): PeerInfo {
|
|
28
|
-
return {
|
|
29
|
-
peerKey: this.peerId.toHex(),
|
|
30
|
-
identityKey: this.identityKey.toHex(),
|
|
31
|
-
};
|
|
29
|
+
return buf.create(PeerSchema, { peerKey: this.peerId.toHex(), identityKey: this.peerId.toHex() });
|
|
32
30
|
}
|
|
33
31
|
|
|
34
32
|
async waitTillReceive(message: Message) {
|
|
@@ -44,8 +42,8 @@ export class TestPeer extends Resource {
|
|
|
44
42
|
}
|
|
45
43
|
|
|
46
44
|
protected override async _open() {
|
|
47
|
-
this.signalManager = await this.testBuilder.createSignalManager(this
|
|
48
|
-
this.messenger = new Messenger({ signalManager: this.signalManager });
|
|
45
|
+
this.signalManager = await this.testBuilder.createSignalManager(this);
|
|
46
|
+
this.messenger = new Messenger({ signalManager: this.signalManager, retryDelay: 300 });
|
|
49
47
|
|
|
50
48
|
await this.signalManager.open();
|
|
51
49
|
this.messenger.open();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"messenger.test.d.ts","sourceRoot":"","sources":["../../../src/messenger.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signal-client.test.d.ts","sourceRoot":"","sources":["../../../../src/signal-client/signal-client.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signal-rpc-client.test.d.ts","sourceRoot":"","sources":["../../../../src/signal-client/signal-rpc-client.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"edge-signal-manager.test.d.ts","sourceRoot":"","sources":["../../../../src/signal-manager/edge-signal-manager.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-signal-manager.test.d.ts","sourceRoot":"","sources":["../../../../src/signal-manager/websocket-signal-manager.test.ts"],"names":[],"mappings":""}
|