@webex/plugin-meetings 3.8.0-web-workers-keepalive.1 → 3.8.1-next.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/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +70 -6
- package/dist/breakouts/index.js.map +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 +22 -123
- 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 +30 -10
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +83 -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 +17 -17
- 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 +9 -2
- 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 +568 -328
- 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 +4 -4
- 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 +9 -1
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +19 -13
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +5 -1
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/index.js +76 -0
- 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 +45 -9
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +3 -0
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.js +335 -356
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +137 -29
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +38 -0
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +36 -1
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +1 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/reachability/clusterReachability.js +23 -31
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.js +42 -2
- package/dist/reachability/index.js.map +1 -1
- package/dist/reconnection-manager/index.js +2 -2
- package/dist/reconnection-manager/index.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 +15 -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 +35 -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 +2 -1
- package/dist/types/meetings/index.d.ts +28 -0
- package/dist/types/member/index.d.ts +20 -6
- package/dist/types/member/types.d.ts +73 -14
- package/dist/types/member/util.d.ts +156 -1
- package/dist/types/members/collection.d.ts +6 -5
- package/dist/types/members/index.d.ts +32 -43
- package/dist/types/members/request.d.ts +26 -0
- package/dist/types/members/util.d.ts +27 -0
- package/dist/types/metrics/constants.d.ts +1 -0
- package/dist/types/reachability/clusterReachability.d.ts +2 -6
- package/dist/types/reachability/index.d.ts +8 -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/breakouts/index.ts +69 -0
- package/src/common/errors/webex-errors.ts +8 -1
- package/src/config.ts +2 -0
- package/src/constants.ts +23 -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 +48 -12
- package/src/locus-info/index.ts +88 -13
- package/src/locus-info/selfUtils.ts +496 -442
- package/src/media/index.ts +23 -21
- package/src/media/properties.ts +96 -0
- package/src/meeting/brbState.ts +11 -2
- package/src/meeting/in-meeting-actions.ts +32 -0
- package/src/meeting/index.ts +356 -87
- package/src/meeting/locusMediaRequest.ts +0 -18
- package/src/meeting/muteState.ts +4 -4
- package/src/meeting/request.ts +36 -1
- package/src/meeting/request.type.ts +7 -0
- package/src/meeting/util.ts +9 -1
- package/src/meeting-info/meeting-info-v2.ts +7 -2
- package/src/meeting-info/utilv2.ts +5 -0
- package/src/meetings/index.ts +76 -0
- package/src/meetings/util.ts +18 -0
- package/src/member/index.ts +57 -22
- package/src/member/types.ts +82 -16
- package/src/member/util.ts +357 -353
- package/src/members/collection.ts +4 -3
- package/src/members/index.ts +137 -18
- package/src/members/request.ts +44 -0
- package/src/members/util.ts +43 -1
- package/src/metrics/constants.ts +1 -0
- package/src/reachability/clusterReachability.ts +26 -25
- package/src/reachability/index.ts +55 -1
- package/src/reconnection-manager/index.ts +2 -2
- 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/breakouts/index.ts +167 -95
- package/test/unit/spec/controls-options-manager/util.js +120 -0
- package/test/unit/spec/locus-info/controlsUtils.js +131 -9
- package/test/unit/spec/locus-info/index.js +195 -73
- package/test/unit/spec/locus-info/selfUtils.js +98 -24
- package/test/unit/spec/media/index.ts +150 -18
- package/test/unit/spec/media/properties.ts +130 -0
- package/test/unit/spec/meeting/brbState.ts +40 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +19 -4
- package/test/unit/spec/meeting/index.js +553 -36
- package/test/unit/spec/meeting/locusMediaRequest.ts +0 -30
- package/test/unit/spec/meeting/muteState.js +73 -2
- package/test/unit/spec/meeting/request.js +32 -1
- package/test/unit/spec/meeting/utils.js +79 -33
- package/test/unit/spec/meeting-info/meetinginfov2.js +41 -0
- package/test/unit/spec/meeting-info/utilv2.js +19 -0
- package/test/unit/spec/meetings/index.js +68 -1
- package/test/unit/spec/members/index.js +304 -78
- package/test/unit/spec/members/request.js +68 -22
- package/test/unit/spec/members/utils.js +75 -0
- package/test/unit/spec/reachability/clusterReachability.ts +41 -55
- package/test/unit/spec/reachability/index.ts +89 -0
- package/test/unit/spec/reconnection-manager/index.js +4 -4
- package/test/unit/spec/roap/turnDiscovery.ts +110 -28
@@ -406,6 +406,74 @@ describe('plugin-meetings', () => {
|
|
406
406
|
});
|
407
407
|
});
|
408
408
|
|
409
|
+
describe('canUpdateAnnotation()', () => {
|
410
|
+
beforeEach(() => {
|
411
|
+
sinon.stub(ControlsOptionsUtil, 'hasHints').returns(true);
|
412
|
+
});
|
413
|
+
|
414
|
+
it('should call hasHints() with proper hints when `enabled` is true', () => {
|
415
|
+
ControlsOptionsUtil.canUpdateAnnotation({properties: {enabled: true}}, []);
|
416
|
+
|
417
|
+
assert.calledWith(ControlsOptionsUtil.hasHints, {
|
418
|
+
requiredHints: [DISPLAY_HINTS.ENABLE_ANNOTATION_MEETING_OPTION],
|
419
|
+
displayHints: [],
|
420
|
+
});
|
421
|
+
});
|
422
|
+
|
423
|
+
it('should call hasHints() with proper hints when `enabled` is false', () => {
|
424
|
+
ControlsOptionsUtil.canUpdateAnnotation({properties: {enabled: false}}, []);
|
425
|
+
|
426
|
+
assert.calledWith(ControlsOptionsUtil.hasHints, {
|
427
|
+
requiredHints: [DISPLAY_HINTS.DISABLE_ANNOTATION_MEETING_OPTION],
|
428
|
+
displayHints: [],
|
429
|
+
});
|
430
|
+
});
|
431
|
+
|
432
|
+
it('should return the resolution of hasHints()', () => {
|
433
|
+
const expected = 'example-return-value';
|
434
|
+
ControlsOptionsUtil.hasHints.returns(expected);
|
435
|
+
|
436
|
+
const results = ControlsOptionsUtil.canUpdateAnnotation({properties: {}}, []);
|
437
|
+
|
438
|
+
assert.calledOnce(ControlsOptionsUtil.hasHints);
|
439
|
+
assert.equal(results, expected);
|
440
|
+
});
|
441
|
+
});
|
442
|
+
|
443
|
+
describe('canUpdateRemoteDesktopControl()', () => {
|
444
|
+
beforeEach(() => {
|
445
|
+
sinon.stub(ControlsOptionsUtil, 'hasHints').returns(true);
|
446
|
+
});
|
447
|
+
|
448
|
+
it('should call hasHints() with proper hints when `enabled` is true', () => {
|
449
|
+
ControlsOptionsUtil.canUpdateRemoteDesktopControl({properties: {enabled: true}}, []);
|
450
|
+
|
451
|
+
assert.calledWith(ControlsOptionsUtil.hasHints, {
|
452
|
+
requiredHints: [DISPLAY_HINTS.ENABLE_RDC_MEETING_OPTION],
|
453
|
+
displayHints: [],
|
454
|
+
});
|
455
|
+
});
|
456
|
+
|
457
|
+
it('should call hasHints() with proper hints when `enabled` is false', () => {
|
458
|
+
ControlsOptionsUtil.canUpdateRemoteDesktopControl({properties: {enabled: false}}, []);
|
459
|
+
|
460
|
+
assert.calledWith(ControlsOptionsUtil.hasHints, {
|
461
|
+
requiredHints: [DISPLAY_HINTS.DISABLE_RDC_MEETING_OPTION],
|
462
|
+
displayHints: [],
|
463
|
+
});
|
464
|
+
});
|
465
|
+
|
466
|
+
it('should return the resolution of hasHints()', () => {
|
467
|
+
const expected = 'example-return-value';
|
468
|
+
ControlsOptionsUtil.hasHints.returns(expected);
|
469
|
+
|
470
|
+
const results = ControlsOptionsUtil.canUpdateRemoteDesktopControl({properties: {}}, []);
|
471
|
+
|
472
|
+
assert.calledOnce(ControlsOptionsUtil.hasHints);
|
473
|
+
assert.equal(results, expected);
|
474
|
+
});
|
475
|
+
});
|
476
|
+
|
409
477
|
describe('canUpdate()', () => {
|
410
478
|
const displayHints = [];
|
411
479
|
|
@@ -416,6 +484,8 @@ describe('plugin-meetings', () => {
|
|
416
484
|
ControlsOptionsUtil.canUpdateShareControl = sinon.stub().returns(true);
|
417
485
|
ControlsOptionsUtil.canUpdateVideo = sinon.stub().returns(true);
|
418
486
|
ControlsOptionsUtil.canUpdateViewTheParticipantsList = sinon.stub().returns(true);
|
487
|
+
ControlsOptionsUtil.canUpdateAnnotation = sinon.stub().returns(true);
|
488
|
+
ControlsOptionsUtil.canUpdateRemoteDesktopControl = sinon.stub().returns(true);
|
419
489
|
});
|
420
490
|
|
421
491
|
it('should only call canUpdateAudio() if the scope is audio', () => {
|
@@ -429,6 +499,8 @@ describe('plugin-meetings', () => {
|
|
429
499
|
assert.callCount(ControlsOptionsUtil.canUpdateShareControl, 0);
|
430
500
|
assert.callCount(ControlsOptionsUtil.canUpdateVideo, 0);
|
431
501
|
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
502
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
503
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
432
504
|
assert.isTrue(results);
|
433
505
|
});
|
434
506
|
|
@@ -443,6 +515,8 @@ describe('plugin-meetings', () => {
|
|
443
515
|
assert.callCount(ControlsOptionsUtil.canUpdateShareControl, 0);
|
444
516
|
assert.callCount(ControlsOptionsUtil.canUpdateVideo, 0);
|
445
517
|
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
518
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
519
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
446
520
|
assert.isTrue(results);
|
447
521
|
});
|
448
522
|
|
@@ -457,6 +531,8 @@ describe('plugin-meetings', () => {
|
|
457
531
|
assert.callCount(ControlsOptionsUtil.canUpdateShareControl, 0);
|
458
532
|
assert.callCount(ControlsOptionsUtil.canUpdateVideo, 0);
|
459
533
|
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
534
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
535
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
460
536
|
assert.isTrue(results);
|
461
537
|
});
|
462
538
|
|
@@ -471,6 +547,8 @@ describe('plugin-meetings', () => {
|
|
471
547
|
assert.calledWith(ControlsOptionsUtil.canUpdateShareControl, displayHints);
|
472
548
|
assert.callCount(ControlsOptionsUtil.canUpdateVideo, 0);
|
473
549
|
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
550
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
551
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
474
552
|
assert.isTrue(results);
|
475
553
|
});
|
476
554
|
|
@@ -485,6 +563,8 @@ describe('plugin-meetings', () => {
|
|
485
563
|
assert.callCount(ControlsOptionsUtil.canUpdateShareControl, 0);
|
486
564
|
assert.calledWith(ControlsOptionsUtil.canUpdateVideo, control, displayHints);
|
487
565
|
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
566
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
567
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
488
568
|
assert.isTrue(results);
|
489
569
|
});
|
490
570
|
|
@@ -503,6 +583,44 @@ describe('plugin-meetings', () => {
|
|
503
583
|
control,
|
504
584
|
displayHints
|
505
585
|
);
|
586
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
587
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
588
|
+
assert.isTrue(results);
|
589
|
+
});
|
590
|
+
|
591
|
+
it('should only call canUpdateAnnotation() if the scope is annotation', () => {
|
592
|
+
const control = {scope: 'annotation'};
|
593
|
+
|
594
|
+
const results = ControlsOptionsUtil.canUpdate(control, displayHints);
|
595
|
+
|
596
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAudio, 0);
|
597
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRaiseHand, 0);
|
598
|
+
assert.callCount(ControlsOptionsUtil.canUpdateReactions, 0);
|
599
|
+
assert.callCount(ControlsOptionsUtil.canUpdateShareControl, 0);
|
600
|
+
assert.callCount(ControlsOptionsUtil.canUpdateVideo, 0);
|
601
|
+
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
602
|
+
assert.calledWith(ControlsOptionsUtil.canUpdateAnnotation, control, displayHints);
|
603
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
604
|
+
assert.isTrue(results);
|
605
|
+
});
|
606
|
+
|
607
|
+
it('should only call canUpdateRemoteDesktopControl() if the scope is rdc', () => {
|
608
|
+
const control = {scope: 'rdc'};
|
609
|
+
|
610
|
+
const results = ControlsOptionsUtil.canUpdate(control, displayHints);
|
611
|
+
|
612
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAudio, 0);
|
613
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRaiseHand, 0);
|
614
|
+
assert.callCount(ControlsOptionsUtil.canUpdateReactions, 0);
|
615
|
+
assert.callCount(ControlsOptionsUtil.canUpdateShareControl, 0);
|
616
|
+
assert.callCount(ControlsOptionsUtil.canUpdateVideo, 0);
|
617
|
+
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
618
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
619
|
+
assert.calledWith(
|
620
|
+
ControlsOptionsUtil.canUpdateRemoteDesktopControl,
|
621
|
+
control,
|
622
|
+
displayHints
|
623
|
+
);
|
506
624
|
assert.isTrue(results);
|
507
625
|
});
|
508
626
|
|
@@ -517,6 +635,8 @@ describe('plugin-meetings', () => {
|
|
517
635
|
assert.callCount(ControlsOptionsUtil.canUpdateShareControl, 0);
|
518
636
|
assert.callCount(ControlsOptionsUtil.canUpdateVideo, 0);
|
519
637
|
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
638
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
639
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
520
640
|
assert.isFalse(results);
|
521
641
|
});
|
522
642
|
});
|
@@ -1,6 +1,10 @@
|
|
1
1
|
import {assert} from '@webex/test-helper-chai';
|
2
2
|
import ControlsUtils from '@webex/plugin-meetings/src/locus-info/controlsUtils';
|
3
3
|
import controlsUtils from "@webex/plugin-meetings/src/locus-info/controlsUtils";
|
4
|
+
import {
|
5
|
+
MEETING_STATE,
|
6
|
+
BREAKOUTS,
|
7
|
+
} from '../../../../src/constants';
|
4
8
|
|
5
9
|
const defaultControls = {
|
6
10
|
entryExitTone: {
|
@@ -140,7 +144,25 @@ describe('plugin-meetings', () => {
|
|
140
144
|
assert.equal(parsedControls.videoLayout.overrideDefault, newControls.videoLayout.overrideDefault);
|
141
145
|
assert.equal(parsedControls.videoLayout.lockAttendeeViewOnStageOnly, newControls.videoLayout.lockAttendeeViewOnStageOnly);
|
142
146
|
assert.equal(parsedControls.videoLayout.stageParameters, newControls.videoLayout.stageParameters);
|
147
|
+
});
|
148
|
+
|
149
|
+
it('should parse the annotationControl control', () => {
|
150
|
+
const newControls = {annotationControl: {enabled: true}};
|
151
|
+
|
152
|
+
const parsedControls = ControlsUtils.parse(newControls);
|
153
|
+
|
154
|
+
assert.equal(
|
155
|
+
parsedControls.annotationControl.enabled,
|
156
|
+
newControls.annotationControl.enabled
|
157
|
+
);
|
158
|
+
});
|
159
|
+
|
160
|
+
it('should parse the rdcControl control', () => {
|
161
|
+
const newControls = {rdcControl: {enabled: true}};
|
143
162
|
|
163
|
+
const parsedControls = ControlsUtils.parse(newControls);
|
164
|
+
|
165
|
+
assert.equal(parsedControls.rdcControl.enabled, newControls.rdcControl.enabled);
|
144
166
|
});
|
145
167
|
|
146
168
|
describe('videoEnabled', () => {
|
@@ -373,6 +395,58 @@ describe('plugin-meetings', () => {
|
|
373
395
|
assert.equal(updates.hasManualCaptionChanged, false);
|
374
396
|
});
|
375
397
|
|
398
|
+
it('returns hasAnnotationControlChanged = true when changed', () => {
|
399
|
+
const newControls = {annotationControl: {enabled: true}};
|
400
|
+
|
401
|
+
const {updates} = ControlsUtils.getControls(defaultControls, newControls);
|
402
|
+
|
403
|
+
assert.equal(updates.hasAnnotationControlChanged, true);
|
404
|
+
});
|
405
|
+
|
406
|
+
it('returns hasRemoteDesktopControlChanged = true when changed', () => {
|
407
|
+
const newControls = {rdcControl: {enabled: true}};
|
408
|
+
|
409
|
+
const {updates} = ControlsUtils.getControls(defaultControls, newControls);
|
410
|
+
|
411
|
+
assert.equal(updates.hasRemoteDesktopControlChanged, true);
|
412
|
+
});
|
413
|
+
|
414
|
+
it('returns false when previous spoken language is undefined and current is a invalid value', () => {
|
415
|
+
const previous = { transcribe: undefined };
|
416
|
+
const current = { transcribe: { spokenLanguage: null } };
|
417
|
+
|
418
|
+
const {updates} = ControlsUtils.getControls(previous, current);
|
419
|
+
|
420
|
+
assert.equal(updates.hasTranscribeSpokenLanguageChanged, false);
|
421
|
+
});
|
422
|
+
|
423
|
+
it('detects spoken language change when previous is undefined and current is a valid value', () => {
|
424
|
+
const previous = { transcribe: undefined };
|
425
|
+
const current = { transcribe: { spokenLanguage: 'en-US' } };
|
426
|
+
|
427
|
+
const {updates} = ControlsUtils.getControls(previous, current);
|
428
|
+
|
429
|
+
assert.equal(updates.hasTranscribeSpokenLanguageChanged, true);
|
430
|
+
});
|
431
|
+
|
432
|
+
it('returns false when spoken language changes to a same value', () => {
|
433
|
+
const previous = { transcribe: {caption: true, spokenLanguage: 'en-US' } };
|
434
|
+
const current = { transcribe: {caption: true, spokenLanguage: 'en-US' } };
|
435
|
+
|
436
|
+
const {updates} = ControlsUtils.getControls(previous, current);
|
437
|
+
|
438
|
+
assert.equal(updates.hasTranscribeSpokenLanguageChanged, false);
|
439
|
+
});
|
440
|
+
|
441
|
+
it('returns true when spoken language changes to a different value', () => {
|
442
|
+
const previous = { transcribe: {caption: true, spokenLanguage: 'en-US' } };
|
443
|
+
const current = { transcribe: {caption: true, spokenLanguage: 'fr-FR' } };
|
444
|
+
|
445
|
+
const {updates} = ControlsUtils.getControls(previous, current);
|
446
|
+
|
447
|
+
assert.equal(updates.hasTranscribeSpokenLanguageChanged, true);
|
448
|
+
});
|
449
|
+
|
376
450
|
describe('videoEnabled', () => {
|
377
451
|
const testVideoEnabled = (oldControls, newControls, updatedProperty) => {
|
378
452
|
const result = ControlsUtils.getControls(oldControls, newControls);
|
@@ -432,28 +506,76 @@ describe('plugin-meetings', () => {
|
|
432
506
|
|
433
507
|
describe('getSessionSwitchStatus', () => {
|
434
508
|
it('if no breakout control, return switch status both false', () => {
|
435
|
-
const
|
436
|
-
const
|
437
|
-
assert.deepEqual(controlsUtils.getSessionSwitchStatus(
|
509
|
+
const oldLocus = {};
|
510
|
+
const newLocus = {};
|
511
|
+
assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldLocus, newLocus), {
|
438
512
|
isReturnToMain: false, isJoinToBreakout: false
|
439
513
|
});
|
440
514
|
});
|
441
515
|
|
442
516
|
it('if switch session from breakout to main, return isReturnToMain as true', () => {
|
443
|
-
const
|
444
|
-
const
|
445
|
-
assert.deepEqual(controlsUtils.getSessionSwitchStatus(
|
517
|
+
const oldLocus = {controls: {breakout: {sessionType: 'BREAKOUT'}}};
|
518
|
+
const newLocus = {controls: {breakout: {sessionType: 'MAIN'}}};
|
519
|
+
assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldLocus, newLocus), {
|
446
520
|
isReturnToMain: true, isJoinToBreakout: false
|
447
521
|
});
|
448
522
|
});
|
449
523
|
|
450
524
|
it('if switch session from main to breakout, return isJoinToBreakout as true', () => {
|
451
|
-
const
|
452
|
-
const
|
453
|
-
assert.deepEqual(controlsUtils.getSessionSwitchStatus(
|
525
|
+
const oldLocus = {controls: {breakout: {sessionType: 'MAIN'}}};
|
526
|
+
const newLocus = {controls: {breakout: {sessionType: 'BREAKOUT'}}};
|
527
|
+
assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldLocus, newLocus), {
|
454
528
|
isReturnToMain: false, isJoinToBreakout: true
|
455
529
|
});
|
456
530
|
});
|
531
|
+
|
532
|
+
it('if needUseCache conditions are met, return isJoinToBreakout as true', () => {
|
533
|
+
const oldLocus = {
|
534
|
+
self: { isCreator: true },
|
535
|
+
controls: { breakout: { sessionType: BREAKOUTS.SESSION_TYPES.MAIN} },
|
536
|
+
};
|
537
|
+
|
538
|
+
const newLocus = {
|
539
|
+
participants: [
|
540
|
+
{ isCreator: true, state: MEETING_STATE.STATES.JOINED },
|
541
|
+
],
|
542
|
+
controls: {
|
543
|
+
breakout: {
|
544
|
+
sessionType: BREAKOUTS.SESSION_TYPES.MAIN,
|
545
|
+
groups: [{ id: 'group1' }]
|
546
|
+
},
|
547
|
+
},
|
548
|
+
};
|
549
|
+
|
550
|
+
assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldLocus, newLocus), {
|
551
|
+
isReturnToMain: true,
|
552
|
+
isJoinToBreakout: false
|
553
|
+
});
|
554
|
+
});
|
555
|
+
|
556
|
+
it('if needUseCache conditions are not met, return newLocus and isReturnToMain as false', () => {
|
557
|
+
const oldLocus = {
|
558
|
+
self: { isCreator: false },
|
559
|
+
controls: { breakout: { sessionType: BREAKOUTS.SESSION_TYPES.BREAKOUT} },
|
560
|
+
};
|
561
|
+
|
562
|
+
const newLocus = {
|
563
|
+
participants: [
|
564
|
+
{ isCreator: true, state: MEETING_STATE.STATES.JOINED },
|
565
|
+
],
|
566
|
+
controls: {
|
567
|
+
breakout: {
|
568
|
+
sessionType: BREAKOUTS.SESSION_TYPES.BREAKOUT,
|
569
|
+
groups: []
|
570
|
+
},
|
571
|
+
},
|
572
|
+
};
|
573
|
+
|
574
|
+
assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldLocus, newLocus), {
|
575
|
+
isReturnToMain: false,
|
576
|
+
isJoinToBreakout: false
|
577
|
+
});
|
578
|
+
});
|
457
579
|
});
|
458
580
|
|
459
581
|
describe('#isMainSessionDTO', () => {
|