@dxos/messaging 0.6.11 → 0.6.12-main.5a87ad5

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 (42) hide show
  1. package/dist/lib/browser/index.mjs +16 -16
  2. package/dist/lib/browser/index.mjs.map +3 -3
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node/index.cjs +16 -16
  5. package/dist/lib/node/index.cjs.map +3 -3
  6. package/dist/lib/node/meta.json +1 -1
  7. package/dist/lib/node-esm/index.mjs +2292 -0
  8. package/dist/lib/node-esm/index.mjs.map +7 -0
  9. package/dist/lib/node-esm/meta.json +1 -0
  10. package/dist/types/src/messenger.blueprint-test.d.ts.map +1 -1
  11. package/dist/types/src/messenger.d.ts.map +1 -1
  12. package/dist/types/src/messenger.node.test.d.ts +2 -0
  13. package/dist/types/src/messenger.node.test.d.ts.map +1 -0
  14. package/dist/types/src/signal-client/signal-client.node.test.d.ts +2 -0
  15. package/dist/types/src/signal-client/signal-client.node.test.d.ts.map +1 -0
  16. package/dist/types/src/signal-client/signal-rpc-client.node.test.d.ts +2 -0
  17. package/dist/types/src/signal-client/signal-rpc-client.node.test.d.ts.map +1 -0
  18. package/dist/types/src/signal-manager/edge-signal-manager.d.ts.map +1 -1
  19. package/dist/types/src/signal-manager/edge-signal-manager.node.test.d.ts +2 -0
  20. package/dist/types/src/signal-manager/edge-signal-manager.node.test.d.ts.map +1 -0
  21. package/dist/types/src/signal-manager/websocket-signal-manager.node.test.d.ts +2 -0
  22. package/dist/types/src/signal-manager/websocket-signal-manager.node.test.d.ts.map +1 -0
  23. package/package.json +18 -20
  24. package/src/messenger.blueprint-test.ts +23 -28
  25. package/src/{messenger.test.ts → messenger.node.test.ts} +6 -4
  26. package/src/messenger.ts +1 -1
  27. package/src/signal-client/{signal-client.test.ts → signal-client.node.test.ts} +9 -8
  28. package/src/signal-client/{signal-rpc-client.test.ts → signal-rpc-client.node.test.ts} +8 -13
  29. package/src/signal-manager/{edge-signal-manager.test.ts → edge-signal-manager.node.test.ts} +7 -4
  30. package/src/signal-manager/edge-signal-manager.ts +5 -6
  31. package/src/signal-manager/{websocket-signal-manager.test.ts → websocket-signal-manager.node.test.ts} +12 -30
  32. package/src/testing/test-peer.ts +1 -1
  33. package/dist/types/src/messenger.test.d.ts +0 -2
  34. package/dist/types/src/messenger.test.d.ts.map +0 -1
  35. package/dist/types/src/signal-client/signal-client.test.d.ts +0 -2
  36. package/dist/types/src/signal-client/signal-client.test.d.ts.map +0 -1
  37. package/dist/types/src/signal-client/signal-rpc-client.test.d.ts +0 -2
  38. package/dist/types/src/signal-client/signal-rpc-client.test.d.ts.map +0 -1
  39. package/dist/types/src/signal-manager/edge-signal-manager.test.d.ts +0 -2
  40. package/dist/types/src/signal-manager/edge-signal-manager.test.d.ts.map +0 -1
  41. package/dist/types/src/signal-manager/websocket-signal-manager.test.d.ts +0 -2
  42. package/dist/types/src/signal-manager/websocket-signal-manager.test.d.ts.map +0 -1
@@ -2,11 +2,10 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { expect } from 'earljs';
5
+ import { describe, expect, test, onTestFinished } from 'vitest';
6
6
 
7
7
  import { asyncTimeout, latch, sleep } from '@dxos/async';
8
8
  import { type PublicKey } from '@dxos/keys';
