mockrtc 0.3.0 → 0.3.2
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/.github/workflows/ci.yml +9 -6
- package/dist/handling/handler-steps.d.ts +7 -0
- package/dist/handling/handler-steps.js +7 -0
- package/dist/handling/handler-steps.js.map +1 -1
- package/dist/webrtc/datachannel-stream.d.ts +1 -1
- package/dist/webrtc/mediatrack-stream.d.ts +1 -1
- package/dist/webrtc/mediatrack-stream.js +0 -2
- package/dist/webrtc/mediatrack-stream.js.map +1 -1
- package/dist/webrtc/mockrtc-connection.d.ts +1 -1
- package/dist/webrtc/rtc-connection.d.ts +9 -3
- package/dist/webrtc/rtc-connection.js +6 -3
- package/dist/webrtc/rtc-connection.js.map +1 -1
- package/package.json +7 -6
- package/src/handling/handler-steps.ts +14 -0
- package/src/webrtc/datachannel-stream.ts +1 -1
- package/src/webrtc/mediatrack-stream.ts +1 -3
- package/src/webrtc/mockrtc-connection.ts +1 -1
- package/src/webrtc/rtc-connection.ts +22 -10
- package/test/integration/echo-steps.spec.ts +6 -7
- package/test/integration/events.spec.ts +7 -2
- package/test/integration/matching.spec.ts +1 -1
- package/test/integration/proxy.spec.ts +6 -1
- package/test/integration/send-steps.spec.ts +32 -2
- package/test/integration/smoke-test.spec.ts +1 -1
package/.github/workflows/ci.yml
CHANGED
|
@@ -7,22 +7,25 @@ jobs:
|
|
|
7
7
|
|
|
8
8
|
strategy:
|
|
9
9
|
matrix:
|
|
10
|
-
node-version: [14.x, 16.x,
|
|
10
|
+
node-version: [14.x, 16.x, 18.x, 20.x, v20.8.0, '*']
|
|
11
11
|
|
|
12
12
|
steps:
|
|
13
|
-
- uses: actions/checkout@
|
|
13
|
+
- uses: actions/checkout@v3
|
|
14
14
|
|
|
15
|
-
- uses: actions/setup-node@
|
|
15
|
+
- uses: actions/setup-node@v3
|
|
16
16
|
with:
|
|
17
17
|
node-version: ${{ matrix.node-version }}
|
|
18
|
+
check-latest: true
|
|
19
|
+
cache: 'npm'
|
|
20
|
+
cache-dependency-path: 'package.json'
|
|
18
21
|
|
|
19
|
-
- run: npm install
|
|
22
|
+
- run: npm install
|
|
20
23
|
- run: npm run build
|
|
21
24
|
- run: npm test
|
|
22
25
|
|
|
23
26
|
- name: Deploy docs
|
|
24
|
-
if: github.ref == 'refs/heads/main' && matrix.node-version == '
|
|
25
|
-
uses: JamesIves/github-pages-deploy-action@v4.
|
|
27
|
+
if: github.ref == 'refs/heads/main' && matrix.node-version == 'v20.8.0'
|
|
28
|
+
uses: JamesIves/github-pages-deploy-action@v4.5.0
|
|
26
29
|
with:
|
|
27
30
|
single-commit: true
|
|
28
31
|
branch: gh-pages
|
|
@@ -28,6 +28,13 @@ export declare class CreateChannelStep extends CreateChannelStepDefinition {
|
|
|
28
28
|
export declare class SendStep extends SendStepDefinition {
|
|
29
29
|
private matchesChannel;
|
|
30
30
|
handle({ channels }: MockRTCConnection): Promise<void>;
|
|
31
|
+
static deserialize(data: {
|
|
32
|
+
channelLabel: string | undefined;
|
|
33
|
+
message: string | {
|
|
34
|
+
type: 'Buffer';
|
|
35
|
+
data: number[];
|
|
36
|
+
};
|
|
37
|
+
}): SendStep;
|
|
31
38
|
}
|
|
32
39
|
export declare class CloseStep extends CloseStepDefinition {
|
|
33
40
|
handle(connection: MockRTCConnection): Promise<void>;
|
|
@@ -135,6 +135,13 @@ class SendStep extends handler_step_definitions_1.SendStepDefinition {
|
|
|
135
135
|
}));
|
|
136
136
|
});
|
|
137
137
|
}
|
|
138
|
+
static deserialize(data) {
|
|
139
|
+
return new SendStep(data.channelLabel, typeof data.message === 'string'
|
|
140
|
+
? data.message
|
|
141
|
+
// Buffers are serialized very roughly, so here we
|
|
142
|
+
// turn them back into real Buffer instances:
|
|
143
|
+
: Buffer.from(data.message.data));
|
|
144
|
+
}
|
|
138
145
|
}
|
|
139
146
|
exports.SendStep = SendStep;
|
|
140
147
|
class CloseStep extends handler_step_definitions_1.CloseStepDefinition {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler-steps.js","sourceRoot":"","sources":["../../src/handling/handler-steps.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"handler-steps.js","sourceRoot":"","sources":["../../src/handling/handler-steps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import * as stream from 'stream';
|
|
3
|
-
import * as NodeDataChannel from 'node-datachannel';
|
|
3
|
+
import type * as NodeDataChannel from 'node-datachannel';
|
|
4
4
|
/**
|
|
5
5
|
* Turns a node-datachannel DataChannel into a real Node.js stream, complete with
|
|
6
6
|
* buffering, backpressure (up to a point - if the buffer fills up, messages are dropped),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import * as stream from 'stream';
|
|
3
|
-
import * as NodeDataChannel from 'node-datachannel';
|
|
3
|
+
import type * as NodeDataChannel from 'node-datachannel';
|
|
4
4
|
/**
|
|
5
5
|
* Turns a node-datachannel media track into a real Node.js stream, complete with
|
|
6
6
|
* buffering, backpressure (up to a point - if the buffer fills up, messages are dropped),
|
|
@@ -6,8 +6,6 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.MediaTrackStream = void 0;
|
|
8
8
|
const stream = require("stream");
|
|
9
|
-
const NodeDataChannel = require("node-datachannel");
|
|
10
|
-
const { Direction } = NodeDataChannel;
|
|
11
9
|
/**
|
|
12
10
|
* Turns a node-datachannel media track into a real Node.js stream, complete with
|
|
13
11
|
* buffering, backpressure (up to a point - if the buffer fills up, messages are dropped),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediatrack-stream.js","sourceRoot":"","sources":["../../src/webrtc/mediatrack-stream.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,iCAAiC;
|
|
1
|
+
{"version":3,"file":"mediatrack-stream.js","sourceRoot":"","sources":["../../src/webrtc/mediatrack-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as NodeDataChannel from 'node-datachannel';
|
|
1
|
+
import type * as NodeDataChannel from 'node-datachannel';
|
|
2
2
|
import { DataChannelStream } from './datachannel-stream';
|
|
3
3
|
import { RTCConnection } from './rtc-connection';
|
|
4
4
|
export declare class MockRTCConnection extends RTCConnection {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
3
|
import * as SDP from 'sdp-transform';
|
|
4
|
-
import
|
|
4
|
+
import { Track as NDCTrack, DataChannel as NDCDataChannel } from 'node-datachannel';
|
|
5
5
|
import type { MockRTCSessionDescription } from '../mockrtc';
|
|
6
6
|
import { ConnectionMetadata, MockRTCSession } from '../mockrtc-peer';
|
|
7
7
|
import { DataChannelStream } from './datachannel-stream';
|
|
@@ -31,10 +31,10 @@ export declare class RTCConnection extends EventEmitter {
|
|
|
31
31
|
get remoteMediaTracks(): ReadonlyArray<MediaTrackStream>;
|
|
32
32
|
constructor();
|
|
33
33
|
createDataChannel(label: string): DataChannelStream;
|
|
34
|
-
protected trackNewChannel(channel:
|
|
34
|
+
protected trackNewChannel(channel: NDCDataChannel, options: {
|
|
35
35
|
isLocal: boolean;
|
|
36
36
|
}): DataChannelStream;
|
|
37
|
-
protected trackNewMediaTrack(track:
|
|
37
|
+
protected trackNewMediaTrack(track: NDCTrack, options: {
|
|
38
38
|
isLocal: boolean;
|
|
39
39
|
}): MediaTrackStream;
|
|
40
40
|
setRemoteDescription(description: RTCSessionDescriptionInit): void;
|
|
@@ -52,12 +52,18 @@ export declare class RTCConnection extends EventEmitter {
|
|
|
52
52
|
protocol: string;
|
|
53
53
|
address: string;
|
|
54
54
|
port: number;
|
|
55
|
+
candidate: string;
|
|
56
|
+
priority: number;
|
|
57
|
+
mid: string;
|
|
55
58
|
};
|
|
56
59
|
remote: {
|
|
57
60
|
type: RTCIceCandidateType;
|
|
58
61
|
protocol: string;
|
|
59
62
|
address: string;
|
|
60
63
|
port: number;
|
|
64
|
+
candidate: string;
|
|
65
|
+
priority: number;
|
|
66
|
+
mid: string;
|
|
61
67
|
};
|
|
62
68
|
} | undefined;
|
|
63
69
|
getMirroredLocalOffer(sdpToMirror: string, options?: {
|
|
@@ -18,7 +18,10 @@ const _ = require("lodash");
|
|
|
18
18
|
const crypto_1 = require("crypto");
|
|
19
19
|
const events_1 = require("events");
|
|
20
20
|
const SDP = require("sdp-transform");
|
|
21
|
-
|
|
21
|
+
// Node-DataChannel is now an ES6 module, but we're not - work around
|
|
22
|
+
// that with a synchronous import wrapper:
|
|
23
|
+
const importSync = require('import-sync');
|
|
24
|
+
const NodeDataChannel = importSync('node-datachannel');
|
|
22
25
|
const datachannel_stream_1 = require("./datachannel-stream");
|
|
23
26
|
const mediatrack_stream_1 = require("./mediatrack-stream");
|
|
24
27
|
/**
|
|
@@ -32,7 +35,7 @@ class RTCConnection extends events_1.EventEmitter {
|
|
|
32
35
|
this.id = (0, crypto_1.randomUUID)();
|
|
33
36
|
// Set to null when the connection is closed, as otherwise calling any method (including checking
|
|
34
37
|
// the connection state) will segfault the process.
|
|
35
|
-
this.rawConn = new NodeDataChannel.PeerConnection("MockRTCConnection", { iceServers: [] });
|
|
38
|
+
this.rawConn = new NodeDataChannel.PeerConnection("MockRTCConnection", { iceServers: [], forceMediaTransport: true });
|
|
36
39
|
this._connectionMetadata = {};
|
|
37
40
|
this.trackedChannels = [];
|
|
38
41
|
this.trackedMediaTracks = [];
|
|
@@ -346,7 +349,7 @@ class RTCConnection extends events_1.EventEmitter {
|
|
|
346
349
|
this.localDescription = undefined;
|
|
347
350
|
if (rawConn.state() === 'closed')
|
|
348
351
|
return;
|
|
349
|
-
rawConn.
|
|
352
|
+
rawConn.destroy();
|
|
350
353
|
this.emit('connection-closed');
|
|
351
354
|
});
|
|
352
355
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtc-connection.js","sourceRoot":"","sources":["../../src/webrtc/rtc-connection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rtc-connection.js","sourceRoot":"","sources":["../../src/webrtc/rtc-connection.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mockrtc",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Powerful friendly WebRTC mock peer & proxy",
|
|
5
5
|
"main": "dist/main.js",
|
|
6
6
|
"types": "dist/main.d.ts",
|
|
@@ -53,21 +53,21 @@
|
|
|
53
53
|
"@types/dom-mediacapture-transform": "0.1.2",
|
|
54
54
|
"@types/dom-webcodecs": "0.1.3",
|
|
55
55
|
"@types/mocha": "9.1.1",
|
|
56
|
-
"@types/node": "16.
|
|
56
|
+
"@types/node": "16.18.38",
|
|
57
57
|
"buffer": "^6.0.3",
|
|
58
58
|
"chai": "^4.3.6",
|
|
59
|
-
"esbuild": "^0.
|
|
59
|
+
"esbuild": "^0.15.0",
|
|
60
60
|
"karma": "^6.3.16",
|
|
61
61
|
"karma-chai": "^0.1.0",
|
|
62
62
|
"karma-chrome-launcher": "^3.1.0",
|
|
63
|
-
"karma-esbuild": "
|
|
63
|
+
"karma-esbuild": "~2.2.0",
|
|
64
64
|
"karma-mocha": "^2.0.1",
|
|
65
65
|
"karma-mocha-reporter": "^2.2.5",
|
|
66
66
|
"mocha": "^9.2.0",
|
|
67
67
|
"node-dev": "^7.1.0",
|
|
68
68
|
"rollup-plugin-node-polyfills": "^0.2.1",
|
|
69
69
|
"ts-node": "^10.5.0",
|
|
70
|
-
"typedoc": "0.
|
|
70
|
+
"typedoc": "^0.24.8",
|
|
71
71
|
"typescript": "4.6.4",
|
|
72
72
|
"util": "^0.12.4"
|
|
73
73
|
},
|
|
@@ -78,9 +78,10 @@
|
|
|
78
78
|
"graphql": "^15.8.0",
|
|
79
79
|
"graphql-subscriptions": "^1.2.1",
|
|
80
80
|
"graphql-tag": "^2.12.6",
|
|
81
|
+
"import-sync": "^2.2.0",
|
|
81
82
|
"lodash": "^4.17.21",
|
|
82
83
|
"mockttp": "^3.2.1",
|
|
83
|
-
"node-datachannel": "^0.3
|
|
84
|
+
"node-datachannel": "^0.5.3",
|
|
84
85
|
"performance-now": "^2.1.0",
|
|
85
86
|
"sdp-transform": "^2.14.1"
|
|
86
87
|
},
|
|
@@ -161,6 +161,20 @@ export class SendStep extends SendStepDefinition {
|
|
|
161
161
|
);
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
+
static deserialize(data: {
|
|
165
|
+
channelLabel: string | undefined,
|
|
166
|
+
message: string | { type: 'Buffer', data: number[] }
|
|
167
|
+
}): SendStep {
|
|
168
|
+
return new SendStep(
|
|
169
|
+
data.channelLabel,
|
|
170
|
+
typeof data.message === 'string'
|
|
171
|
+
? data.message
|
|
172
|
+
// Buffers are serialized very roughly, so here we
|
|
173
|
+
// turn them back into real Buffer instances:
|
|
174
|
+
: Buffer.from(data.message.data)
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
|
|
164
178
|
}
|
|
165
179
|
|
|
166
180
|
export class CloseStep extends CloseStepDefinition {
|
|
@@ -4,9 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import * as stream from 'stream';
|
|
7
|
-
import * as NodeDataChannel from 'node-datachannel';
|
|
8
|
-
|
|
9
|
-
const { Direction } = NodeDataChannel;
|
|
7
|
+
import type * as NodeDataChannel from 'node-datachannel';
|
|
10
8
|
|
|
11
9
|
/**
|
|
12
10
|
* Turns a node-datachannel media track into a real Node.js stream, complete with
|
|
@@ -7,7 +7,19 @@ import * as _ from 'lodash';
|
|
|
7
7
|
import { randomUUID } from 'crypto';
|
|
8
8
|
import { EventEmitter } from 'events';
|
|
9
9
|
import * as SDP from 'sdp-transform';
|
|
10
|
-
|
|
10
|
+
|
|
11
|
+
import {
|
|
12
|
+
PeerConnection as NDCPeerConnection,
|
|
13
|
+
Track as NDCTrack,
|
|
14
|
+
DataChannel as NDCDataChannel,
|
|
15
|
+
Direction as NDCDirection
|
|
16
|
+
} from 'node-datachannel';
|
|
17
|
+
|
|
18
|
+
// Node-DataChannel is now an ES6 module, but we're not - work around
|
|
19
|
+
// that with a synchronous import wrapper:
|
|
20
|
+
const importSync = require('import-sync');
|
|
21
|
+
const NodeDataChannel = importSync('node-datachannel') as
|
|
22
|
+
typeof import('node-datachannel');
|
|
11
23
|
|
|
12
24
|
import type { MockRTCSessionDescription } from '../mockrtc';
|
|
13
25
|
import {
|
|
@@ -35,8 +47,8 @@ export class RTCConnection extends EventEmitter {
|
|
|
35
47
|
|
|
36
48
|
// Set to null when the connection is closed, as otherwise calling any method (including checking
|
|
37
49
|
// the connection state) will segfault the process.
|
|
38
|
-
private rawConn:
|
|
39
|
-
= new NodeDataChannel.PeerConnection("MockRTCConnection", { iceServers: [] });
|
|
50
|
+
private rawConn: NDCPeerConnection | null
|
|
51
|
+
= new NodeDataChannel.PeerConnection("MockRTCConnection", { iceServers: [], forceMediaTransport: true });
|
|
40
52
|
|
|
41
53
|
private remoteDescription: RTCSessionDescriptionInit & ParsedSDP | undefined;
|
|
42
54
|
private localDescription: MockRTCSessionDescription & ParsedSDP | undefined;
|
|
@@ -93,7 +105,7 @@ export class RTCConnection extends EventEmitter {
|
|
|
93
105
|
this.trackNewChannel(channel, { isLocal: false });
|
|
94
106
|
});
|
|
95
107
|
|
|
96
|
-
this.rawConn!.onTrack((track:
|
|
108
|
+
this.rawConn!.onTrack((track: NDCTrack) => {
|
|
97
109
|
if (!this.rawConn) return; // https://github.com/murat-dogan/node-datachannel/issues/103
|
|
98
110
|
|
|
99
111
|
this.trackNewMediaTrack(track, { isLocal: false });
|
|
@@ -122,7 +134,7 @@ export class RTCConnection extends EventEmitter {
|
|
|
122
134
|
return this.trackNewChannel(channel, { isLocal: true });
|
|
123
135
|
}
|
|
124
136
|
|
|
125
|
-
protected trackNewChannel(channel:
|
|
137
|
+
protected trackNewChannel(channel: NDCDataChannel, options: { isLocal: boolean }) {
|
|
126
138
|
const channelStream = new DataChannelStream(channel);
|
|
127
139
|
this.trackedChannels.push({ stream: channelStream, isLocal: options.isLocal });
|
|
128
140
|
|
|
@@ -147,7 +159,7 @@ export class RTCConnection extends EventEmitter {
|
|
|
147
159
|
return channelStream;
|
|
148
160
|
}
|
|
149
161
|
|
|
150
|
-
protected trackNewMediaTrack(track:
|
|
162
|
+
protected trackNewMediaTrack(track: NDCTrack, options: { isLocal: boolean }) {
|
|
151
163
|
const trackStream = new MediaTrackStream(track);
|
|
152
164
|
this.trackedMediaTracks.push({ stream: trackStream, isLocal: options.isLocal });
|
|
153
165
|
|
|
@@ -193,7 +205,7 @@ export class RTCConnection extends EventEmitter {
|
|
|
193
205
|
async buildLocalDescription(): Promise<MockRTCSessionDescription> {
|
|
194
206
|
if (!this.rawConn) throw new Error("Can't get local description after connection is closed");
|
|
195
207
|
|
|
196
|
-
let setupChannel:
|
|
208
|
+
let setupChannel: NDCDataChannel | undefined;
|
|
197
209
|
if (this.rawConn.gatheringState() === 'new') {
|
|
198
210
|
// We can't create an offer until we have something to negotiate, but we don't want to
|
|
199
211
|
// negotiate ourselves when we don't really know what's being negotiated here. To work
|
|
@@ -304,7 +316,7 @@ export class RTCConnection extends EventEmitter {
|
|
|
304
316
|
this.trackNewMediaTrack(track, { isLocal: true });
|
|
305
317
|
});
|
|
306
318
|
|
|
307
|
-
let setupChannel:
|
|
319
|
+
let setupChannel: NDCDataChannel | undefined;
|
|
308
320
|
const channelRequiredForDescription = this.rawConn.gatheringState() === 'new' &&
|
|
309
321
|
!mediaStreamsToMirror.length;
|
|
310
322
|
if (shouldMirrorDataStream || channelRequiredForDescription || options.addDataStream) {
|
|
@@ -430,13 +442,13 @@ export class RTCConnection extends EventEmitter {
|
|
|
430
442
|
this.localDescription = undefined;
|
|
431
443
|
|
|
432
444
|
if (rawConn.state() === 'closed') return;
|
|
433
|
-
rawConn.
|
|
445
|
+
rawConn.destroy();
|
|
434
446
|
this.emit('connection-closed');
|
|
435
447
|
}
|
|
436
448
|
|
|
437
449
|
}
|
|
438
450
|
|
|
439
|
-
function sdpDirectionToNDCDirection(direction: SDP.SharedAttributes['direction']):
|
|
451
|
+
function sdpDirectionToNDCDirection(direction: SDP.SharedAttributes['direction']): NDCDirection {
|
|
440
452
|
if (direction === 'inactive') return NodeDataChannel.Direction.Inactive;
|
|
441
453
|
else if (direction?.length === 8) {
|
|
442
454
|
return direction[0].toUpperCase() +
|
|
@@ -29,27 +29,26 @@ describe("Echo steps", function () {
|
|
|
29
29
|
const { answer } = await mockPeer.answerOffer(localOffer);
|
|
30
30
|
await localConnection.setRemoteDescription(answer);
|
|
31
31
|
|
|
32
|
-
let messages: Array<
|
|
32
|
+
let messages: Array<string> = [];
|
|
33
33
|
dataChannel1.addEventListener('message', (event) => messages.push("1: " + event.data));
|
|
34
34
|
|
|
35
35
|
await waitForChannelOpen(dataChannel1);
|
|
36
36
|
dataChannel1.send('Test message 1');
|
|
37
|
+
dataChannel1.send('Test message 2');
|
|
37
38
|
|
|
38
39
|
const dataChannel2 = localConnection.createDataChannel("dataChannel2");
|
|
39
40
|
dataChannel2.addEventListener('message', (event) => messages.push("2: " + event.data));
|
|
40
41
|
await waitForChannelOpen(dataChannel2);
|
|
41
|
-
await delay(10); // Delay to guarantee ordering
|
|
42
|
-
dataChannel2.send('Test message 2');
|
|
43
42
|
|
|
44
|
-
await delay(
|
|
45
|
-
|
|
43
|
+
await delay(50); // Delay to guarantee ordering
|
|
44
|
+
dataChannel2.send('Test message 3');
|
|
46
45
|
|
|
47
46
|
await delay(50); // Delay to guarantee delivery
|
|
48
47
|
|
|
49
48
|
expect(messages).to.deep.equal([
|
|
50
49
|
'1: Test message 1',
|
|
51
|
-
'
|
|
52
|
-
'
|
|
50
|
+
'1: Test message 2',
|
|
51
|
+
'2: Test message 3',
|
|
53
52
|
]);
|
|
54
53
|
});
|
|
55
54
|
|
|
@@ -356,7 +356,7 @@ describe("MockRTC event subscriptions", function () {
|
|
|
356
356
|
|
|
357
357
|
const mockPeer = await mockRTC.buildPeer()
|
|
358
358
|
.waitForChannel()
|
|
359
|
-
.
|
|
359
|
+
.thenEcho();
|
|
360
360
|
|
|
361
361
|
const localConnection = new RTCPeerConnection();
|
|
362
362
|
const dataChannel = localConnection.createDataChannel("test-channel");
|
|
@@ -366,7 +366,12 @@ describe("MockRTC event subscriptions", function () {
|
|
|
366
366
|
const { answer } = await mockPeer.answerOffer(localOffer);
|
|
367
367
|
await localConnection.setRemoteDescription(answer);
|
|
368
368
|
|
|
369
|
-
dataChannel.addEventListener('open', () =>
|
|
369
|
+
dataChannel.addEventListener('open', () => {
|
|
370
|
+
// Work around https://github.com/murat-dogan/node-datachannel/issues/211
|
|
371
|
+
setTimeout(() => {
|
|
372
|
+
dataChannel.close();
|
|
373
|
+
}, 10);
|
|
374
|
+
});
|
|
370
375
|
|
|
371
376
|
const channelEvent = await eventPromise;
|
|
372
377
|
expect(channelEvent.peerId).to.equal(mockPeer.peerId);
|
|
@@ -54,7 +54,7 @@ describe("Connection rule matching", () => {
|
|
|
54
54
|
dataChannel.send('local message 2');
|
|
55
55
|
dataChannel.send('local message 3');
|
|
56
56
|
|
|
57
|
-
await delay(
|
|
57
|
+
await delay(500); // Usually be much quicker locally, but can be slow in CI
|
|
58
58
|
|
|
59
59
|
// Traffic is passed through untouched, as expected:
|
|
60
60
|
expect(remotelyReceivedMessages).to.deep.equal([
|
|
@@ -11,7 +11,8 @@ import {
|
|
|
11
11
|
waitForChannelClose,
|
|
12
12
|
waitForState,
|
|
13
13
|
setupPerfectNegotiation,
|
|
14
|
-
getDeferred
|
|
14
|
+
getDeferred,
|
|
15
|
+
delay
|
|
15
16
|
} from '../test-setup';
|
|
16
17
|
|
|
17
18
|
describe("When proxying WebRTC traffic", () => {
|
|
@@ -154,6 +155,7 @@ describe("When proxying WebRTC traffic", () => {
|
|
|
154
155
|
dataChannel.send('local message 3');
|
|
155
156
|
|
|
156
157
|
await new Promise((resolve) => dataChannel.addEventListener('close', resolve));
|
|
158
|
+
await delay(200);
|
|
157
159
|
|
|
158
160
|
expect(locallyReceivedMessages).to.deep.equal([
|
|
159
161
|
'Injected message', // Injected by thenSend step
|
|
@@ -215,6 +217,7 @@ describe("When proxying WebRTC traffic", () => {
|
|
|
215
217
|
dataChannel.send('local message 3');
|
|
216
218
|
|
|
217
219
|
await new Promise((resolve) => dataChannel.addEventListener('close', resolve));
|
|
220
|
+
await delay(200);
|
|
218
221
|
|
|
219
222
|
expect(locallyReceivedMessages).to.deep.equal([
|
|
220
223
|
'Injected message', // Injected by thenSend step
|
|
@@ -284,6 +287,7 @@ describe("When proxying WebRTC traffic", () => {
|
|
|
284
287
|
dataChannel.send('local message 3');
|
|
285
288
|
|
|
286
289
|
await new Promise((resolve) => dataChannel.addEventListener('close', resolve));
|
|
290
|
+
await delay(200);
|
|
287
291
|
|
|
288
292
|
expect(locallyReceivedMessages).to.deep.equal([
|
|
289
293
|
'Injected message', // Injected by send step
|
|
@@ -343,6 +347,7 @@ describe("When proxying WebRTC traffic", () => {
|
|
|
343
347
|
dataChannel.send('local message 3');
|
|
344
348
|
|
|
345
349
|
await new Promise((resolve) => dataChannel.addEventListener('close', resolve));
|
|
350
|
+
await delay(200);
|
|
346
351
|
|
|
347
352
|
expect(locallyReceivedMessages).to.deep.equal([
|
|
348
353
|
'Injected message', // Injected by send step
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import {
|
|
7
7
|
MockRTC,
|
|
8
|
+
delay,
|
|
8
9
|
expect,
|
|
9
10
|
waitForChannelClose
|
|
10
11
|
} from '../test-setup';
|
|
@@ -32,13 +33,14 @@ describe("Send steps", function () {
|
|
|
32
33
|
await localConnection.setRemoteDescription(answer);
|
|
33
34
|
|
|
34
35
|
// Wait for a response:
|
|
35
|
-
let messages: Array<
|
|
36
|
+
let messages: Array<string> = [];
|
|
36
37
|
dataChannel1.addEventListener('message', (event) => messages.push("1: " + event.data));
|
|
37
38
|
dataChannel2.addEventListener('message', (event) => messages.push("2: " + event.data));
|
|
38
39
|
|
|
39
40
|
await waitForChannelClose(dataChannel1);
|
|
41
|
+
await delay(1);
|
|
40
42
|
|
|
41
|
-
expect(messages).to.deep.equal([
|
|
43
|
+
expect(messages.sort()).to.deep.equal([
|
|
42
44
|
'1: Hello and goodbye',
|
|
43
45
|
'2: Hello and goodbye',
|
|
44
46
|
]);
|
|
@@ -66,6 +68,7 @@ describe("Send steps", function () {
|
|
|
66
68
|
dataChannel2.addEventListener('message', (event) => messages.push("2: " + event.data));
|
|
67
69
|
|
|
68
70
|
await waitForChannelClose(dataChannel1);
|
|
71
|
+
await delay(1);
|
|
69
72
|
|
|
70
73
|
// We only see a 2nd channel message:
|
|
71
74
|
expect(messages).to.deep.equal([
|
|
@@ -98,4 +101,31 @@ describe("Send steps", function () {
|
|
|
98
101
|
expect(message).to.equal('Hello from new channel');
|
|
99
102
|
});
|
|
100
103
|
|
|
104
|
+
it("should be able to send a Buffer-based message", async () => {
|
|
105
|
+
const mockPeer = await mockRTC.buildPeer()
|
|
106
|
+
.waitForChannel('dataChannel1')
|
|
107
|
+
.thenSend(Buffer.from('Hello from buffer'));
|
|
108
|
+
|
|
109
|
+
const localConnection = new RTCPeerConnection();
|
|
110
|
+
const dataChannel1 = localConnection.createDataChannel("dataChannel1");
|
|
111
|
+
|
|
112
|
+
const localOffer = await localConnection.createOffer();
|
|
113
|
+
await localConnection.setLocalDescription(localOffer);
|
|
114
|
+
const { answer } = await mockPeer.answerOffer(localOffer);
|
|
115
|
+
await localConnection.setRemoteDescription(answer);
|
|
116
|
+
|
|
117
|
+
// Wait for a response:
|
|
118
|
+
let messages: Array<Buffer> = [];
|
|
119
|
+
dataChannel1.addEventListener('message', (event) => {
|
|
120
|
+
messages.push(Buffer.from(event.data)); // ArrayBuffer -> node Buffer
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
await waitForChannelClose(dataChannel1);
|
|
124
|
+
await delay(1);
|
|
125
|
+
|
|
126
|
+
expect(messages.map(m => m.toString('utf8'))).to.deep.equal([
|
|
127
|
+
'Hello from buffer'
|
|
128
|
+
]);
|
|
129
|
+
});
|
|
130
|
+
|
|
101
131
|
});
|