@webex/plugin-meetings 3.0.0-stream-classes.4 → 3.0.0-test.1
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/README.md +12 -0
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/common/errors/no-meeting-info.js +51 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/reclaim-host-role-errors.js +158 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/webex-errors.js +23 -3
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/request.js +5 -1
- package/dist/common/logs/request.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +69 -9
- package/dist/constants.js.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.js +93 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/index.js +16 -2
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/index.js +40 -11
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +15 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +42 -21
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/media/index.js +10 -6
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +13 -3
- package/dist/media/properties.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +135 -330
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +4 -0
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2187 -1074
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +37 -25
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +34 -19
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +71 -0
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +48 -23
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +25 -4
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +1 -1
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +17 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +142 -57
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/util.js +2 -6
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +9 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +11 -0
- package/dist/member/util.js.map +1 -1
- package/dist/members/index.js +17 -1
- package/dist/members/index.js.map +1 -1
- package/dist/members/types.js.map +1 -1
- package/dist/members/util.js +15 -4
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +15 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +1 -1
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +16 -2
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +222 -73
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +22 -0
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/reachability/clusterReachability.js +356 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.js +262 -432
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +1 -1
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reconnection-manager/index.js +113 -96
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/index.js +57 -25
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +5 -13
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +173 -81
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/index.js +68 -6
- package/dist/rtcMetrics/index.js.map +1 -1
- package/dist/statsAnalyzer/index.js +338 -289
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +296 -156
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/types/common/errors/webex-errors.d.ts +13 -1
- package/dist/types/common/logs/request.d.ts +2 -0
- package/dist/types/config.d.ts +1 -1
- package/dist/types/constants.d.ts +66 -13
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interceptors/index.d.ts +2 -0
- package/dist/types/interceptors/locusRetry.d.ts +27 -0
- package/dist/types/locus-info/index.d.ts +1 -1
- package/dist/types/locus-info/parser.d.ts +3 -2
- package/dist/types/mediaQualityMetrics/config.d.ts +99 -223
- package/dist/types/meeting/in-meeting-actions.d.ts +4 -0
- package/dist/types/meeting/index.d.ts +285 -34
- package/dist/types/meeting/locusMediaRequest.d.ts +1 -2
- package/dist/types/meeting/muteState.d.ts +2 -8
- package/dist/types/meeting/request.d.ts +4 -1
- package/dist/types/meeting/util.d.ts +25 -1
- package/dist/types/meeting-info/index.d.ts +7 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +1 -0
- package/dist/types/meetings/collection.d.ts +9 -0
- package/dist/types/meetings/index.d.ts +42 -14
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/members/types.d.ts +1 -0
- package/dist/types/members/util.d.ts +5 -0
- package/dist/types/metrics/constants.d.ts +15 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +2 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +2 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +25 -1
- package/dist/types/multistream/sendSlotManager.d.ts +9 -0
- package/dist/types/reachability/clusterReachability.d.ts +109 -0
- package/dist/types/reachability/index.d.ts +59 -112
- package/dist/types/reachability/request.d.ts +1 -1
- package/dist/types/reachability/util.d.ts +8 -0
- package/dist/types/reconnection-manager/index.d.ts +10 -0
- package/dist/types/roap/index.d.ts +2 -1
- package/dist/types/roap/request.d.ts +2 -1
- package/dist/types/roap/turnDiscovery.d.ts +21 -4
- package/dist/types/rtcMetrics/index.d.ts +15 -1
- package/dist/types/statsAnalyzer/index.d.ts +28 -11
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +28 -4
- package/dist/types/webinar/collection.d.ts +16 -0
- package/dist/types/webinar/index.d.ts +5 -0
- package/dist/webinar/collection.js +44 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +69 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +3 -2
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/reclaim-host-role-errors.ts +134 -0
- package/src/common/errors/webex-errors.ts +19 -2
- package/src/common/logs/request.ts +5 -1
- package/src/config.ts +1 -1
- package/src/constants.ts +71 -6
- package/src/index.ts +5 -0
- package/src/interceptors/index.ts +3 -0
- package/src/interceptors/locusRetry.ts +67 -0
- package/src/interpretation/index.ts +18 -1
- package/src/locus-info/index.ts +52 -16
- package/src/locus-info/mediaSharesUtils.ts +16 -0
- package/src/locus-info/parser.ts +47 -21
- package/src/media/index.ts +8 -6
- package/src/media/properties.ts +17 -2
- package/src/mediaQualityMetrics/config.ts +103 -238
- package/src/meeting/in-meeting-actions.ts +8 -0
- package/src/meeting/index.ts +1510 -529
- package/src/meeting/muteState.ts +34 -20
- package/src/meeting/request.ts +19 -1
- package/src/meeting/util.ts +97 -0
- package/src/meeting-info/index.ts +47 -20
- package/src/meeting-info/meeting-info-v2.ts +27 -5
- package/src/meeting-info/utilv2.ts +1 -1
- package/src/meetings/collection.ts +13 -0
- package/src/meetings/index.ts +112 -31
- package/src/meetings/util.ts +2 -8
- package/src/member/index.ts +9 -0
- package/src/member/util.ts +14 -0
- package/src/members/index.ts +29 -2
- package/src/members/types.ts +1 -0
- package/src/members/util.ts +15 -1
- package/src/metrics/constants.ts +14 -0
- package/src/multistream/mediaRequestManager.ts +4 -1
- package/src/multistream/remoteMediaGroup.ts +19 -0
- package/src/multistream/remoteMediaManager.ts +141 -18
- package/src/multistream/sendSlotManager.ts +29 -0
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +221 -382
- package/src/reachability/request.ts +1 -1
- package/src/reachability/util.ts +24 -0
- package/src/reconnection-manager/index.ts +87 -83
- package/src/roap/index.ts +60 -24
- package/src/roap/request.ts +3 -16
- package/src/roap/turnDiscovery.ts +112 -39
- package/src/rtcMetrics/index.ts +71 -5
- package/src/statsAnalyzer/index.ts +430 -427
- package/src/statsAnalyzer/mqaUtil.ts +317 -168
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +7 -7
- package/test/integration/spec/journey.js +86 -104
- package/test/integration/spec/space-meeting.js +9 -9
- package/test/unit/spec/interceptors/locusRetry.ts +131 -0
- package/test/unit/spec/interpretation/index.ts +36 -3
- package/test/unit/spec/locus-info/index.js +205 -12
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +10 -0
- package/test/unit/spec/locus-info/parser.js +54 -13
- package/test/unit/spec/media/index.ts +20 -4
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +4 -0
- package/test/unit/spec/meeting/index.js +4027 -1075
- package/test/unit/spec/meeting/muteState.js +219 -67
- package/test/unit/spec/meeting/request.js +63 -12
- package/test/unit/spec/meeting/utils.js +93 -0
- package/test/unit/spec/meeting-info/index.js +180 -61
- package/test/unit/spec/meeting-info/meetinginfov2.js +196 -53
- package/test/unit/spec/meetings/collection.js +12 -0
- package/test/unit/spec/meetings/index.js +619 -206
- package/test/unit/spec/meetings/utils.js +35 -12
- package/test/unit/spec/member/index.js +8 -7
- package/test/unit/spec/member/util.js +32 -0
- package/test/unit/spec/members/index.js +130 -17
- package/test/unit/spec/members/utils.js +26 -0
- package/test/unit/spec/multistream/mediaRequestManager.ts +20 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +80 -1
- package/test/unit/spec/multistream/remoteMediaManager.ts +210 -3
- package/test/unit/spec/multistream/sendSlotManager.ts +50 -18
- package/test/unit/spec/reachability/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +505 -135
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +74 -17
- package/test/unit/spec/roap/index.ts +181 -61
- package/test/unit/spec/roap/request.ts +27 -3
- package/test/unit/spec/roap/turnDiscovery.ts +362 -101
- package/test/unit/spec/rtcMetrics/index.ts +57 -3
- package/test/unit/spec/stats-analyzer/index.js +1225 -12
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/integrationTestUtils.js +4 -4
- package/test/utils/webex-test-users.js +12 -4
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import sinon from 'sinon';
|
|
6
6
|
import {assert} from '@webex/test-helper-chai';
|
|
7
7
|
import LocusDeltaParser from '@webex/plugin-meetings/src/locus-info/parser';
|
|
8
|
+
import Metrics from '@webex/plugin-meetings/src/metrics';
|
|
8
9
|
|
|
9
10
|
import basicSequenceComparisons from './lib/BasicSeqCmp.json';
|
|
10
11
|
import sequenceComparisons from './lib/SeqCmp';
|
|
@@ -50,9 +51,11 @@ describe('locus-info/parser', () => {
|
|
|
50
51
|
});
|
|
51
52
|
|
|
52
53
|
describe('delta sequence comparisons', () => {
|
|
53
|
-
const {DESYNC, USE_CURRENT, USE_INCOMING} = LocusDeltaParser.loci;
|
|
54
|
+
const {DESYNC, USE_CURRENT, USE_INCOMING, WAIT, LOCUS_URL_CHANGED} = LocusDeltaParser.loci;
|
|
54
55
|
const {extractComparisonState: extract} = LocusDeltaParser;
|
|
55
56
|
|
|
57
|
+
sinon.stub(Metrics, 'sendBehavioralMetric');
|
|
58
|
+
|
|
56
59
|
function translate(action) {
|
|
57
60
|
switch (action) {
|
|
58
61
|
case 'ACCEPT_NEW':
|
|
@@ -61,6 +64,10 @@ describe('locus-info/parser', () => {
|
|
|
61
64
|
return USE_CURRENT;
|
|
62
65
|
case 'DESYNC':
|
|
63
66
|
return DESYNC;
|
|
67
|
+
case 'WAIT':
|
|
68
|
+
return WAIT;
|
|
69
|
+
case 'LOCUS_URL_CHANGED':
|
|
70
|
+
return LOCUS_URL_CHANGED;
|
|
64
71
|
default:
|
|
65
72
|
throw new Error(`${action} not recognized`);
|
|
66
73
|
}
|
|
@@ -73,10 +80,12 @@ describe('locus-info/parser', () => {
|
|
|
73
80
|
|
|
74
81
|
const current = {
|
|
75
82
|
sequence: sequenceComparisons.sequences[currentKey],
|
|
83
|
+
url: sequenceComparisons.update_actions[key].currentUrl,
|
|
76
84
|
};
|
|
77
85
|
const incoming = {
|
|
78
86
|
sequence: sequenceComparisons.sequences[incomingKey],
|
|
79
87
|
baseSequence: sequenceComparisons.sequences[baseKey],
|
|
88
|
+
url: sequenceComparisons.update_actions[key].incomingUrl,
|
|
80
89
|
};
|
|
81
90
|
const comparison = LocusDeltaParser.compare(current, incoming);
|
|
82
91
|
const action = extract(comparison);
|
|
@@ -87,6 +96,8 @@ describe('locus-info/parser', () => {
|
|
|
87
96
|
assert.equal(action, translate(result));
|
|
88
97
|
});
|
|
89
98
|
});
|
|
99
|
+
|
|
100
|
+
Metrics.sendBehavioralMetric.restore();
|
|
90
101
|
});
|
|
91
102
|
});
|
|
92
103
|
|
|
@@ -106,7 +117,7 @@ describe('locus-info/parser', () => {
|
|
|
106
117
|
return burst;
|
|
107
118
|
})();
|
|
108
119
|
|
|
109
|
-
parser.onDeltaAction =
|
|
120
|
+
parser.onDeltaAction = sinon.stub();
|
|
110
121
|
parser.processDeltaEvent = function () {
|
|
111
122
|
const fakeLoci = this.queue.dequeue();
|
|
112
123
|
|
|
@@ -133,7 +144,11 @@ describe('locus-info/parser', () => {
|
|
|
133
144
|
});
|
|
134
145
|
|
|
135
146
|
describe('Processes delta events correctly', () => {
|
|
136
|
-
const
|
|
147
|
+
const CURRENT_LOCI = {sequence: {entries: [100]}, url: 'CURRENT LOCI', baseSequence: {
|
|
148
|
+
"entries": [100], "rangeStart": 100, "rangeEnd": 100}};
|
|
149
|
+
const NEW_LOCI = {sequence: {entries: [200]}, url: 'NEW LOCI', baseSequence: {
|
|
150
|
+
"entries": [200], "rangeStart": 200, "rangeEnd": 200}};
|
|
151
|
+
|
|
137
152
|
let sandbox = null;
|
|
138
153
|
let parser;
|
|
139
154
|
|
|
@@ -142,6 +157,7 @@ describe('locus-info/parser', () => {
|
|
|
142
157
|
parser = new LocusDeltaParser();
|
|
143
158
|
sandbox.stub(parser, 'isValidLocus').returns(true);
|
|
144
159
|
parser.queue.dequeue = sandbox.stub().returns(NEW_LOCI);
|
|
160
|
+
parser.onDeltaAction = sandbox.stub();
|
|
145
161
|
});
|
|
146
162
|
|
|
147
163
|
afterEach(() => {
|
|
@@ -153,7 +169,7 @@ describe('locus-info/parser', () => {
|
|
|
153
169
|
const {DESYNC} = LocusDeltaParser.loci;
|
|
154
170
|
|
|
155
171
|
parser.pause = sandbox.stub();
|
|
156
|
-
|
|
172
|
+
sandbox.stub(LocusDeltaParser, 'compare').returns(DESYNC);
|
|
157
173
|
|
|
158
174
|
parser.processDeltaEvent();
|
|
159
175
|
|
|
@@ -164,7 +180,7 @@ describe('locus-info/parser', () => {
|
|
|
164
180
|
const {USE_INCOMING} = LocusDeltaParser.loci;
|
|
165
181
|
|
|
166
182
|
parser.workingCopy = null;
|
|
167
|
-
|
|
183
|
+
sandbox.stub(LocusDeltaParser, 'compare').returns(USE_INCOMING);
|
|
168
184
|
|
|
169
185
|
parser.processDeltaEvent();
|
|
170
186
|
|
|
@@ -175,8 +191,7 @@ describe('locus-info/parser', () => {
|
|
|
175
191
|
const {USE_INCOMING} = LocusDeltaParser.loci;
|
|
176
192
|
const lociComparison = USE_INCOMING;
|
|
177
193
|
|
|
178
|
-
|
|
179
|
-
parser.onDeltaAction = sandbox.stub();
|
|
194
|
+
sandbox.stub(LocusDeltaParser, 'compare').returns(lociComparison);
|
|
180
195
|
|
|
181
196
|
parser.processDeltaEvent();
|
|
182
197
|
|
|
@@ -186,7 +201,7 @@ describe('locus-info/parser', () => {
|
|
|
186
201
|
it('should call nextEvent()', () => {
|
|
187
202
|
const {USE_INCOMING} = LocusDeltaParser.loci;
|
|
188
203
|
|
|
189
|
-
|
|
204
|
+
sandbox.stub(LocusDeltaParser, 'compare').returns(USE_INCOMING);
|
|
190
205
|
parser.nextEvent = sandbox.stub();
|
|
191
206
|
|
|
192
207
|
parser.processDeltaEvent();
|
|
@@ -197,7 +212,8 @@ describe('locus-info/parser', () => {
|
|
|
197
212
|
it('should not call compare() if locus is invalid', () => {
|
|
198
213
|
const {USE_INCOMING} = LocusDeltaParser.loci;
|
|
199
214
|
|
|
200
|
-
|
|
215
|
+
sandbox.stub(LocusDeltaParser, 'compare').returns(USE_INCOMING);
|
|
216
|
+
|
|
201
217
|
// restore the original method
|
|
202
218
|
parser.isValidLocus.restore();
|
|
203
219
|
parser.isValidLocus.bind(parser);
|
|
@@ -208,9 +224,8 @@ describe('locus-info/parser', () => {
|
|
|
208
224
|
});
|
|
209
225
|
|
|
210
226
|
it('processDeltaEvent() should take next item in queue', () => {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
227
|
+
parser.workingCopy = CURRENT_LOCI;
|
|
228
|
+
|
|
214
229
|
parser.processDeltaEvent();
|
|
215
230
|
|
|
216
231
|
assert.calledOnce(parser.queue.dequeue);
|
|
@@ -228,7 +243,7 @@ describe('locus-info/parser', () => {
|
|
|
228
243
|
assert.equal(comparisonResults, expectedResults);
|
|
229
244
|
});
|
|
230
245
|
|
|
231
|
-
it('
|
|
246
|
+
it('should be able to unpack comparison results', () => {
|
|
232
247
|
const {extractComparisonState: extract} = LocusDeltaParser;
|
|
233
248
|
|
|
234
249
|
const comparisonResults = 'value04:value03:value:02:value01';
|
|
@@ -236,6 +251,32 @@ describe('locus-info/parser', () => {
|
|
|
236
251
|
|
|
237
252
|
assert.equal(lastResult, 'value04');
|
|
238
253
|
});
|
|
254
|
+
|
|
255
|
+
it('replaces current loci when the locus URL changes and incoming sequence is later, even when baseSequence doesn\'t match', () => {
|
|
256
|
+
const {USE_INCOMING} = LocusDeltaParser.loci;
|
|
257
|
+
|
|
258
|
+
parser.queue.dequeue = sandbox.stub().returns(NEW_LOCI);
|
|
259
|
+
parser.onDeltaAction = sandbox.stub();
|
|
260
|
+
parser.workingCopy = CURRENT_LOCI;
|
|
261
|
+
parser.triggerSync = sandbox.stub();
|
|
262
|
+
|
|
263
|
+
parser.processDeltaEvent();
|
|
264
|
+
|
|
265
|
+
assert.equal(parser.workingCopy, NEW_LOCI);
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
it('does not replace current loci when the locus URL changes but incoming sequence is not later', () => {
|
|
269
|
+
const {USE_INCOMING} = LocusDeltaParser.loci;
|
|
270
|
+
const laterLoci = {...CURRENT_LOCI, sequence: {entries: [300]}};
|
|
271
|
+
|
|
272
|
+
parser.queue.dequeue = sandbox.stub().returns(NEW_LOCI);
|
|
273
|
+
parser.onDeltaAction = sandbox.stub();
|
|
274
|
+
parser.workingCopy = laterLoci;
|
|
275
|
+
|
|
276
|
+
parser.processDeltaEvent();
|
|
277
|
+
|
|
278
|
+
assert.equal(parser.workingCopy, laterLoci);
|
|
279
|
+
});
|
|
239
280
|
});
|
|
240
281
|
|
|
241
282
|
describe('Full Locus handling', () => {
|
|
@@ -16,16 +16,32 @@ describe('createMediaConnection', () => {
|
|
|
16
16
|
id: 'any fake track'
|
|
17
17
|
}
|
|
18
18
|
const fakeAudioStream = {
|
|
19
|
-
|
|
19
|
+
outputStream: {
|
|
20
|
+
getTracks: () => {
|
|
21
|
+
return [fakeTrack];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
20
24
|
};
|
|
21
25
|
const fakeVideoStream = {
|
|
22
|
-
|
|
26
|
+
outputStream: {
|
|
27
|
+
getTracks: () => {
|
|
28
|
+
return [fakeTrack];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
23
31
|
};
|
|
24
32
|
const fakeShareVideoStream = {
|
|
25
|
-
|
|
33
|
+
outputStream: {
|
|
34
|
+
getTracks: () => {
|
|
35
|
+
return [fakeTrack];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
26
38
|
};
|
|
27
39
|
const fakeShareAudioStream = {
|
|
28
|
-
|
|
40
|
+
outputStream: {
|
|
41
|
+
getTracks: () => {
|
|
42
|
+
return [fakeTrack];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
29
45
|
};
|
|
30
46
|
afterEach(() => {
|
|
31
47
|
sinon.restore();
|
|
@@ -4,7 +4,7 @@ import {ConnectionState, Event} from '@webex/internal-media-core';
|
|
|
4
4
|
import MediaProperties from '@webex/plugin-meetings/src/media/properties';
|
|
5
5
|
import MediaUtil from '@webex/plugin-meetings/src/media/util';
|
|
6
6
|
import testUtils from '../../../utils/testUtils';
|
|
7
|
-
import {
|
|
7
|
+
import {ICE_AND_DTLS_CONNECTION_TIMEOUT} from '@webex/plugin-meetings/src/constants';
|
|
8
8
|
import {Defer} from '@webex/common';
|
|
9
9
|
|
|
10
10
|
describe('MediaProperties', () => {
|
|
@@ -52,7 +52,7 @@ describe('MediaProperties', () => {
|
|
|
52
52
|
assert.equal(promiseResolved, false);
|
|
53
53
|
assert.equal(promiseRejected, false);
|
|
54
54
|
|
|
55
|
-
await clock.tickAsync(
|
|
55
|
+
await clock.tickAsync(ICE_AND_DTLS_CONNECTION_TIMEOUT);
|
|
56
56
|
await testUtils.flushPromises();
|
|
57
57
|
|
|
58
58
|
assert.equal(promiseResolved, false);
|
|
@@ -67,12 +67,14 @@ describe('plugin-meetings', () => {
|
|
|
67
67
|
canShareDesktop: null,
|
|
68
68
|
canShareContent: null,
|
|
69
69
|
canTransferFile: null,
|
|
70
|
+
canChat: null,
|
|
70
71
|
canDoVideo: null,
|
|
71
72
|
canAnnotate: null,
|
|
72
73
|
canUseVoip: null,
|
|
73
74
|
supportHQV: null,
|
|
74
75
|
supportHDV: null,
|
|
75
76
|
canShareWhiteBoard: null,
|
|
77
|
+
enforceVirtualBackground: null,
|
|
76
78
|
...expected,
|
|
77
79
|
};
|
|
78
80
|
|
|
@@ -145,12 +147,14 @@ describe('plugin-meetings', () => {
|
|
|
145
147
|
'canShareDesktop',
|
|
146
148
|
'canShareContent',
|
|
147
149
|
'canTransferFile',
|
|
150
|
+
'canChat',
|
|
148
151
|
'canDoVideo',
|
|
149
152
|
'canAnnotate',
|
|
150
153
|
'canUseVoip',
|
|
151
154
|
'supportHQV',
|
|
152
155
|
'supportHDV',
|
|
153
156
|
'canShareWhiteBoard',
|
|
157
|
+
'enforceVirtualBackground',
|
|
154
158
|
].forEach((key) => {
|
|
155
159
|
it(`get and set for ${key} work as expected`, () => {
|
|
156
160
|
const inMeetingActions = new InMeetingActions();
|