9
- import { describe, test, afterTest } from '@dxos/test';
10
9
  import { range } from '@dxos/util';
11
10
 
12
11
  import { type SignalManager, WebsocketSignalManager } from './signal-manager';
@@ -20,7 +19,7 @@ export const messengerTests = (
20
19
  const builder = new TestBuilder({
21
20
  signalManagerFactory,
22
21
  });
23
- afterTest(() => builder.close());
22
+ onTestFinished(() => builder.close());
24
23
  const peer1 = await builder.createPeer();
25
24
  const peer2 = await builder.createPeer();
26
25
 
@@ -39,11 +38,11 @@ export const messengerTests = (
39
38
  await promise;
40
39
  });
41
40
 
42
- test('Message 3 peers', async () => {
41
+ test('Message 3 peers', { timeout: 1_000 }, async () => {
43
42
  const builder = new TestBuilder({
44
43
  signalManagerFactory,
45
44
  });
46
- afterTest(() => builder.close());
45
+ onTestFinished(() => builder.close());
47
46
  const peer1 = await builder.createPeer();
48
47
  const peer2 = await builder.createPeer();
49
48
  const peer3 = await builder.createPeer();
@@ -83,13 +82,13 @@ export const messengerTests = (
83
82
  await peer2.messenger.sendMessage(message);
84
83
  await asyncTimeout(promise, 1_000);
85
84
  }
86
- }).timeout(1_000);
85
+ });
87
86
 
88
- test('Message routing', async () => {
87
+ test('Message routing', { timeout: 4_000 }, async () => {
89
88
  const builder = new TestBuilder({
90
89
  signalManagerFactory,
91
90
  });
92
- afterTest(() => builder.close());
91
+ onTestFinished(() => builder.close());
93
92
  const peer1 = await builder.createPeer();
94
93
  const peer2 = await builder.createPeer();
95
94
 
@@ -140,13 +139,13 @@ export const messengerTests = (
140
139
  expect(messageEqual(message, onMessage2[0])).toEqual(true);
141
140
  expect(onMessage3.length === 0);
142
141
  }
143
- }).timeout(4_000);
142
+ });
144
143
 
145
- test('Unsubscribe listener', async () => {
144
+ test.skip('Unsubscribe listener', { timeout: 1_000 }, async () => {
146
145
  const builder = new TestBuilder({
147
146
  signalManagerFactory,
148
147
  });
149
- afterTest(() => builder.close());
148
+ onTestFinished(() => builder.close());
150
149
  const peer1 = await builder.createPeer();
151
150
  const peer2 = await builder.createPeer();
152
151
 
@@ -207,15 +206,13 @@ export const messengerTests = (
207
206
  expect(messages1.length).toEqual(2);
208
207
  expect(messages2.length).toEqual(1);
209
208
  }
210
- })
211
- .tag('flaky')
212
- .timeout(1_000);
209
+ });
213
210
 
214
- test('re-entrant message', async () => {
211
+ test('re-entrant message', { timeout: 1_000 }, async () => {
215
212
  const builder = new TestBuilder({
216
213
  signalManagerFactory,
217
214
  });
218
- afterTest(() => builder.close());
215
+ onTestFinished(() => builder.close());
219
216
  const peer1 = await builder.createPeer();
220
217
  const peer2 = await builder.createPeer();
221
218
 
@@ -245,9 +242,9 @@ export const messengerTests = (
245
242
  await peer1.messenger.sendMessage(message);
246
243
  await asyncTimeout(receivePromise, 1_000);
247
244
  }
248
- }).timeout(1_000);
245
+ });
249
246
 
