@webex/plugin-meetings 3.8.0-next.7 → 3.8.0-next.71
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/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/common/errors/webex-errors.js +12 -2
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/config.js +4 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +17 -121
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +2 -0
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/types.js.map +1 -1
- package/dist/controls-options-manager/util.js +52 -0
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +28 -10
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +32 -12
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/selfUtils.js +432 -418
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +14 -16
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +94 -6
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/brbState.js +6 -0
- package/dist/meeting/brbState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +17 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +541 -302
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +0 -17
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.js +0 -2
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +30 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +13 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +359 -60
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +114 -1
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/util.js +14 -0
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +10 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +330 -353
- package/dist/member/util.js.map +1 -1
- package/dist/members/index.js +23 -0
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +21 -0
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +15 -0
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +9 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/reachability/clusterReachability.js +63 -27
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.js +112 -47
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/reachability.types.js +14 -0
- package/dist/reachability/reachability.types.js.map +1 -1
- package/dist/reachability/request.js +19 -3
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +2 -2
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/util.js +5 -5
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/turnDiscovery.js +45 -27
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/types.js +17 -0
- package/dist/roap/types.js.map +1 -0
- package/dist/types/common/errors/webex-errors.d.ts +7 -1
- package/dist/types/config.d.ts +2 -0
- package/dist/types/constants.d.ts +12 -85
- package/dist/types/controls-options-manager/enums.d.ts +3 -1
- package/dist/types/controls-options-manager/types.d.ts +7 -1
- package/dist/types/locus-info/index.d.ts +3 -3
- package/dist/types/locus-info/selfUtils.d.ts +216 -1
- package/dist/types/media/properties.d.ts +15 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +16 -0
- package/dist/types/meeting/index.d.ts +32 -1
- package/dist/types/meeting/muteState.d.ts +0 -1
- package/dist/types/meeting/request.d.ts +12 -1
- package/dist/types/meeting/request.type.d.ts +6 -0
- package/dist/types/meeting/util.d.ts +3 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +80 -0
- package/dist/types/meetings/index.d.ts +48 -0
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/member/util.d.ts +159 -1
- package/dist/types/members/index.d.ts +8 -0
- package/dist/types/members/request.d.ts +19 -0
- package/dist/types/members/util.d.ts +13 -0
- package/dist/types/metrics/constants.d.ts +9 -0
- package/dist/types/reachability/clusterReachability.d.ts +15 -7
- package/dist/types/reachability/index.d.ts +10 -1
- package/dist/types/reachability/reachability.types.d.ts +5 -0
- package/dist/types/roap/index.d.ts +3 -2
- package/dist/types/roap/turnDiscovery.d.ts +5 -17
- package/dist/types/roap/types.d.ts +16 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +24 -23
- package/src/common/errors/webex-errors.ts +8 -1
- package/src/config.ts +2 -0
- package/src/constants.ts +19 -90
- package/src/controls-options-manager/enums.ts +2 -0
- package/src/controls-options-manager/types.ts +11 -1
- package/src/controls-options-manager/util.ts +62 -0
- package/src/locus-info/controlsUtils.ts +44 -14
- package/src/locus-info/index.ts +38 -12
- package/src/locus-info/selfUtils.ts +496 -442
- package/src/media/index.ts +20 -21
- package/src/media/properties.ts +96 -0
- package/src/meeting/brbState.ts +7 -0
- package/src/meeting/in-meeting-actions.ts +32 -0
- package/src/meeting/index.ts +346 -93
- package/src/meeting/locusMediaRequest.ts +0 -18
- package/src/meeting/muteState.ts +0 -2
- package/src/meeting/request.ts +36 -1
- package/src/meeting/request.type.ts +7 -0
- package/src/meeting/util.ts +11 -2
- package/src/meeting-info/meeting-info-v2.ts +247 -6
- package/src/meetings/index.ts +128 -1
- package/src/meetings/util.ts +18 -0
- package/src/member/index.ts +13 -2
- package/src/member/util.ts +351 -348
- package/src/members/index.ts +25 -0
- package/src/members/request.ts +26 -0
- package/src/members/util.ts +16 -0
- package/src/metrics/constants.ts +9 -0
- package/src/reachability/clusterReachability.ts +73 -26
- package/src/reachability/index.ts +70 -1
- package/src/reachability/reachability.types.ts +6 -0
- package/src/reachability/request.ts +7 -0
- package/src/reconnection-manager/index.ts +2 -2
- package/src/recording-controller/util.ts +17 -13
- package/src/roap/index.ts +3 -7
- package/src/roap/turnDiscovery.ts +34 -39
- package/src/roap/types.ts +23 -0
- package/test/unit/spec/controls-options-manager/util.js +120 -0
- package/test/unit/spec/locus-info/controlsUtils.js +103 -9
- package/test/unit/spec/locus-info/index.js +141 -73
- package/test/unit/spec/locus-info/selfUtils.js +98 -24
- package/test/unit/spec/media/index.ts +98 -16
- package/test/unit/spec/media/properties.ts +130 -0
- package/test/unit/spec/meeting/brbState.ts +19 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +19 -4
- package/test/unit/spec/meeting/index.js +524 -35
- package/test/unit/spec/meeting/locusMediaRequest.ts +0 -30
- package/test/unit/spec/meeting/muteState.js +0 -2
- package/test/unit/spec/meeting/request.js +32 -1
- package/test/unit/spec/meeting/utils.js +119 -18
- package/test/unit/spec/meeting-info/meetinginfov2.js +443 -114
- package/test/unit/spec/meetings/index.js +133 -2
- package/test/unit/spec/member/index.js +7 -0
- package/test/unit/spec/member/util.js +24 -0
- package/test/unit/spec/members/index.js +103 -26
- package/test/unit/spec/members/request.js +45 -22
- package/test/unit/spec/members/utils.js +33 -0
- package/test/unit/spec/reachability/clusterReachability.ts +88 -56
- package/test/unit/spec/reachability/index.ts +101 -0
- package/test/unit/spec/reachability/request.js +47 -2
- package/test/unit/spec/reconnection-manager/index.js +4 -4
- package/test/unit/spec/roap/turnDiscovery.ts +110 -28
@@ -169,26 +169,6 @@ describe('LocusMediaRequest.send()', () => {
|
|
169
169
|
mockWebex.internal.newMetrics.submitClientEvent.resetHistory();
|
170
170
|
};
|
171
171
|
|
172
|
-
const checkMetrics = (expectedMetrics: boolean = true) => {
|
173
|
-
if (expectedMetrics) {
|
174
|
-
assert.calledWith(mockWebex.internal.newMetrics.submitClientEvent, {
|
175
|
-
name: 'client.locus.media.request',
|
176
|
-
options: {
|
177
|
-
meetingId: 'meetingId',
|
178
|
-
},
|
179
|
-
});
|
180
|
-
|
181
|
-
assert.calledWith(mockWebex.internal.newMetrics.submitClientEvent, {
|
182
|
-
name: 'client.locus.media.response',
|
183
|
-
options: {
|
184
|
-
meetingId: 'meetingId',
|
185
|
-
},
|
186
|
-
});
|
187
|
-
} else {
|
188
|
-
assert.notCalled(mockWebex.internal.newMetrics.submitClientEvent);
|
189
|
-
}
|
190
|
-
};
|
191
|
-
|
192
172
|
it('sends a roap message', async () => {
|
193
173
|
const result = await sendRoapMessage('OFFER');
|
194
174
|
|
@@ -201,8 +181,6 @@ describe('LocusMediaRequest.send()', () => {
|
|
201
181
|
upload: sinon.match.instanceOf(EventEmitter),
|
202
182
|
download: sinon.match.instanceOf(EventEmitter),
|
203
183
|
});
|
204
|
-
|
205
|
-
checkMetrics();
|
206
184
|
});
|
207
185
|
|
208
186
|
it('sends correct metric event when roap message fails', async () => {
|
@@ -232,8 +210,6 @@ describe('LocusMediaRequest.send()', () => {
|
|
232
210
|
upload: sinon.match.instanceOf(EventEmitter),
|
233
211
|
download: sinon.match.instanceOf(EventEmitter),
|
234
212
|
});
|
235
|
-
|
236
|
-
checkMetrics(false);
|
237
213
|
});
|
238
214
|
|
239
215
|
it('sends a local mute request with sequence', async () => {
|
@@ -282,8 +258,6 @@ describe('LocusMediaRequest.send()', () => {
|
|
282
258
|
upload: sinon.match.instanceOf(EventEmitter),
|
283
259
|
download: sinon.match.instanceOf(EventEmitter),
|
284
260
|
});
|
285
|
-
|
286
|
-
checkMetrics(false);
|
287
261
|
});
|
288
262
|
|
289
263
|
it('sends a local mute request with the last audio/video mute values', async () => {
|
@@ -303,8 +277,6 @@ describe('LocusMediaRequest.send()', () => {
|
|
303
277
|
upload: sinon.match.instanceOf(EventEmitter),
|
304
278
|
download: sinon.match.instanceOf(EventEmitter),
|
305
279
|
});
|
306
|
-
|
307
|
-
checkMetrics(false);
|
308
280
|
});
|
309
281
|
|
310
282
|
it('sends only roap when roap and local mute are requested', async () => {
|
@@ -324,8 +296,6 @@ describe('LocusMediaRequest.send()', () => {
|
|
324
296
|
upload: sinon.match.instanceOf(EventEmitter),
|
325
297
|
download: sinon.match.instanceOf(EventEmitter),
|
326
298
|
});
|
327
|
-
|
328
|
-
checkMetrics();
|
329
299
|
});
|
330
300
|
|
331
301
|
describe('queueing', () => {
|
@@ -2,7 +2,6 @@ import sinon from 'sinon';
|
|
2
2
|
import {assert} from '@webex/test-helper-chai';
|
3
3
|
import MeetingUtil from '@webex/plugin-meetings/src/meeting/util';
|
4
4
|
import {createMuteState, MuteState} from '@webex/plugin-meetings/src/meeting/muteState';
|
5
|
-
import PermissionError from '@webex/plugin-meetings/src/common/errors/permission';
|
6
5
|
import {AUDIO, VIDEO} from '@webex/plugin-meetings/src/constants';
|
7
6
|
|
8
7
|
import testUtils from '../../../utils/testUtils';
|
@@ -39,7 +38,6 @@ describe('plugin-meetings', () => {
|
|
39
38
|
unmuteAllowed: true,
|
40
39
|
remoteVideoMuted: false,
|
41
40
|
unmuteVideoAllowed: true,
|
42
|
-
|
43
41
|
locusInfo: {
|
44
42
|
handleLocusDelta: sinon.stub(),
|
45
43
|
},
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import 'jsdom-global/register';
|
2
|
+
import {v4 as uuidv4} from 'uuid';
|
2
3
|
import sinon from 'sinon';
|
3
4
|
import {assert} from '@webex/test-helper-chai';
|
4
5
|
import MockWebex from '@webex/test-helper-mock-webex';
|
@@ -205,7 +206,7 @@ describe('plugin-meetings', () => {
|
|
205
206
|
roapMessage,
|
206
207
|
reachability,
|
207
208
|
permissionToken,
|
208
|
-
clientMediaPreferences
|
209
|
+
clientMediaPreferences,
|
209
210
|
});
|
210
211
|
const requestParams = meetingsRequest.request.getCall(0).args[0];
|
211
212
|
|
@@ -630,6 +631,36 @@ describe('plugin-meetings', () => {
|
|
630
631
|
});
|
631
632
|
});
|
632
633
|
|
634
|
+
describe('#setPostMeetingDataConsent', () => {
|
635
|
+
[true, false].forEach((consent) => {
|
636
|
+
it(`sends request to set post meeting data consent with ${consent}`, async () => {
|
637
|
+
const locusUrl = `https://locus-test.wbx2.com/locus/api/v1/loci/${consent}`;
|
638
|
+
const selfId = uuidv4();
|
639
|
+
const deviceUrl = `https://wdm-test.wbx2.com/wdm/api/v1/devices/${consent}`;
|
640
|
+
|
641
|
+
const consentPromise = meetingsRequest.setPostMeetingDataConsent({
|
642
|
+
postMeetingDataConsent: consent,
|
643
|
+
locusUrl,
|
644
|
+
selfId,
|
645
|
+
deviceUrl,
|
646
|
+
});
|
647
|
+
assert.exists(consentPromise.then);
|
648
|
+
await consentPromise;
|
649
|
+
|
650
|
+
checkRequest({
|
651
|
+
method: 'PATCH',
|
652
|
+
uri: `${locusUrl}/participant/${selfId}/controls`,
|
653
|
+
body: {
|
654
|
+
consent: {
|
655
|
+
postMeetingDataConsent: consent,
|
656
|
+
deviceUrl,
|
657
|
+
},
|
658
|
+
},
|
659
|
+
});
|
660
|
+
});
|
661
|
+
});
|
662
|
+
});
|
663
|
+
|
633
664
|
describe('#prepareLeaveMeetingRequestOptions', () => {
|
634
665
|
it('returns expected result', async () => {
|
635
666
|
const result = meetingsRequest.prepareLeaveMeetingRequestOptions({
|
@@ -66,7 +66,7 @@ describe('plugin-meetings', () => {
|
|
66
66
|
|
67
67
|
describe('#cleanup', () => {
|
68
68
|
it('do clean up on meeting object with LLM enabled', async () => {
|
69
|
-
meeting.config = {enableAutomaticLLM
|
69
|
+
meeting.config = {enableAutomaticLLM: true};
|
70
70
|
await MeetingUtil.cleanUp(meeting);
|
71
71
|
assert.calledOnce(meeting.cleanupLocalStreams);
|
72
72
|
assert.calledOnce(meeting.closeRemoteStreams);
|
@@ -84,7 +84,7 @@ describe('plugin-meetings', () => {
|
|
84
84
|
});
|
85
85
|
|
86
86
|
it('do clean up on meeting object with LLM disabled', async () => {
|
87
|
-
meeting.config = {enableAutomaticLLM
|
87
|
+
meeting.config = {enableAutomaticLLM: false};
|
88
88
|
await MeetingUtil.cleanUp(meeting);
|
89
89
|
assert.calledOnce(meeting.cleanupLocalStreams);
|
90
90
|
assert.calledOnce(meeting.closeRemoteStreams);
|
@@ -392,8 +392,7 @@ describe('plugin-meetings', () => {
|
|
392
392
|
meetingJoinUrl: 'meetingJoinUrl',
|
393
393
|
locusUrl: 'locusUrl',
|
394
394
|
meetingRequest: {
|
395
|
-
joinMeeting: sinon.stub().returns(
|
396
|
-
Promise.resolve(joinMeetingResponse)),
|
395
|
+
joinMeeting: sinon.stub().returns(Promise.resolve(joinMeetingResponse)),
|
397
396
|
},
|
398
397
|
getWebexObject: sinon.stub().returns(webex),
|
399
398
|
setLocus: sinon.stub(),
|
@@ -410,23 +409,29 @@ describe('plugin-meetings', () => {
|
|
410
409
|
id: 'fake client media preferences',
|
411
410
|
};
|
412
411
|
|
413
|
-
webex.meetings.reachability.getReachabilityReportToAttachToRoap.resolves(
|
414
|
-
|
412
|
+
webex.meetings.reachability.getReachabilityReportToAttachToRoap.resolves(
|
413
|
+
FAKE_REACHABILITY_REPORT
|
414
|
+
);
|
415
|
+
webex.meetings.reachability.getClientMediaPreferences.resolves(
|
416
|
+
FAKE_CLIENT_MEDIA_PREFERENCES
|
417
|
+
);
|
415
418
|
|
416
|
-
sinon
|
417
|
-
|
418
|
-
.get(() => true);
|
419
|
-
sinon
|
420
|
-
.stub(webex.internal.device.ipNetworkDetector, 'supportsIpV6')
|
421
|
-
.get(() => true);
|
419
|
+
sinon.stub(webex.internal.device.ipNetworkDetector, 'supportsIpV4').get(() => true);
|
420
|
+
sinon.stub(webex.internal.device.ipNetworkDetector, 'supportsIpV6').get(() => true);
|
422
421
|
|
423
422
|
await MeetingUtil.joinMeeting(meeting, {
|
424
423
|
reachability: 'reachability',
|
425
424
|
roapMessage: 'roapMessage',
|
426
425
|
});
|
427
426
|
|
428
|
-
assert.calledOnceWithExactly(
|
429
|
-
|
427
|
+
assert.calledOnceWithExactly(
|
428
|
+
webex.meetings.reachability.getReachabilityReportToAttachToRoap
|
429
|
+
);
|
430
|
+
assert.calledOnceWithExactly(
|
431
|
+
webex.meetings.reachability.getClientMediaPreferences,
|
432
|
+
meeting.isMultistream,
|
433
|
+
IP_VERSION.ipv4_and_ipv6
|
434
|
+
);
|
430
435
|
|
431
436
|
assert.calledOnce(meeting.meetingRequest.joinMeeting);
|
432
437
|
const parameter = meeting.meetingRequest.joinMeeting.getCall(0).args[0];
|
@@ -436,9 +441,9 @@ describe('plugin-meetings', () => {
|
|
436
441
|
assert.equal(parameter.clientMediaPreferences, FAKE_CLIENT_MEDIA_PREFERENCES);
|
437
442
|
assert.equal(parameter.roapMessage, 'roapMessage');
|
438
443
|
|
439
|
-
assert.calledOnce(meeting.setLocus)
|
444
|
+
assert.calledOnce(meeting.setLocus);
|
440
445
|
const setLocusParameter = meeting.setLocus.getCall(0).args[0];
|
441
|
-
assert.deepEqual(setLocusParameter, MeetingUtil.parseLocusJoin(joinMeetingResponse))
|
446
|
+
assert.deepEqual(setLocusParameter, MeetingUtil.parseLocusJoin(joinMeetingResponse));
|
442
447
|
|
443
448
|
assert.calledWith(webex.internal.newMetrics.submitClientEvent, {
|
444
449
|
name: 'client.locus.join.request',
|
@@ -460,6 +465,49 @@ describe('plugin-meetings', () => {
|
|
460
465
|
});
|
461
466
|
});
|
462
467
|
|
468
|
+
it('#Should call `meetingRequest.joinMeeting and handle a date header in the response : isoLocalClientMeetingJoinedTime', async () => {
|
469
|
+
meeting.isMultistream = true;
|
470
|
+
|
471
|
+
const FAKE_REACHABILITY_REPORT = {
|
472
|
+
id: 'fake reachability report',
|
473
|
+
};
|
474
|
+
const FAKE_CLIENT_MEDIA_PREFERENCES = {
|
475
|
+
id: 'fake client media preferences',
|
476
|
+
};
|
477
|
+
|
478
|
+
webex.meetings.reachability.getReachabilityReportToAttachToRoap.resolves(
|
479
|
+
FAKE_REACHABILITY_REPORT
|
480
|
+
);
|
481
|
+
webex.meetings.reachability.getClientMediaPreferences.resolves(
|
482
|
+
FAKE_CLIENT_MEDIA_PREFERENCES
|
483
|
+
);
|
484
|
+
|
485
|
+
sinon.stub(webex.internal.device.ipNetworkDetector, 'supportsIpV4').get(() => true);
|
486
|
+
sinon.stub(webex.internal.device.ipNetworkDetector, 'supportsIpV6').get(() => true);
|
487
|
+
|
488
|
+
meeting.meetingRequest.joinMeeting.resolves({
|
489
|
+
headers: {
|
490
|
+
date: 'test',
|
491
|
+
},
|
492
|
+
body: {
|
493
|
+
mediaConnections: [{mediaId: 'test'}],
|
494
|
+
locus: {
|
495
|
+
url: 'test',
|
496
|
+
self: {
|
497
|
+
id: 'test',
|
498
|
+
},
|
499
|
+
},
|
500
|
+
},
|
501
|
+
});
|
502
|
+
|
503
|
+
await MeetingUtil.joinMeeting(meeting, {
|
504
|
+
reachability: 'reachability',
|
505
|
+
roapMessage: 'roapMessage',
|
506
|
+
});
|
507
|
+
|
508
|
+
assert.equal(meeting.isoLocalClientMeetingJoinTime, 'test');
|
509
|
+
});
|
510
|
+
|
463
511
|
it('should handle failed reachability report retrieval', async () => {
|
464
512
|
webex.meetings.reachability.getReachabilityReportToAttachToRoap.rejects(
|
465
513
|
new Error('fake error')
|
@@ -516,6 +564,17 @@ describe('plugin-meetings', () => {
|
|
516
564
|
assert.equal(parameter.liveAnnotationSupported, true);
|
517
565
|
});
|
518
566
|
|
567
|
+
it('#Should call meetingRequest.joinMeeting with alias passed through', async () => {
|
568
|
+
await MeetingUtil.joinMeeting(meeting, {
|
569
|
+
alias: 'alias name',
|
570
|
+
});
|
571
|
+
|
572
|
+
assert.calledOnce(meeting.meetingRequest.joinMeeting);
|
573
|
+
const parameter = meeting.meetingRequest.joinMeeting.getCall(0).args[0];
|
574
|
+
|
575
|
+
assert.equal(parameter.alias, 'alias name');
|
576
|
+
});
|
577
|
+
|
519
578
|
it('#Should call meetingRequest.joinMeeting with locale=en_UK, deviceCapabilities=["TEST"] when they are passed in as those values', async () => {
|
520
579
|
await MeetingUtil.joinMeeting(meeting, {
|
521
580
|
locale: 'en_UK',
|
@@ -685,6 +744,18 @@ describe('plugin-meetings', () => {
|
|
685
744
|
});
|
686
745
|
});
|
687
746
|
|
747
|
+
describe('requiresPostMeetingDataConsentPrompt', () => {
|
748
|
+
it('works as expected', () => {
|
749
|
+
assert.deepEqual(
|
750
|
+
MeetingUtil.requiresPostMeetingDataConsentPrompt([
|
751
|
+
'SHOW_POST_MEETING_DATA_CONSENT_PROMPT',
|
752
|
+
]),
|
753
|
+
true
|
754
|
+
);
|
755
|
+
assert.deepEqual(MeetingUtil.requiresPostMeetingDataConsentPrompt([]), false);
|
756
|
+
});
|
757
|
+
});
|
758
|
+
|
688
759
|
describe('canUserRenameOthers', () => {
|
689
760
|
it('works as expected', () => {
|
690
761
|
assert.deepEqual(MeetingUtil.canUserRenameOthers(['CAN_RENAME_OTHERS']), true);
|
@@ -694,8 +765,38 @@ describe('plugin-meetings', () => {
|
|
694
765
|
|
695
766
|
describe('canShareWhiteBoard', () => {
|
696
767
|
it('works as expected', () => {
|
697
|
-
assert.deepEqual(
|
698
|
-
|
768
|
+
assert.deepEqual(
|
769
|
+
MeetingUtil.canShareWhiteBoard(['SHARE_WHITEBOARD'], {
|
770
|
+
[SELF_POLICY.SUPPORT_WHITEBOARD]: true,
|
771
|
+
}),
|
772
|
+
true
|
773
|
+
);
|
774
|
+
assert.deepEqual(
|
775
|
+
MeetingUtil.canShareWhiteBoard([], {
|
776
|
+
[SELF_POLICY.SUPPORT_WHITEBOARD]: true,
|
777
|
+
}),
|
778
|
+
false
|
779
|
+
);
|
780
|
+
assert.deepEqual(
|
781
|
+
MeetingUtil.canShareWhiteBoard(['SHARE_WHITEBOARD'], {
|
782
|
+
[SELF_POLICY.SUPPORT_WHITEBOARD]: false,
|
783
|
+
}),
|
784
|
+
false
|
785
|
+
);
|
786
|
+
assert.deepEqual(
|
787
|
+
MeetingUtil.canShareWhiteBoard([], {
|
788
|
+
[SELF_POLICY.SUPPORT_WHITEBOARD]: false,
|
789
|
+
}),
|
790
|
+
false
|
791
|
+
);
|
792
|
+
assert.deepEqual(MeetingUtil.canShareWhiteBoard(['SHARE_WHITEBOARD'], undefined), false);
|
793
|
+
});
|
794
|
+
});
|
795
|
+
|
796
|
+
describe('canMoveToLobby', () => {
|
797
|
+
it('works as expected', () => {
|
798
|
+
assert.deepEqual(MeetingUtil.canMoveToLobby(['MOVE_TO_LOBBY']), true);
|
799
|
+
assert.deepEqual(MeetingUtil.canMoveToLobby([]), false);
|
699
800
|
});
|
700
801
|
});
|
701
802
|
|