@webex/plugin-meetings 3.8.0 → 3.8.1-next.10
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 +26 -13
- 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 +5 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +28 -123
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +3 -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 +78 -0
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/interpretation/index.js +4 -4
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +37 -11
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +92 -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 +21 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +678 -344
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +21 -22
- 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 +13 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +373 -68
- 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 +136 -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 +55 -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 -353
- 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 +10 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +40 -8
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/reachability/clusterReachability.js +63 -27
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.js +107 -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 +3 -0
- package/dist/types/constants.d.ts +20 -85
- package/dist/types/controls-options-manager/enums.d.ts +4 -1
- package/dist/types/controls-options-manager/types.d.ts +10 -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 +20 -0
- package/dist/types/meeting/index.d.ts +65 -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 +82 -1
- package/dist/types/meetings/index.d.ts +57 -0
- package/dist/types/member/index.d.ts +21 -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 +10 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +10 -1
- 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 +2 -2
- package/dist/webinar/index.js.map +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 +3 -0
- package/src/constants.ts +30 -90
- package/src/controls-options-manager/enums.ts +3 -0
- package/src/controls-options-manager/types.ts +16 -1
- package/src/controls-options-manager/util.ts +93 -0
- package/src/interpretation/index.ts +3 -3
- package/src/locus-info/controlsUtils.ts +59 -14
- package/src/locus-info/index.ts +97 -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 +40 -0
- package/src/meeting/index.ts +470 -105
- package/src/meeting/locusMediaRequest.ts +27 -22
- 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 +11 -2
- package/src/meeting-info/meeting-info-v2.ts +254 -8
- package/src/meeting-info/utilv2.ts +5 -0
- package/src/meetings/index.ts +148 -1
- package/src/meetings/util.ts +18 -0
- package/src/member/index.ts +68 -22
- package/src/member/types.ts +82 -16
- package/src/member/util.ts +357 -350
- 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 +10 -0
- package/src/multistream/remoteMediaManager.ts +32 -10
- package/src/reachability/clusterReachability.ts +73 -26
- package/src/reachability/index.ts +62 -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/src/webinar/index.ts +1 -1
- package/test/unit/spec/breakouts/index.ts +167 -95
- package/test/unit/spec/controls-options-manager/util.js +178 -0
- package/test/unit/spec/interpretation/index.ts +39 -1
- package/test/unit/spec/locus-info/controlsUtils.js +155 -9
- package/test/unit/spec/locus-info/index.js +209 -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 +23 -4
- package/test/unit/spec/meeting/index.js +804 -139
- package/test/unit/spec/meeting/locusMediaRequest.ts +95 -87
- 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 +119 -18
- package/test/unit/spec/meeting-info/meetinginfov2.js +484 -114
- package/test/unit/spec/meeting-info/utilv2.js +19 -0
- package/test/unit/spec/meetings/index.js +146 -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 +304 -78
- package/test/unit/spec/members/request.js +68 -22
- package/test/unit/spec/members/utils.js +75 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +397 -118
- package/test/unit/spec/reachability/clusterReachability.ts +88 -56
- package/test/unit/spec/reachability/index.ts +97 -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
- package/test/unit/spec/webinar/index.ts +5 -0
- package/dist/annotation/annotation.types.d.ts +0 -42
- package/dist/annotation/constants.d.ts +0 -31
- package/dist/annotation/index.d.ts +0 -117
- package/dist/breakouts/breakout.d.ts +0 -8
- package/dist/breakouts/collection.d.ts +0 -5
- package/dist/breakouts/edit-lock-error.d.ts +0 -15
- package/dist/breakouts/events.d.ts +0 -8
- package/dist/breakouts/index.d.ts +0 -5
- package/dist/breakouts/request.d.ts +0 -22
- package/dist/breakouts/utils.d.ts +0 -15
- package/dist/common/browser-detection.d.ts +0 -9
- package/dist/common/collection.d.ts +0 -48
- package/dist/common/config.d.ts +0 -2
- package/dist/common/errors/captcha-error.d.ts +0 -15
- package/dist/common/errors/intent-to-join.d.ts +0 -16
- package/dist/common/errors/join-meeting.d.ts +0 -17
- package/dist/common/errors/media.d.ts +0 -15
- package/dist/common/errors/no-meeting-info.d.ts +0 -14
- package/dist/common/errors/parameter.d.ts +0 -15
- package/dist/common/errors/password-error.d.ts +0 -15
- package/dist/common/errors/permission.d.ts +0 -14
- package/dist/common/errors/reclaim-host-role-error.js +0 -149
- package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
- package/dist/common/errors/reclaim-host-role-errors.d.ts +0 -60
- package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
- package/dist/common/errors/reconnection-in-progress.js +0 -33
- package/dist/common/errors/reconnection-in-progress.js.map +0 -1
- package/dist/common/errors/reconnection.d.ts +0 -15
- package/dist/common/errors/stats.d.ts +0 -15
- package/dist/common/errors/webex-errors.d.ts +0 -93
- package/dist/common/errors/webex-meetings-error.d.ts +0 -20
- package/dist/common/events/events-scope.d.ts +0 -17
- package/dist/common/events/events.d.ts +0 -12
- package/dist/common/events/trigger-proxy.d.ts +0 -2
- package/dist/common/events/util.d.ts +0 -2
- package/dist/common/logs/logger-config.d.ts +0 -2
- package/dist/common/logs/logger-proxy.d.ts +0 -2
- package/dist/common/logs/request.d.ts +0 -36
- package/dist/common/queue.d.ts +0 -34
- package/dist/config.d.ts +0 -72
- package/dist/constants.d.ts +0 -1088
- package/dist/controls-options-manager/constants.d.ts +0 -4
- package/dist/controls-options-manager/enums.d.ts +0 -15
- package/dist/controls-options-manager/index.d.ts +0 -136
- package/dist/controls-options-manager/types.d.ts +0 -43
- package/dist/controls-options-manager/util.d.ts +0 -1
- package/dist/index.d.ts +0 -7
- package/dist/interceptors/index.d.ts +0 -2
- package/dist/interceptors/locusRetry.d.ts +0 -27
- package/dist/interpretation/collection.d.ts +0 -5
- package/dist/interpretation/index.d.ts +0 -5
- package/dist/interpretation/siLanguage.d.ts +0 -5
- package/dist/locus-info/controlsUtils.d.ts +0 -2
- package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
- package/dist/locus-info/fullState.d.ts +0 -2
- package/dist/locus-info/hostUtils.d.ts +0 -2
- package/dist/locus-info/index.d.ts +0 -322
- package/dist/locus-info/infoUtils.d.ts +0 -2
- package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
- package/dist/locus-info/parser.d.ts +0 -272
- package/dist/locus-info/selfUtils.d.ts +0 -2
- package/dist/media/index.d.ts +0 -34
- package/dist/media/properties.d.ts +0 -93
- package/dist/media/util.d.ts +0 -2
- package/dist/mediaQualityMetrics/config.d.ts +0 -241
- package/dist/mediaQualityMetrics/config.js +0 -502
- package/dist/mediaQualityMetrics/config.js.map +0 -1
- package/dist/meeting/effectsState.js +0 -260
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/meeting/in-meeting-actions.d.ts +0 -167
- package/dist/meeting/index.d.ts +0 -1825
- package/dist/meeting/locusMediaRequest.d.ts +0 -74
- package/dist/meeting/muteState.d.ts +0 -178
- package/dist/meeting/request.d.ts +0 -295
- package/dist/meeting/request.type.d.ts +0 -11
- package/dist/meeting/state.d.ts +0 -9
- package/dist/meeting/util.d.ts +0 -119
- package/dist/meeting/voicea-meeting.d.ts +0 -16
- package/dist/meeting-info/collection.d.ts +0 -20
- package/dist/meeting-info/index.d.ts +0 -69
- package/dist/meeting-info/meeting-info-v2.d.ts +0 -123
- package/dist/meeting-info/request.d.ts +0 -22
- package/dist/meeting-info/util.d.ts +0 -2
- package/dist/meeting-info/utilv2.d.ts +0 -2
- package/dist/meetings/collection.d.ts +0 -40
- package/dist/meetings/index.d.ts +0 -390
- package/dist/meetings/meetings.types.d.ts +0 -4
- package/dist/meetings/request.d.ts +0 -27
- package/dist/meetings/util.d.ts +0 -18
- package/dist/member/index.d.ts +0 -160
- package/dist/member/member.types.js +0 -17
- package/dist/member/member.types.js.map +0 -1
- package/dist/member/types.d.ts +0 -32
- package/dist/member/util.d.ts +0 -2
- package/dist/members/collection.d.ts +0 -29
- package/dist/members/index.d.ts +0 -353
- package/dist/members/request.d.ts +0 -114
- package/dist/members/types.d.ts +0 -25
- package/dist/members/util.d.ts +0 -215
- package/dist/metrics/config.js +0 -276
- package/dist/metrics/config.js.map +0 -1
- package/dist/metrics/constants.d.ts +0 -70
- package/dist/metrics/index.d.ts +0 -45
- package/dist/multistream/mediaRequestManager.d.ts +0 -119
- package/dist/multistream/receiveSlot.d.ts +0 -68
- package/dist/multistream/receiveSlotManager.d.ts +0 -56
- package/dist/multistream/remoteMedia.d.ts +0 -72
- package/dist/multistream/remoteMediaGroup.d.ts +0 -49
- package/dist/multistream/remoteMediaManager.d.ts +0 -300
- package/dist/multistream/sendSlotManager.d.ts +0 -69
- package/dist/networkQualityMonitor/index.d.ts +0 -70
- package/dist/networkQualityMonitor/index.js +0 -221
- package/dist/networkQualityMonitor/index.js.map +0 -1
- package/dist/peer-connection-manager/index.js +0 -671
- package/dist/peer-connection-manager/index.js.map +0 -1
- package/dist/peer-connection-manager/util.js +0 -109
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/dist/personal-meeting-room/index.d.ts +0 -47
- package/dist/personal-meeting-room/request.d.ts +0 -14
- package/dist/personal-meeting-room/util.d.ts +0 -2
- package/dist/reachability/clusterReachability.d.ts +0 -109
- package/dist/reachability/index.d.ts +0 -105
- package/dist/reachability/request.d.ts +0 -39
- package/dist/reachability/util.d.ts +0 -8
- package/dist/reactions/constants.d.ts +0 -3
- package/dist/reactions/reactions.d.ts +0 -4
- package/dist/reactions/reactions.type.d.ts +0 -52
- package/dist/reconnection-manager/index.d.ts +0 -136
- package/dist/recording-controller/enums.d.ts +0 -7
- package/dist/recording-controller/index.d.ts +0 -207
- package/dist/recording-controller/util.d.ts +0 -14
- package/dist/roap/collection.js +0 -62
- package/dist/roap/collection.js.map +0 -1
- package/dist/roap/handler.js +0 -275
- package/dist/roap/handler.js.map +0 -1
- package/dist/roap/index.d.ts +0 -86
- package/dist/roap/request.d.ts +0 -39
- package/dist/roap/state.js +0 -126
- package/dist/roap/state.js.map +0 -1
- package/dist/roap/turnDiscovery.d.ts +0 -155
- package/dist/roap/util.js +0 -75
- package/dist/roap/util.js.map +0 -1
- package/dist/rtcMetrics/constants.d.ts +0 -4
- package/dist/rtcMetrics/constants.js +0 -11
- package/dist/rtcMetrics/constants.js.map +0 -1
- package/dist/rtcMetrics/index.d.ts +0 -61
- package/dist/rtcMetrics/index.js +0 -197
- package/dist/rtcMetrics/index.js.map +0 -1
- package/dist/statsAnalyzer/global.d.ts +0 -36
- package/dist/statsAnalyzer/global.js +0 -126
- package/dist/statsAnalyzer/global.js.map +0 -1
- package/dist/statsAnalyzer/index.d.ts +0 -217
- package/dist/statsAnalyzer/index.js +0 -1013
- package/dist/statsAnalyzer/index.js.map +0 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +0 -48
- package/dist/statsAnalyzer/mqaUtil.js +0 -179
- package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
- package/dist/transcription/index.d.ts +0 -64
- package/dist/types/common/errors/reconnection-in-progress.d.ts +0 -9
- package/dist/types/mediaQualityMetrics/config.d.ts +0 -241
- package/dist/types/networkQualityMonitor/index.d.ts +0 -70
- package/dist/types/rtcMetrics/constants.d.ts +0 -4
- package/dist/types/rtcMetrics/index.d.ts +0 -71
- package/dist/types/statsAnalyzer/global.d.ts +0 -36
- package/dist/types/statsAnalyzer/index.d.ts +0 -217
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
- package/dist/webinar/collection.d.ts +0 -16
- package/dist/webinar/index.d.ts +0 -5
@@ -406,6 +406,108 @@ 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
|
+
|
477
|
+
describe('canUpdatePollingQA()', () => {
|
478
|
+
beforeEach(() => {
|
479
|
+
sinon.stub(ControlsOptionsUtil, 'hasHints').returns(true);
|
480
|
+
});
|
481
|
+
|
482
|
+
it('should call hasHints() with proper hints when `enabled` is true', () => {
|
483
|
+
ControlsOptionsUtil.canUpdatePollingQA({properties: {enabled: true}}, []);
|
484
|
+
|
485
|
+
assert.calledWith(ControlsOptionsUtil.hasHints, {
|
486
|
+
requiredHints: [DISPLAY_HINTS.ENABLE_ATTENDEE_START_POLLING_QA],
|
487
|
+
displayHints: [],
|
488
|
+
});
|
489
|
+
});
|
490
|
+
|
491
|
+
it('should call hasHints() with proper hints when `enabled` is false', () => {
|
492
|
+
ControlsOptionsUtil.canUpdatePollingQA({properties: {enabled: false}}, []);
|
493
|
+
|
494
|
+
assert.calledWith(ControlsOptionsUtil.hasHints, {
|
495
|
+
requiredHints: [DISPLAY_HINTS.DISABLE_ATTENDEE_START_POLLING_QA],
|
496
|
+
displayHints: [],
|
497
|
+
});
|
498
|
+
});
|
499
|
+
|
500
|
+
it('should return the resolution of hasHints()', () => {
|
501
|
+
const expected = 'example-return-value';
|
502
|
+
ControlsOptionsUtil.hasHints.returns(expected);
|
503
|
+
|
504
|
+
const results = ControlsOptionsUtil.canUpdatePollingQA({properties: {}}, []);
|
505
|
+
|
506
|
+
assert.calledOnce(ControlsOptionsUtil.hasHints);
|
507
|
+
assert.equal(results, expected);
|
508
|
+
});
|
509
|
+
});
|
510
|
+
|
409
511
|
describe('canUpdate()', () => {
|
410
512
|
const displayHints = [];
|
411
513
|
|
@@ -416,6 +518,9 @@ describe('plugin-meetings', () => {
|
|
416
518
|
ControlsOptionsUtil.canUpdateShareControl = sinon.stub().returns(true);
|
417
519
|
ControlsOptionsUtil.canUpdateVideo = sinon.stub().returns(true);
|
418
520
|
ControlsOptionsUtil.canUpdateViewTheParticipantsList = sinon.stub().returns(true);
|
521
|
+
ControlsOptionsUtil.canUpdateAnnotation = sinon.stub().returns(true);
|
522
|
+
ControlsOptionsUtil.canUpdateRemoteDesktopControl = sinon.stub().returns(true);
|
523
|
+
ControlsOptionsUtil.canUpdatePollingQA = sinon.stub().returns(true);
|
419
524
|
});
|
420
525
|
|
421
526
|
it('should only call canUpdateAudio() if the scope is audio', () => {
|
@@ -429,6 +534,8 @@ describe('plugin-meetings', () => {
|
|
429
534
|
assert.callCount(ControlsOptionsUtil.canUpdateShareControl, 0);
|
430
535
|
assert.callCount(ControlsOptionsUtil.canUpdateVideo, 0);
|
431
536
|
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
537
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
538
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
432
539
|
assert.isTrue(results);
|
433
540
|
});
|
434
541
|
|
@@ -443,6 +550,8 @@ describe('plugin-meetings', () => {
|
|
443
550
|
assert.callCount(ControlsOptionsUtil.canUpdateShareControl, 0);
|
444
551
|
assert.callCount(ControlsOptionsUtil.canUpdateVideo, 0);
|
445
552
|
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
553
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
554
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
446
555
|
assert.isTrue(results);
|
447
556
|
});
|
448
557
|
|
@@ -457,6 +566,8 @@ describe('plugin-meetings', () => {
|
|
457
566
|
assert.callCount(ControlsOptionsUtil.canUpdateShareControl, 0);
|
458
567
|
assert.callCount(ControlsOptionsUtil.canUpdateVideo, 0);
|
459
568
|
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
569
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
570
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
460
571
|
assert.isTrue(results);
|
461
572
|
});
|
462
573
|
|
@@ -471,6 +582,8 @@ describe('plugin-meetings', () => {
|
|
471
582
|
assert.calledWith(ControlsOptionsUtil.canUpdateShareControl, displayHints);
|
472
583
|
assert.callCount(ControlsOptionsUtil.canUpdateVideo, 0);
|
473
584
|
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
585
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
586
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
474
587
|
assert.isTrue(results);
|
475
588
|
});
|
476
589
|
|
@@ -485,6 +598,8 @@ describe('plugin-meetings', () => {
|
|
485
598
|
assert.callCount(ControlsOptionsUtil.canUpdateShareControl, 0);
|
486
599
|
assert.calledWith(ControlsOptionsUtil.canUpdateVideo, control, displayHints);
|
487
600
|
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
601
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
602
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
488
603
|
assert.isTrue(results);
|
489
604
|
});
|
490
605
|
|
@@ -503,6 +618,66 @@ describe('plugin-meetings', () => {
|
|
503
618
|
control,
|
504
619
|
displayHints
|
505
620
|
);
|
621
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
622
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
623
|
+
assert.isTrue(results);
|
624
|
+
});
|
625
|
+
|
626
|
+
it('should only call canUpdateAnnotation() if the scope is annotation', () => {
|
627
|
+
const control = {scope: 'annotation'};
|
628
|
+
|
629
|
+
const results = ControlsOptionsUtil.canUpdate(control, displayHints);
|
630
|
+
|
631
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAudio, 0);
|
632
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRaiseHand, 0);
|
633
|
+
assert.callCount(ControlsOptionsUtil.canUpdateReactions, 0);
|
634
|
+
assert.callCount(ControlsOptionsUtil.canUpdateShareControl, 0);
|
635
|
+
assert.callCount(ControlsOptionsUtil.canUpdateVideo, 0);
|
636
|
+
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
637
|
+
assert.calledWith(ControlsOptionsUtil.canUpdateAnnotation, control, displayHints);
|
638
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
639
|
+
assert.isTrue(results);
|
640
|
+
});
|
641
|
+
|
642
|
+
it('should only call canUpdateRemoteDesktopControl() if the scope is rdc', () => {
|
643
|
+
const control = {scope: 'rdc'};
|
644
|
+
|
645
|
+
const results = ControlsOptionsUtil.canUpdate(control, displayHints);
|
646
|
+
|
647
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAudio, 0);
|
648
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRaiseHand, 0);
|
649
|
+
assert.callCount(ControlsOptionsUtil.canUpdateReactions, 0);
|
650
|
+
assert.callCount(ControlsOptionsUtil.canUpdateShareControl, 0);
|
651
|
+
assert.callCount(ControlsOptionsUtil.canUpdateVideo, 0);
|
652
|
+
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
653
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
654
|
+
assert.calledWith(
|
655
|
+
ControlsOptionsUtil.canUpdateRemoteDesktopControl,
|
656
|
+
control,
|
657
|
+
displayHints
|
658
|
+
);
|
659
|
+
assert.callCount(ControlsOptionsUtil.canUpdatePollingQA, 0);
|
660
|
+
assert.isTrue(results);
|
661
|
+
});
|
662
|
+
|
663
|
+
it('should only call canUpdatePollingQA() if the scope is pollingQA', () => {
|
664
|
+
const control = {scope: 'pollingQA'};
|
665
|
+
|
666
|
+
const results = ControlsOptionsUtil.canUpdate(control, displayHints);
|
667
|
+
|
668
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAudio, 0);
|
669
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRaiseHand, 0);
|
670
|
+
assert.callCount(ControlsOptionsUtil.canUpdateReactions, 0);
|
671
|
+
assert.callCount(ControlsOptionsUtil.canUpdateShareControl, 0);
|
672
|
+
assert.callCount(ControlsOptionsUtil.canUpdateVideo, 0);
|
673
|
+
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
674
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
675
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
676
|
+
assert.calledWith(
|
677
|
+
ControlsOptionsUtil.canUpdatePollingQA,
|
678
|
+
control,
|
679
|
+
displayHints
|
680
|
+
);
|
506
681
|
assert.isTrue(results);
|
507
682
|
});
|
508
683
|
|
@@ -517,6 +692,9 @@ describe('plugin-meetings', () => {
|
|
517
692
|
assert.callCount(ControlsOptionsUtil.canUpdateShareControl, 0);
|
518
693
|
assert.callCount(ControlsOptionsUtil.canUpdateVideo, 0);
|
519
694
|
assert.callCount(ControlsOptionsUtil.canUpdateViewTheParticipantsList, 0);
|
695
|
+
assert.callCount(ControlsOptionsUtil.canUpdateAnnotation, 0);
|
696
|
+
assert.callCount(ControlsOptionsUtil.canUpdateRemoteDesktopControl, 0);
|
697
|
+
assert.callCount(ControlsOptionsUtil.canUpdatePollingQA, 0);
|
520
698
|
assert.isFalse(results);
|
521
699
|
});
|
522
700
|
});
|
@@ -22,16 +22,54 @@ describe('plugin-meetings', () => {
|
|
22
22
|
});
|
23
23
|
|
24
24
|
describe('#initialize', () => {
|
25
|
+
beforeEach(() => {
|
26
|
+
interpretation.querySupportLanguages = sinon.stub();
|
27
|
+
interpretation.set({
|
28
|
+
canManageInterpreters: undefined,
|
29
|
+
hostSIEnabled: undefined,
|
30
|
+
locusUrl: undefined
|
31
|
+
});
|
32
|
+
});
|
33
|
+
|
34
|
+
afterEach(() => {
|
35
|
+
interpretation.querySupportLanguages.reset();
|
36
|
+
});
|
37
|
+
|
25
38
|
it('creates SimultaneousInterpretation as expected', () => {
|
26
39
|
assert.equal(interpretation.namespace, 'Meetings');
|
27
40
|
});
|
28
41
|
it('call querySupportLanguages correctly when meet the conditions', () => {
|
29
|
-
interpretation.querySupportLanguages = sinon.stub();
|
30
42
|
interpretation.set({
|
31
43
|
canManageInterpreters: true,
|
44
|
+
hostSIEnabled: true,
|
45
|
+
locusUrl: "MOCK_LOCUS_URL"
|
32
46
|
});
|
33
47
|
assert.called(interpretation.querySupportLanguages);
|
34
48
|
});
|
49
|
+
|
50
|
+
it('does not call querySupportLanguages when canManageInterpreters is not set', () => {
|
51
|
+
interpretation.set({
|
52
|
+
hostSIEnabled: true,
|
53
|
+
locusUrl: "MOCK_LOCUS_URL"
|
54
|
+
});
|
55
|
+
assert.notCalled(interpretation.querySupportLanguages);
|
56
|
+
});
|
57
|
+
|
58
|
+
it('does not call querySupportLanguages when hostSIEnabled is not set', () => {
|
59
|
+
interpretation.set({
|
60
|
+
canManageInterpreters: true,
|
61
|
+
locusUrl: "MOCK_LOCUS_URL"
|
62
|
+
});
|
63
|
+
assert.notCalled(interpretation.querySupportLanguages);
|
64
|
+
});
|
65
|
+
|
66
|
+
it('does not call querySupportLanguages when locusUrl is not set', () => {
|
67
|
+
interpretation.set({
|
68
|
+
canManageInterpreters: true,
|
69
|
+
hostSIEnabled: true,
|
70
|
+
});
|
71
|
+
assert.notCalled(interpretation.querySupportLanguages);
|
72
|
+
});
|
35
73
|
});
|
36
74
|
|
37
75
|
describe('#cleanUp', () => {
|
@@ -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,33 @@ 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}};
|
162
|
+
|
163
|
+
const parsedControls = ControlsUtils.parse(newControls);
|
143
164
|
|
165
|
+
assert.equal(parsedControls.rdcControl.enabled, newControls.rdcControl.enabled);
|
166
|
+
});
|
167
|
+
|
168
|
+
it('should parse the pollingQAControl control', () => {
|
169
|
+
const newControls = {pollingQAControl: {enabled: true}};
|
170
|
+
|
171
|
+
const parsedControls = ControlsUtils.parse(newControls);
|
172
|
+
|
173
|
+
assert.equal(parsedControls.pollingQAControl.enabled, newControls.pollingQAControl.enabled);
|
144
174
|
});
|
145
175
|
|
146
176
|
describe('videoEnabled', () => {
|
@@ -269,6 +299,14 @@ describe('plugin-meetings', () => {
|
|
269
299
|
assert.equal(updates.hasPracticeSessionEnabledChanged, true);
|
270
300
|
});
|
271
301
|
|
302
|
+
it('returns hasPracticeSessionEnabledChanged = false when enabled is false and previous state is false', () => {
|
303
|
+
const newControls = {practiceSession: {enabled: false}};
|
304
|
+
|
305
|
+
const {updates} = ControlsUtils.getControls(defaultControls, newControls);
|
306
|
+
|
307
|
+
assert.equal(updates.hasPracticeSessionEnabledChanged, false);
|
308
|
+
});
|
309
|
+
|
272
310
|
it('returns hasEntryExitToneChanged = true when mode changed', () => {
|
273
311
|
const newControls = {
|
274
312
|
entryExitTone: {
|
@@ -365,6 +403,66 @@ describe('plugin-meetings', () => {
|
|
365
403
|
assert.equal(updates.hasManualCaptionChanged, false);
|
366
404
|
});
|
367
405
|
|
406
|
+
it('returns hasAnnotationControlChanged = true when changed', () => {
|
407
|
+
const newControls = {annotationControl: {enabled: true}};
|
408
|
+
|
409
|
+
const {updates} = ControlsUtils.getControls(defaultControls, newControls);
|
410
|
+
|
411
|
+
assert.equal(updates.hasAnnotationControlChanged, true);
|
412
|
+
});
|
413
|
+
|
414
|
+
it('returns hasRemoteDesktopControlChanged = true when changed', () => {
|
415
|
+
const newControls = {rdcControl: {enabled: true}};
|
416
|
+
|
417
|
+
const {updates} = ControlsUtils.getControls(defaultControls, newControls);
|
418
|
+
|
419
|
+
assert.equal(updates.hasRemoteDesktopControlChanged, true);
|
420
|
+
});
|
421
|
+
|
422
|
+
it('returns hasPollingQAControlChanged = true when changed', () => {
|
423
|
+
const newControls = {pollingQAControl: {enabled: true}};
|
424
|
+
|
425
|
+
const {updates} = ControlsUtils.getControls(defaultControls, newControls);
|
426
|
+
|
427
|
+
assert.equal(updates.hasPollingQAControlChanged, true);
|
428
|
+
});
|
429
|
+
|
430
|
+
it('returns false when previous spoken language is undefined and current is a invalid value', () => {
|
431
|
+
const previous = { transcribe: undefined };
|
432
|
+
const current = { transcribe: { spokenLanguage: null } };
|
433
|
+
|
434
|
+
const {updates} = ControlsUtils.getControls(previous, current);
|
435
|
+
|
436
|
+
assert.equal(updates.hasTranscribeSpokenLanguageChanged, false);
|
437
|
+
});
|
438
|
+
|
439
|
+
it('detects spoken language change when previous is undefined and current is a valid value', () => {
|
440
|
+
const previous = { transcribe: undefined };
|
441
|
+
const current = { transcribe: { spokenLanguage: 'en-US' } };
|
442
|
+
|
443
|
+
const {updates} = ControlsUtils.getControls(previous, current);
|
444
|
+
|
445
|
+
assert.equal(updates.hasTranscribeSpokenLanguageChanged, true);
|
446
|
+
});
|
447
|
+
|
448
|
+
it('returns false when spoken language changes to a same value', () => {
|
449
|
+
const previous = { transcribe: {caption: true, spokenLanguage: 'en-US' } };
|
450
|
+
const current = { transcribe: {caption: true, spokenLanguage: 'en-US' } };
|
451
|
+
|
452
|
+
const {updates} = ControlsUtils.getControls(previous, current);
|
453
|
+
|
454
|
+
assert.equal(updates.hasTranscribeSpokenLanguageChanged, false);
|
455
|
+
});
|
456
|
+
|
457
|
+
it('returns true when spoken language changes to a different value', () => {
|
458
|
+
const previous = { transcribe: {caption: true, spokenLanguage: 'en-US' } };
|
459
|
+
const current = { transcribe: {caption: true, spokenLanguage: 'fr-FR' } };
|
460
|
+
|
461
|
+
const {updates} = ControlsUtils.getControls(previous, current);
|
462
|
+
|
463
|
+
assert.equal(updates.hasTranscribeSpokenLanguageChanged, true);
|
464
|
+
});
|
465
|
+
|
368
466
|
describe('videoEnabled', () => {
|
369
467
|
const testVideoEnabled = (oldControls, newControls, updatedProperty) => {
|
370
468
|
const result = ControlsUtils.getControls(oldControls, newControls);
|
@@ -424,28 +522,76 @@ describe('plugin-meetings', () => {
|
|
424
522
|
|
425
523
|
describe('getSessionSwitchStatus', () => {
|
426
524
|
it('if no breakout control, return switch status both false', () => {
|
427
|
-
const
|
428
|
-
const
|
429
|
-
assert.deepEqual(controlsUtils.getSessionSwitchStatus(
|
525
|
+
const oldLocus = {};
|
526
|
+
const newLocus = {};
|
527
|
+
assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldLocus, newLocus), {
|
430
528
|
isReturnToMain: false, isJoinToBreakout: false
|
431
529
|
});
|
432
530
|
});
|
433
531
|
|
434
532
|
it('if switch session from breakout to main, return isReturnToMain as true', () => {
|
435
|
-
const
|
436
|
-
const
|
437
|
-
assert.deepEqual(controlsUtils.getSessionSwitchStatus(
|
533
|
+
const oldLocus = {controls: {breakout: {sessionType: 'BREAKOUT'}}};
|
534
|
+
const newLocus = {controls: {breakout: {sessionType: 'MAIN'}}};
|
535
|
+
assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldLocus, newLocus), {
|
438
536
|
isReturnToMain: true, isJoinToBreakout: false
|
439
537
|
});
|
440
538
|
});
|
441
539
|
|
442
540
|
it('if switch session from main to breakout, return isJoinToBreakout as true', () => {
|
443
|
-
const
|
444
|
-
const
|
445
|
-
assert.deepEqual(controlsUtils.getSessionSwitchStatus(
|
541
|
+
const oldLocus = {controls: {breakout: {sessionType: 'MAIN'}}};
|
542
|
+
const newLocus = {controls: {breakout: {sessionType: 'BREAKOUT'}}};
|
543
|
+
assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldLocus, newLocus), {
|
446
544
|
isReturnToMain: false, isJoinToBreakout: true
|
447
545
|
});
|
448
546
|
});
|
547
|
+
|
548
|
+
it('if needUseCache conditions are met, return isJoinToBreakout as true', () => {
|
549
|
+
const oldLocus = {
|
550
|
+
self: { isCreator: true },
|
551
|
+
controls: { breakout: { sessionType: BREAKOUTS.SESSION_TYPES.MAIN} },
|
552
|
+
};
|
553
|
+
|
554
|
+
const newLocus = {
|
555
|
+
participants: [
|
556
|
+
{ isCreator: true, state: MEETING_STATE.STATES.JOINED },
|
557
|
+
],
|
558
|
+
controls: {
|
559
|
+
breakout: {
|
560
|
+
sessionType: BREAKOUTS.SESSION_TYPES.MAIN,
|
561
|
+
groups: [{ id: 'group1' }]
|
562
|
+
},
|
563
|
+
},
|
564
|
+
};
|
565
|
+
|
566
|
+
assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldLocus, newLocus), {
|
567
|
+
isReturnToMain: true,
|
568
|
+
isJoinToBreakout: false
|
569
|
+
});
|
570
|
+
});
|
571
|
+
|
572
|
+
it('if needUseCache conditions are not met, return newLocus and isReturnToMain as false', () => {
|
573
|
+
const oldLocus = {
|
574
|
+
self: { isCreator: false },
|
575
|
+
controls: { breakout: { sessionType: BREAKOUTS.SESSION_TYPES.BREAKOUT} },
|
576
|
+
};
|
577
|
+
|
578
|
+
const newLocus = {
|
579
|
+
participants: [
|
580
|
+
{ isCreator: true, state: MEETING_STATE.STATES.JOINED },
|
581
|
+
],
|
582
|
+
controls: {
|
583
|
+
breakout: {
|
584
|
+
sessionType: BREAKOUTS.SESSION_TYPES.BREAKOUT,
|
585
|
+
groups: []
|
586
|
+
},
|
587
|
+
},
|
588
|
+
};
|
589
|
+
|
590
|
+
assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldLocus, newLocus), {
|
591
|
+
isReturnToMain: false,
|
592
|
+
isJoinToBreakout: false
|
593
|
+
});
|
594
|
+
});
|
449
595
|
});
|
450
596
|
|
451
597
|
describe('#isMainSessionDTO', () => {
|