250
- describe('Reliability', () => {
247
+ describe('Reliability', { timeout: 5_000 }, () => {
251
248
  test('message with non reliable connection', async () => {
252
249
  // Simulate unreliable connection.
253
250
  // Only each 3rd message is sent.
@@ -264,7 +261,7 @@ export const messengerTests = (
264
261
  signalManagerFactory,
265
262
  messageDisruption: unreliableConnection,
266
263
  });
267
- afterTest(() => builder.close());
264
+ onTestFinished(() => builder.close());
268
265
  const peer1 = await builder.createPeer();
269
266
  await peer1.open();
270
267
  const peer2 = await builder.createPeer();
@@ -286,9 +283,9 @@ export const messengerTests = (
286
283
 
287
284
  // expect to receive 3 messages.
288
285
  await receivePromise;
289
- }).timeout(5_000);
286
+ });
290
287
 
291
- test('ignoring doubled messages', async () => {
288
+ test('ignoring doubled messages', { timeout: 5_000 }, async () => {
292
289
  // Message got doubled going through signal network.
293
290
  const doublingMessage = (data: Message) => [data, data];
294
291
 
@@ -296,7 +293,7 @@ export const messengerTests = (
296
293
  signalManagerFactory,
297
294
  messageDisruption: doublingMessage,
298
295
  });
299
- afterTest(() => builder.close());
296
+ onTestFinished(() => builder.close());
300
297
  const peer1 = await builder.createPeer();
301
298
  await peer1.open();
302
299
  const peer2 = await builder.createPeer();
@@ -317,10 +314,10 @@ export const messengerTests = (
317
314
  await asyncTimeout(promise(), 1000);
318
315
  expect(count).toEqual(1);
319
316
  });
320
- }).timeout(5_000);
317
+ });
321
318
 
322
- describe('load', () => {
323
- test('many connections to KUBE', async () => {
319
+ describe.skip('load', () => {
320
+ test('many connections to KUBE', { timeout: 5_000 }, async () => {
324
321
  const builder = new TestBuilder({
325
322
  signalManagerFactory: async () =>
326
323
  new WebsocketSignalManager([{ server: 'wss://dev.kube.dxos.org/.well-known/dx/signal' }]),
@@ -339,8 +336,6 @@ export const messengerTests = (
339
336
  });
340
337
 
341
338
  await sleep(1000000);
342
- })
343
- .tag('stress')
344
- .timeout(5_000);
339
+ });
345
340
  });
346
341
  };
@@ -2,11 +2,13 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
+ import { afterAll, onTestFinished, beforeAll, test, describe } from 'vitest';
6
+
5
7
  import { asyncTimeout } from '@dxos/async';
6
8
  import { EdgeClient } from '@dxos/edge-client';
7
9
  import { type PublicKey } from '@dxos/keys';
8
10
  import { runTestSignalServer, type SignalServerRunner } from '@dxos/signal';
9
- import { afterAll, afterTest, beforeAll, openAndClose, test, describe } from '@dxos/test';
11
+ import { openAndClose } from '@dxos/test-utils';
10
12
 
11
13
  import { messengerTests } from './messenger.blueprint-test';
12
14
  import { EdgeSignalManager, WebsocketSignalManager } from './signal-manager';
@@ -26,12 +28,12 @@ describe('Messenger with WebsocketSignalManager', () => {
26
28
 
27
29
  messengerTests(async () => new WebsocketSignalManager([{ server: broker.url() }]));
28
30
 
29
- test('Message with broken signal server', async () => {
31
+ test('Message with broken signal server', { timeout: 1000 }, async () => {
30
32
  const builder = new TestBuilder({
31
33
  signalManagerFactory: async () =>
32
34
  new WebsocketSignalManager([{ server: 'ws://broken.kube.' }, { server: broker.url() }]),
33
35
  });
34
- afterTest(() => builder.close());
36
+ onTestFinished(() => builder.close());
35
37
  const peer1 = await builder.createPeer();
36
38
  const peer2 = await builder.createPeer();
37
39
 
@@ -46,7 +48,7 @@ describe('Messenger with WebsocketSignalManager', () => {
46
48
  await peer1.messenger.sendMessage(message);
47
49
  await asyncTimeout(receivePromise, 1_000);
48
50
  }
49
- }).timeout(1_000);
51
+ });
50
52
  });
51
53
 
52
54
  // TODO(mykola): Expects wrangler dev in edge repo to run. Skip to pass CI.
package/src/messenger.ts CHANGED
@@ -57,7 +57,7 @@ export class Messenger {
57
57
  private _closed = true;
58
58
  private readonly _retryDelay: number;
59
59
 
60
- constructor({ signalManager, retryDelay = 300 }: MessengerOptions) {
60
+ constructor({ signalManager, retryDelay = 1000 }: MessengerOptions) {
61
61
  this._signalManager = signalManager;
62
62
  this._retryDelay = retryDelay;
63
63
 
@@ -2,15 +2,14 @@
2
2
  // Copyright 2020 DXOS.org
3
3
  //
4
4
 
5
- // eslint-disable-next-line @typescript-eslint/no-var-requires
6
- import { expect } from 'earljs';
5
+ import { afterAll, beforeAll, describe, expect, test, onTestFinished } from 'vitest';
7
6
 
8
7
  import { asyncTimeout, waitForCondition } from '@dxos/async';
9
8
  import { type Any, type TaggedType } from '@dxos/codec-protobuf';
10
9
  import { PublicKey } from '@dxos/keys';
10
+ import { log } from '@dxos/log';
11
11
  import { type TYPES } from '@dxos/protocols/proto';
12
12
  import { runTestSignalServer, type SignalServerRunner } from '@dxos/signal';
13
- import { afterAll, beforeAll, describe, test, afterTest } from '@dxos/test';
14
13
  import { ComplexSet, range } from '@dxos/util';
15
14
 
16
15
  import { SignalClient } from './signal-client';
@@ -30,7 +29,9 @@ describe('SignalClient', () => {
30
29
  });
31
30
 
32
31
  afterAll(async () => {
32
+ log.info('begin stop');
33
33
  await broker1.stop();
34
+ log.info('end stop');
34
35
  });
35
36
 
36
37
  test('message between 2 clients', async () => {
@@ -79,7 +80,7 @@ describe('SignalClient', () => {
79
80
  const message = createMessage(peer2, peer1);
80
81
 
81
82
  {
82
- const receivedMessage = peer1.waitForNextMessage();
83
+ const receivedMessage = peer1.waitForNextMessage({ timeout: 1_000 });
83
84
  await peer2.client.sendMessage(message);
84
85
  expect(await receivedMessage).toEqual(message);
85
86
  }
@@ -90,7 +91,7 @@ describe('SignalClient', () => {
90
91
  {
91
92
  const receivedMessage = peer1.waitForNextMessage({ timeout: 200 });
92
93
  await peer2.client.sendMessage(message);
93
- await expect(receivedMessage).toBeRejected();
94
+ await expect(receivedMessage).rejects.toBeDefined();
94
95
  }
95
96
  });
96
97
 
@@ -138,7 +139,7 @@ describe('SignalClient', () => {
138
139
  });
139
140
 
140
141
  void client.open();
141
- afterTest(async () => {
142
+ onTestFinished(async () => {
142
143
  await client.close();
143
144
  });
144
145
  return {
@@ -146,10 +147,10 @@ describe('SignalClient', () => {
146
147
  identityKey,
147
148
  client,
148
149
  peerInfo: { peerKey: peerKey.toHex(), identityKey: identityKey.toHex() },
149
- waitForNextMessage: async () => {
150
+ waitForNextMessage: async ({ timeout = 5_000 } = {}) => {
150
151
  return asyncTimeout(
151
152
  client.onMessage.waitFor(() => true),
152
- 5000,
153
+ timeout,
153
154
  );
154
155
  },
155
156
  waitForPeer: (peerId: PublicKey) => waitForCondition({ condition: () => peers.has(peerId) }),
@@ -2,7 +2,7 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import { expect } from 'earljs';
5
+ import { afterAll, beforeAll, describe, expect, onTestFinished, test } from 'vitest';
6
6
 
7
7
  import { type Any } from '@dxos/codec-protobuf';
8
8
  import { PublicKey } from '@dxos/keys';
@@ -10,7 +10,6 @@ import { log } from '@dxos/log';
10
10
  import { schema } from '@dxos/protocols/proto';
11
11
  import { type Message as SignalMessage, type SwarmEvent } from '@dxos/protocols/proto/dxos/mesh/signal';
12
12
  import { runTestSignalServer, type SignalServerRunner } from '@dxos/signal';
13
- import { afterAll, afterTest, beforeAll, describe, test } from '@dxos/test';
14
13
 
15
14
  import { SignalRPCClient } from './signal-rpc-client';
16
15
 
@@ -28,11 +27,11 @@ describe('SignalRPCClient', () => {
28
27
  // TODO(burdon): Convert to TestBuilder pattern.
29
28
  const setupClient = async () => {
30
29
  const client = new SignalRPCClient({ url: broker.url() });
31
- afterTest(async () => await client.close());
30
+ onTestFinished(async () => await client.close());
32
31
  return client;
33
32
  };
34
33
 
35
- test('signal between 2 peers', async () => {
34
+ test('signal between 2 peers', { timeout: 2_000 }, async () => {
36
35
  const client1 = await setupClient();
37
36
  const client2 = await setupClient();
38
37
 
@@ -65,14 +64,12 @@ describe('SignalRPCClient', () => {
65
64
  payload,
66
65
  });
67
66
 
68
- expect((await received).author).toEqual(peerId2.asUint8Array());
69
- expect((await received).payload).toBeAnObjectWith(payload);
67
+ expect((await received).author).toEqual(peerId2.asBuffer());
68
+ expect((await received).payload).toEqual(expect.objectContaining(payload));
70
69
  void stream1.close();
71
- })
72
- .timeout(2_000)
73
- .retries(2);
70
+ });
74
71
 
75
- test('join', async () => {
72
+ test('join', { timeout: 2_000 }, async () => {
76
73
  const client1 = await setupClient();
77
74
  const client2 = await setupClient();
78
75
 
@@ -101,7 +98,5 @@ describe('SignalRPCClient', () => {
101
98
  expect((await promise).peerAvailable?.peer).toEqual(peerId2.asBuffer());
102
99
  void stream1.close();
103
100
  void stream2.close();
104
- })
105
- .timeout(2_000)
106
- .retries(2);
101
+ });
107
102
  });
@@ -1,9 +1,12 @@
1
1
  //
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
+
5
+ import { onTestFinished, describe, test } from 'vitest';
6
+
4
7
  import { EdgeClient } from '@dxos/edge-client';
5
8
  import { PublicKey } from '@dxos/keys';
6
- import { afterTest, describe, openAndClose, test } from '@dxos/test';
9
+ import { openAndClose } from '@dxos/test-utils';
7
10
 
8
11
  import { EdgeSignalManager } from './edge-signal-manager';
9
12
  import { createMessage, expectReceivedMessage, TestBuilder, type TestBuilderOptions } from '../testing';
@@ -19,7 +22,7 @@ describe.skip('EdgeSignalManager', () => {
19
22
 
20
23
  test('two peers discover each other', async () => {
21
24
  const builder = new TestBuilder({ signalManagerFactory: edgeSignalFactory });
22
- afterTest(() => builder.close());
25
+ onTestFinished(() => builder.close());
23
26
  const [peer1, peer2] = await builder.createPeers(2);
24
27
 
25
28
  const topic = PublicKey.random();
@@ -36,7 +39,7 @@ describe.skip('EdgeSignalManager', () => {
36
39
 
37
40
  test('join and leave swarm', async () => {
38
41
  const builder = new TestBuilder({ signalManagerFactory: edgeSignalFactory });
39
- afterTest(() => builder.close());
42
+ onTestFinished(() => builder.close());
40
43
  const [peer1, peer2] = await builder.createPeers(2);
41
44
 
42
45
  const topic = PublicKey.random();
@@ -54,7 +57,7 @@ describe.skip('EdgeSignalManager', () => {
54
57
 
55
58
  test('message between peers', async () => {
56
59
  const builder = new TestBuilder({ signalManagerFactory: edgeSignalFactory });
57
- afterTest(() => builder.close());
60
+ onTestFinished(() => builder.close());
58
61
  const [peer1, peer2] = await builder.createPeers(2);
59
62
  const message = createMessage(peer1.peerInfo, peer2.peerInfo);
60
63
 
@@ -2,8 +2,6 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { AnySchema } from '@bufbuild/protobuf/wkt';
6
-
7
5
  import { Event } from '@dxos/async';
8
6
  import { Resource } from '@dxos/context';
9
7
  import { type EdgeConnection, protocol } from '@dxos/edge-client';
@@ -11,6 +9,7 @@ import { invariant } from '@dxos/invariant';
11
9
  import { PublicKey } from '@dxos/keys';
12
10
  import { log } from '@dxos/log';
13
11
  import { EdgeService } from '@dxos/protocols';
12
+ import { bufWkt } from '@dxos/protocols/buf';
14
13
  import {
15
14
  SwarmRequestSchema,
16
15
  SwarmRequest_Action as SwarmRequestAction,
@@ -88,7 +87,7 @@ export class EdgeSignalManager extends Resource implements SignalManager {
88
87
  }
89
88
 
90
89
  await this._edgeConnection.send(
91
- protocol.createMessage(AnySchema, {
90
+ protocol.createMessage(bufWkt.AnySchema, {
92
91
  serviceId: EdgeService.SIGNAL_SERVICE_ID,
93
92
  source: message.author,
94
93
  target: [message.recipient],
@@ -126,7 +125,7 @@ export class EdgeSignalManager extends Resource implements SignalManager {
126
125
  return;
127
126
  }
128
127
  const oldPeers = this._swarmPeers.get(topic)!;
129
- const timestamp = new Date(Date.parse(message.timestamp));
128
+ const timestamp = message.timestamp ? new Date(Date.parse(message.timestamp)) : new Date();
130
129
  const newPeers = new ComplexSet<PeerInfo>(PeerInfoHash, payload.peers);
131
130
 
132
131
  // Emit new available peers in the swarm.
@@ -155,8 +154,8 @@ export class EdgeSignalManager extends Resource implements SignalManager {
155
154
  }
156
155
 
157
156
  private _processMessage(message: EdgeMessage) {
158
- invariant(protocol.getPayloadType(message) === AnySchema.typeName, 'Wrong payload type');
159
- const payload = protocol.getPayload(message, AnySchema);
157
+ invariant(protocol.getPayloadType(message) === bufWkt.AnySchema.typeName, 'Wrong payload type');
158
+ const payload = protocol.getPayload(message, bufWkt.AnySchema);
160
159
  invariant(message.source, 'source is missing');
161
160
  invariant(message.target, 'target is missing');
162
161
  invariant(message.target.length === 1, 'target should have exactly one item');
@@ -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 { afterAll, beforeAll, describe, test, openAndClose } from '@dxos/test';
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
  });
@@ -45,7 +45,7 @@ export class TestPeer extends Resource {
45
45
 
46
46
  protected override async _open() {
47
47
  this.signalManager = await this.testBuilder.createSignalManager(this.identityKey, this.peerId);
48
- this.messenger = new Messenger({ signalManager: this.signalManager });
48
+ this.messenger = new Messenger({ signalManager: this.signalManager, retryDelay: 300 });
49
49
 
50
50
  await this.signalManager.open();
51
51
  this.messenger.open();
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=messenger.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messenger.test.d.ts","sourceRoot":"","sources":["../../../src/messenger.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=signal-client.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signal-client.test.d.ts","sourceRoot":"","sources":["../../../../src/signal-client/signal-client.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=signal-rpc-client.test.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=edge-signal-manager.test.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=websocket-signal-manager.test.d.ts.map
@@ -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":""}