@webex/plugin-meetings 3.0.0-beta.3 → 3.0.0-beta.300
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 +46 -8
- package/UPGRADING.md +9 -9
- package/browsers.js +19 -24
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +216 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.js +23 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +1048 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.js +78 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.js +67 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.js +1 -20
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +5 -20
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +0 -7
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +10 -24
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +11 -24
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +12 -25
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +10 -24
- package/dist/common/errors/media.js.map +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/parameter.js +5 -33
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +10 -24
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +9 -23
- package/dist/common/errors/permission.js.map +1 -1
- 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/reconnection-in-progress.js +0 -17
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +10 -24
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +10 -24
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +54 -48
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +5 -25
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +0 -22
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +0 -23
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +0 -12
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +0 -15
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +0 -4
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -8
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +41 -60
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +28 -23
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +9 -15
- package/dist/config.js.map +1 -1
- package/dist/constants.js +315 -68
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +14 -0
- package/dist/controls-options-manager/constants.js.map +1 -0
- package/dist/controls-options-manager/enums.js +27 -0
- package/dist/controls-options-manager/enums.js.map +1 -0
- package/dist/controls-options-manager/index.js +297 -0
- package/dist/controls-options-manager/index.js.map +1 -0
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.js +319 -0
- package/dist/controls-options-manager/util.js.map +1 -0
- package/dist/index.js +114 -17
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +366 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +101 -29
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -26
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +0 -15
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +4 -12
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +561 -246
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +10 -38
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +68 -38
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +314 -163
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +110 -92
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +103 -231
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +137 -222
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +2 -9
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +505 -495
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +93 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +4624 -3740
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +292 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +249 -184
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +400 -346
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +21 -31
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +598 -586
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +6 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +87 -39
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +349 -283
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +3 -15
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +98 -183
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +143 -234
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +26 -19
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +813 -596
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +26 -41
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +183 -156
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +135 -85
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +25 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +158 -88
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +13 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +194 -204
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +113 -68
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +324 -259
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +14 -7
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +11 -558
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +263 -50
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +58 -65
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +76 -95
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +62 -76
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +66 -43
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +536 -439
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +233 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/networkQualityMonitor/index.js +40 -59
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +21 -45
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +1 -31
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +0 -13
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js +322 -200
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +20 -26
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/constants.js +13 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.js +109 -0
- package/dist/reactions/reactions.js.map +1 -0
- package/dist/reactions/reactions.type.js +36 -0
- package/dist/reactions/reactions.type.js.map +1 -0
- package/dist/reconnection-manager/index.js +388 -476
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +17 -0
- package/dist/recording-controller/enums.js.map +1 -0
- package/dist/recording-controller/index.js +362 -0
- package/dist/recording-controller/index.js.map +1 -0
- package/dist/recording-controller/util.js +64 -0
- package/dist/recording-controller/util.js.map +1 -0
- package/dist/roap/index.js +99 -94
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +131 -135
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +151 -101
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +117 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/global.js +1 -95
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +416 -497
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +145 -88
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +22 -47
- package/dist/transcription/index.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/breakout.d.ts +8 -0
- package/dist/types/breakouts/collection.d.ts +5 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/index.d.ts +5 -0
- package/dist/types/breakouts/request.d.ts +22 -0
- package/dist/types/breakouts/utils.d.ts +15 -0
- package/dist/types/common/browser-detection.d.ts +9 -0
- package/dist/types/common/collection.d.ts +48 -0
- package/dist/types/common/config.d.ts +2 -0
- package/dist/types/common/errors/captcha-error.d.ts +15 -0
- package/dist/types/common/errors/intent-to-join.d.ts +16 -0
- package/dist/types/common/errors/join-meeting.d.ts +17 -0
- package/dist/types/common/errors/media.d.ts +15 -0
- package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/types/common/errors/parameter.d.ts +15 -0
- package/dist/types/common/errors/password-error.d.ts +15 -0
- package/dist/types/common/errors/permission.d.ts +14 -0
- package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/types/common/errors/reconnection.d.ts +15 -0
- package/dist/types/common/errors/stats.d.ts +15 -0
- package/dist/types/common/errors/webex-errors.d.ts +93 -0
- package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/types/common/events/events-scope.d.ts +17 -0
- package/dist/types/common/events/events.d.ts +12 -0
- package/dist/types/common/events/trigger-proxy.d.ts +2 -0
- package/dist/types/common/events/util.d.ts +2 -0
- package/dist/types/common/logs/logger-config.d.ts +2 -0
- package/dist/types/common/logs/logger-proxy.d.ts +2 -0
- package/dist/types/common/logs/request.d.ts +36 -0
- package/dist/types/common/queue.d.ts +34 -0
- package/dist/types/config.d.ts +71 -0
- package/dist/types/constants.d.ts +1066 -0
- package/dist/types/controls-options-manager/constants.d.ts +4 -0
- package/dist/types/controls-options-manager/enums.d.ts +15 -0
- package/dist/types/controls-options-manager/index.d.ts +136 -0
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/controlsUtils.d.ts +2 -0
- package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/types/locus-info/fullState.d.ts +2 -0
- package/dist/types/locus-info/hostUtils.d.ts +2 -0
- package/dist/types/locus-info/index.d.ts +322 -0
- package/dist/types/locus-info/infoUtils.d.ts +2 -0
- package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/types/locus-info/parser.d.ts +273 -0
- package/dist/types/locus-info/selfUtils.d.ts +2 -0
- package/dist/types/media/index.d.ts +34 -0
- package/dist/types/media/properties.d.ts +93 -0
- package/dist/types/media/util.d.ts +2 -0
- package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +163 -0
- package/dist/types/meeting/index.d.ts +1676 -0
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +184 -0
- package/dist/types/meeting/request.d.ts +290 -0
- package/dist/types/meeting/request.type.d.ts +11 -0
- package/dist/types/meeting/state.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +102 -0
- package/dist/types/meeting-info/collection.d.ts +20 -0
- package/dist/types/meeting-info/index.d.ts +69 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +123 -0
- package/dist/types/meeting-info/request.d.ts +22 -0
- package/dist/types/meeting-info/util.d.ts +2 -0
- package/dist/types/meeting-info/utilv2.d.ts +2 -0
- package/dist/types/meetings/collection.d.ts +31 -0
- package/dist/types/meetings/index.d.ts +367 -0
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/meetings/request.d.ts +27 -0
- package/dist/types/meetings/util.d.ts +18 -0
- package/dist/types/member/index.d.ts +160 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/member/util.d.ts +2 -0
- package/dist/types/members/collection.d.ts +29 -0
- package/dist/types/members/index.d.ts +353 -0
- package/dist/types/members/request.d.ts +114 -0
- package/dist/types/members/types.d.ts +25 -0
- package/dist/types/members/util.d.ts +215 -0
- package/dist/types/metrics/constants.d.ts +65 -0
- package/dist/types/metrics/index.d.ts +45 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
- package/dist/types/multistream/receiveSlot.d.ts +68 -0
- package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/types/multistream/remoteMedia.d.ts +72 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +285 -0
- package/dist/types/multistream/sendSlotManager.d.ts +61 -0
- package/dist/types/networkQualityMonitor/index.d.ts +70 -0
- package/dist/types/personal-meeting-room/index.d.ts +47 -0
- package/dist/types/personal-meeting-room/request.d.ts +14 -0
- package/dist/types/personal-meeting-room/util.d.ts +2 -0
- package/dist/types/reachability/index.d.ts +194 -0
- package/dist/types/reachability/request.d.ts +39 -0
- package/dist/types/reactions/constants.d.ts +3 -0
- package/dist/types/reactions/reactions.d.ts +4 -0
- package/dist/types/reactions/reactions.type.d.ts +52 -0
- package/dist/types/reconnection-manager/index.d.ts +126 -0
- package/dist/types/recording-controller/enums.d.ts +7 -0
- package/dist/types/recording-controller/index.d.ts +207 -0
- package/dist/types/recording-controller/util.d.ts +14 -0
- package/dist/types/roap/index.d.ts +78 -0
- package/dist/types/roap/request.d.ts +39 -0
- package/dist/types/roap/turnDiscovery.d.ts +92 -0
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +47 -0
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +201 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
- package/dist/types/transcription/index.d.ts +64 -0
- 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/internal-README.md +7 -6
- package/package.json +29 -21
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +220 -0
- package/src/breakouts/breakout.ts +188 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +925 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
- package/src/common/collection.ts +9 -7
- package/src/common/{config.js → config.ts} +1 -1
- package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
- package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
- package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
- package/src/common/errors/{media.js → media.ts} +11 -7
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/parameter.ts +11 -7
- package/src/common/errors/{password-error.js → password-error.ts} +11 -7
- package/src/common/errors/{permission.js → permission.ts} +10 -6
- package/src/common/errors/reclaim-host-role-errors.ts +134 -0
- package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
- package/src/common/errors/{stats.js → stats.ts} +11 -7
- package/src/common/errors/{webex-errors.js → webex-errors.ts} +51 -8
- package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
- package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
- package/src/common/events/{events.js → events.ts} +5 -1
- package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
- package/src/common/events/{util.js → util.ts} +2 -3
- package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
- package/src/common/logs/logger-proxy.ts +44 -0
- package/src/common/logs/{request.js → request.ts} +26 -9
- package/src/common/queue.ts +22 -9
- package/src/{config.js → config.ts} +18 -19
- package/src/constants.ts +260 -22
- package/src/controls-options-manager/constants.ts +5 -0
- package/src/controls-options-manager/enums.ts +18 -0
- package/src/controls-options-manager/index.ts +278 -0
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +300 -0
- package/src/index.ts +40 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +222 -0
- package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
- package/src/locus-info/{fullState.js → fullState.ts} +16 -12
- package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
- package/src/locus-info/{index.js → index.ts} +557 -119
- package/src/locus-info/{infoUtils.js → infoUtils.ts} +29 -10
- package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +81 -17
- package/src/locus-info/{parser.js → parser.ts} +303 -104
- package/src/locus-info/{selfUtils.js → selfUtils.ts} +199 -68
- package/src/media/index.ts +458 -0
- package/src/media/properties.ts +283 -0
- package/src/media/{util.js → util.ts} +2 -2
- package/src/mediaQualityMetrics/config.ts +384 -0
- package/src/meeting/in-meeting-actions.ts +191 -3
- package/src/meeting/index.ts +7882 -0
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +451 -0
- package/src/meeting/{request.js → request.ts} +421 -220
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/{state.js → state.ts} +50 -35
- package/src/meeting/util.ts +697 -0
- package/src/meeting-info/{collection.js → collection.ts} +6 -2
- package/src/meeting-info/index.ts +210 -0
- package/src/meeting-info/meeting-info-v2.ts +429 -0
- package/src/meeting-info/{request.js → request.ts} +14 -4
- package/src/meeting-info/{util.js → util.ts} +60 -51
- package/src/meeting-info/{utilv2.js → utilv2.ts} +78 -71
- package/src/meetings/{collection.js → collection.ts} +26 -3
- package/src/meetings/index.ts +1470 -0
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/{request.js → request.ts} +34 -25
- package/src/meetings/{util.js → util.ts} +132 -37
- package/src/member/{index.js → index.ts} +160 -56
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +397 -0
- package/src/members/{collection.js → collection.ts} +10 -2
- package/src/members/{index.js → index.ts} +351 -146
- package/src/members/request.ts +255 -0
- package/src/members/types.ts +29 -0
- package/src/members/util.ts +353 -0
- package/src/metrics/{constants.js → constants.ts} +12 -6
- package/src/metrics/index.ts +73 -0
- package/src/multistream/mediaRequestManager.ts +337 -63
- package/src/multistream/receiveSlot.ts +69 -26
- package/src/multistream/receiveSlotManager.ts +66 -42
- package/src/multistream/remoteMedia.ts +40 -5
- package/src/multistream/remoteMediaGroup.ts +63 -3
- package/src/multistream/remoteMediaManager.ts +300 -66
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
- package/src/personal-meeting-room/{index.js → index.ts} +28 -19
- package/src/personal-meeting-room/{request.js → request.ts} +13 -4
- package/src/personal-meeting-room/{util.js → util.ts} +4 -4
- package/src/reachability/index.ts +671 -0
- package/src/reachability/request.ts +50 -35
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +104 -0
- package/src/reactions/reactions.type.ts +62 -0
- package/src/reconnection-manager/{index.js → index.ts} +258 -138
- package/src/recording-controller/enums.ts +8 -0
- package/src/recording-controller/index.ts +332 -0
- package/src/recording-controller/util.ts +75 -0
- package/src/roap/{index.js → index.ts} +127 -79
- package/src/roap/request.ts +153 -0
- package/src/roap/turnDiscovery.ts +109 -47
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +100 -0
- package/src/statsAnalyzer/global.ts +37 -0
- package/src/statsAnalyzer/index.ts +1250 -0
- package/src/statsAnalyzer/mqaUtil.ts +292 -0
- package/src/transcription/{index.js → index.ts} +46 -39
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +790 -530
- package/test/integration/spec/space-meeting.js +391 -204
- package/test/integration/spec/transcription.js +7 -8
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +237 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1790 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- package/test/unit/spec/common/browser-detection.js +9 -28
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +287 -0
- package/test/unit/spec/controls-options-manager/util.js +582 -0
- package/test/unit/spec/fixture/locus.js +93 -90
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +325 -32
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +1390 -17
- package/test/unit/spec/locus-info/infoUtils.js +71 -40
- package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
- package/test/unit/spec/locus-info/lib/SeqCmp.json +529 -685
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
- package/test/unit/spec/locus-info/parser.js +119 -44
- package/test/unit/spec/locus-info/selfConstant.js +120 -103
- package/test/unit/spec/locus-info/selfUtils.js +296 -12
- package/test/unit/spec/media/index.ts +128 -77
- package/test/unit/spec/media/properties.ts +11 -11
- package/test/unit/spec/meeting/in-meeting-actions.ts +92 -3
- package/test/unit/spec/meeting/index.js +7433 -2752
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +420 -211
- package/test/unit/spec/meeting/request.js +545 -79
- package/test/unit/spec/meeting/utils.js +722 -174
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +624 -76
- package/test/unit/spec/meeting-info/request.js +7 -9
- package/test/unit/spec/meeting-info/util.js +11 -12
- package/test/unit/spec/meeting-info/utilv2.js +131 -74
- package/test/unit/spec/meetings/collection.js +15 -1
- package/test/unit/spec/meetings/index.js +1365 -377
- package/test/unit/spec/meetings/utils.js +216 -14
- package/test/unit/spec/member/index.js +61 -7
- package/test/unit/spec/member/util.js +526 -26
- package/test/unit/spec/members/index.js +536 -55
- package/test/unit/spec/members/request.js +228 -40
- package/test/unit/spec/members/utils.js +217 -4
- package/test/unit/spec/metrics/index.js +12 -66
- package/test/unit/spec/multistream/mediaRequestManager.ts +1012 -109
- package/test/unit/spec/multistream/receiveSlot.ts +77 -18
- package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
- package/test/unit/spec/multistream/remoteMedia.ts +40 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +738 -65
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/networkQualityMonitor/index.js +24 -18
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
- package/test/unit/spec/reachability/index.ts +598 -26
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reconnection-manager/index.js +181 -12
- package/test/unit/spec/recording-controller/index.js +307 -0
- package/test/unit/spec/recording-controller/util.js +229 -0
- package/test/unit/spec/roap/index.ts +179 -64
- package/test/unit/spec/roap/request.ts +232 -0
- package/test/unit/spec/roap/turnDiscovery.ts +123 -58
- package/test/unit/spec/rtcMetrics/index.ts +73 -0
- package/test/unit/spec/stats-analyzer/index.js +199 -60
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/cmr.js +44 -42
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +63 -99
- package/test/utils/webex-config.js +22 -18
- package/test/utils/webex-test-users.js +57 -50
- package/tsconfig.json +6 -0
- package/dist/media/internal-media-core-wrapper.js +0 -22
- package/dist/media/internal-media-core-wrapper.js.map +0 -1
- package/dist/meeting/effectsState.js +0 -327
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -301
- package/dist/metrics/config.js.map +0 -1
- package/dist/multistream/multistreamMedia.js +0 -116
- package/dist/multistream/multistreamMedia.js.map +0 -1
- package/dist/peer-connection-manager/util.js +0 -124
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/src/common/logs/logger-proxy.js +0 -33
- package/src/index.js +0 -15
- package/src/locus-info/controlsUtils.js +0 -102
- package/src/media/index.js +0 -459
- package/src/media/internal-media-core-wrapper.ts +0 -9
- package/src/media/properties.js +0 -289
- package/src/mediaQualityMetrics/config.js +0 -382
- package/src/meeting/effectsState.js +0 -205
- package/src/meeting/index.js +0 -6284
- package/src/meeting/muteState.js +0 -318
- package/src/meeting/util.js +0 -506
- package/src/meeting-info/index.js +0 -131
- package/src/meeting-info/meeting-info-v2.js +0 -255
- package/src/meetings/index.js +0 -1015
- package/src/member/util.js +0 -254
- package/src/members/request.js +0 -131
- package/src/members/util.js +0 -258
- package/src/metrics/config.js +0 -324
- package/src/metrics/index.js +0 -530
- package/src/multistream/multistreamMedia.ts +0 -92
- package/src/peer-connection-manager/util.ts +0 -117
- package/src/reachability/index.js +0 -464
- package/src/roap/request.js +0 -127
- package/src/statsAnalyzer/global.js +0 -133
- package/src/statsAnalyzer/index.js +0 -1006
- package/src/statsAnalyzer/mqaUtil.js +0 -173
- package/test/unit/spec/meeting/effectsState.js +0 -291
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
- /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
|
@@ -14,13 +14,21 @@ import ParameterError from '@webex/plugin-meetings/src/common/errors/parameter';
|
|
|
14
14
|
import Meetings from '@webex/plugin-meetings';
|
|
15
15
|
import Members from '@webex/plugin-meetings/src/members';
|
|
16
16
|
import MembersUtil from '@webex/plugin-meetings/src/members/util';
|
|
17
|
+
import * as MembersRequestImport from '@webex/plugin-meetings/src/members/request';
|
|
18
|
+
import Trigger from '@webex/plugin-meetings/src/common/events/trigger-proxy';
|
|
19
|
+
import {EVENT_TRIGGERS} from '@webex/plugin-meetings/src/constants';
|
|
20
|
+
import {
|
|
21
|
+
ReclaimHostEmptyWrongKeyError,
|
|
22
|
+
ReclaimHostIsHostAlreadyError,
|
|
23
|
+
ReclaimHostNotAllowedError,
|
|
24
|
+
ReclaimHostNotSupportedError,
|
|
25
|
+
} from '../../../../src/common/errors/reclaim-host-role-errors';
|
|
17
26
|
|
|
18
27
|
const {assert} = chai;
|
|
19
28
|
|
|
20
29
|
chai.use(chaiAsPromised);
|
|
21
30
|
sinon.assert.expose(chai.assert, {prefix: ''});
|
|
22
31
|
|
|
23
|
-
|
|
24
32
|
describe('plugin-meetings', () => {
|
|
25
33
|
let webex;
|
|
26
34
|
let url1;
|
|
@@ -34,37 +42,33 @@ describe('plugin-meetings', () => {
|
|
|
34
42
|
id: '6eb08f8b-bf69-3251-a126-b161bead2d21',
|
|
35
43
|
phoneNumber: '+18578675309',
|
|
36
44
|
isExternal: true,
|
|
37
|
-
primaryDisplayString: '+18578675309'
|
|
45
|
+
primaryDisplayString: '+18578675309',
|
|
38
46
|
},
|
|
39
47
|
devices: [
|
|
40
48
|
{
|
|
41
49
|
url: 'https://fakeURL.com',
|
|
42
50
|
deviceType: 'SIP',
|
|
43
51
|
state: 'JOINED',
|
|
44
|
-
intents: [
|
|
45
|
-
null
|
|
46
|
-
],
|
|
52
|
+
intents: [null],
|
|
47
53
|
correlationId: '1234',
|
|
48
54
|
provisionalUrl: 'dialout:///fake',
|
|
49
|
-
isSparkPstn: true
|
|
55
|
+
isSparkPstn: true,
|
|
50
56
|
},
|
|
51
57
|
{
|
|
52
58
|
url: 'dialout:///fakeagain',
|
|
53
59
|
deviceType: 'PROVISIONAL',
|
|
54
60
|
state: 'JOINED',
|
|
55
|
-
intents: [
|
|
56
|
-
null
|
|
57
|
-
],
|
|
61
|
+
intents: [null],
|
|
58
62
|
correlationId: '4321',
|
|
59
63
|
isVideoCallback: false,
|
|
60
64
|
clientUrl: 'https://fakeURL',
|
|
61
65
|
provisionalType: 'DIAL_OUT_ONLY',
|
|
62
|
-
dialingStatus: 'SUCCESS'
|
|
63
|
-
}
|
|
66
|
+
dialingStatus: 'SUCCESS',
|
|
67
|
+
},
|
|
64
68
|
],
|
|
65
69
|
status: {
|
|
66
70
|
audioStatus: 'SENDRECV',
|
|
67
|
-
videoStatus: 'INACTIVE'
|
|
71
|
+
videoStatus: 'INACTIVE',
|
|
68
72
|
},
|
|
69
73
|
id: 'abc-123-abc-123',
|
|
70
74
|
guest: true,
|
|
@@ -72,51 +76,70 @@ describe('plugin-meetings', () => {
|
|
|
72
76
|
moderator: false,
|
|
73
77
|
panelist: false,
|
|
74
78
|
moveToLobbyNotAllowed: true,
|
|
75
|
-
deviceUrl: 'https://fakeDeviceurl'
|
|
79
|
+
deviceUrl: 'https://fakeDeviceurl',
|
|
76
80
|
},
|
|
77
81
|
id: 'abc-123-abc-123',
|
|
78
82
|
status: 'IN_MEETING',
|
|
79
83
|
type: 'MEETING',
|
|
80
|
-
isModerator: false
|
|
81
|
-
}
|
|
84
|
+
isModerator: false,
|
|
85
|
+
},
|
|
82
86
|
};
|
|
83
87
|
|
|
84
|
-
|
|
85
88
|
describe('members', () => {
|
|
86
89
|
const sandbox = sinon.createSandbox();
|
|
87
90
|
let createMembers;
|
|
91
|
+
let meeting;
|
|
92
|
+
let membersRequestSpy;
|
|
88
93
|
|
|
89
94
|
beforeEach(() => {
|
|
90
95
|
webex = new MockWebex({
|
|
91
96
|
children: {
|
|
92
97
|
meetings: Meetings,
|
|
93
98
|
credentials: Credentials,
|
|
94
|
-
support: Support
|
|
99
|
+
support: Support,
|
|
95
100
|
},
|
|
96
101
|
config: {
|
|
97
102
|
credentials: {
|
|
98
|
-
client_id: 'mock-client-id'
|
|
103
|
+
client_id: 'mock-client-id',
|
|
99
104
|
},
|
|
100
105
|
meetings: {
|
|
101
106
|
reconnection: {
|
|
102
|
-
enabled: false
|
|
107
|
+
enabled: false,
|
|
103
108
|
},
|
|
104
109
|
mediaSettings: {},
|
|
105
110
|
metrics: {},
|
|
106
|
-
stats: {}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
111
|
+
stats: {},
|
|
112
|
+
},
|
|
113
|
+
},
|
|
109
114
|
});
|
|
110
115
|
|
|
111
116
|
url1 = `https://example.com/${uuid.v4()}`;
|
|
112
117
|
|
|
113
|
-
|
|
118
|
+
membersRequestSpy = sinon.spy(MembersRequestImport, 'default');
|
|
119
|
+
|
|
120
|
+
meeting = {
|
|
121
|
+
request: sinon.mock().returns(Promise.resolve()),
|
|
122
|
+
locusInfo: {
|
|
123
|
+
sequence: {}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
createMembers = (options) => new Members({locusUrl: options.url, meeting}, {parent: webex});
|
|
114
128
|
});
|
|
115
129
|
|
|
116
130
|
afterEach(() => {
|
|
131
|
+
membersRequestSpy.restore();
|
|
117
132
|
sandbox.restore();
|
|
118
133
|
});
|
|
119
134
|
|
|
135
|
+
describe('constructor', () => {
|
|
136
|
+
it('passes the meeting to the MembersRequest', () => {
|
|
137
|
+
createMembers({});
|
|
138
|
+
|
|
139
|
+
assert.calledOnceWithExactly(membersRequestSpy, {meeting}, {parent: webex});
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
|
|
120
143
|
describe('#addMembers', () => {
|
|
121
144
|
it('should invoke isInvalidInvitee and generateAddMemberOptions from MembersUtil when addMember is called with valid params', async () => {
|
|
122
145
|
sandbox.spy(MembersUtil, 'isInvalidInvitee');
|
|
@@ -136,6 +159,128 @@ describe('plugin-meetings', () => {
|
|
|
136
159
|
});
|
|
137
160
|
});
|
|
138
161
|
|
|
162
|
+
describe('#admitMembers', () => {
|
|
163
|
+
let members;
|
|
164
|
+
beforeEach(() => {
|
|
165
|
+
members = createMembers({url: url1});
|
|
166
|
+
members.membersRequest.admitMember = sinon.stub().returns(Promise.resolve(true));
|
|
167
|
+
});
|
|
168
|
+
it('should return error if param memberIds is not provided', async () => {
|
|
169
|
+
let error;
|
|
170
|
+
await members.admitMembers().catch((e) => {
|
|
171
|
+
error = e;
|
|
172
|
+
});
|
|
173
|
+
assert.deepEqual(error, new ParameterError('No member ids provided to admit.'));
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
it('should call membersRequest.admitMember as expected', async () => {
|
|
177
|
+
await members.admitMembers(['uuid']);
|
|
178
|
+
const arg1 = members.membersRequest.admitMember.getCall(0).args[0];
|
|
179
|
+
assert.equal(arg1.sessionLocusUrls, undefined);
|
|
180
|
+
assert.equal(arg1.locusUrl.includes('https://example.com/'), true);
|
|
181
|
+
assert.deepEqual(arg1.memberIds, ['uuid']);
|
|
182
|
+
|
|
183
|
+
const sessionLocusUrls = {
|
|
184
|
+
authorizingLocusUrl: 'authorizingLocusUrl',
|
|
185
|
+
mainLocusUrl: 'mainLocusUrl',
|
|
186
|
+
};
|
|
187
|
+
await members.admitMembers(['uuid'], sessionLocusUrls);
|
|
188
|
+
const arg2 = members.membersRequest.admitMember.getCall(1).args[0];
|
|
189
|
+
assert.equal(arg2.sessionLocusUrls, sessionLocusUrls);
|
|
190
|
+
assert.equal(arg1.locusUrl.includes('https://example.com/'), true);
|
|
191
|
+
assert.deepEqual(arg1.memberIds, ['uuid']);
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
describe('#muteMember', () => {
|
|
196
|
+
const testMuteMember = async (mute, isAudio) => {
|
|
197
|
+
sandbox.spy(MembersUtil, 'generateMuteMemberOptions');
|
|
198
|
+
|
|
199
|
+
const locusUrl = 'locus-url';
|
|
200
|
+
const members = createMembers({url: locusUrl});
|
|
201
|
+
const {membersRequest} = members;
|
|
202
|
+
sandbox.spy(membersRequest, 'muteMember');
|
|
203
|
+
|
|
204
|
+
const memberId = 'bob';
|
|
205
|
+
|
|
206
|
+
await members.muteMember(memberId, mute, isAudio);
|
|
207
|
+
assert.calledOnce(MembersUtil.generateMuteMemberOptions);
|
|
208
|
+
assert.calledWith(
|
|
209
|
+
MembersUtil.generateMuteMemberOptions,
|
|
210
|
+
memberId,
|
|
211
|
+
mute,
|
|
212
|
+
members.locusUrl,
|
|
213
|
+
isAudio
|
|
214
|
+
);
|
|
215
|
+
|
|
216
|
+
assert.calledOnce(membersRequest.muteMember);
|
|
217
|
+
assert.calledWith(membersRequest.muteMember, {memberId, muted: mute, locusUrl, isAudio});
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
it('invokes expected functions when muteMember is called for mute=true, isAudio=true', async () => {
|
|
221
|
+
testMuteMember(true, true);
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
it('invokes expected functions when muteMember is called for mute=true, isAudio=false', async () => {
|
|
225
|
+
testMuteMember(true, false);
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
it('invokes expected functions when muteMember is called for mute=false, isAudio=true', async () => {
|
|
229
|
+
testMuteMember(false, true);
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
it('invokes expected functions when muteMember is called for mute=false, isAudio=false', async () => {
|
|
233
|
+
testMuteMember(false, false);
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
describe('#clearMembers', () => {
|
|
238
|
+
it('should send clear event if clear members', () => {
|
|
239
|
+
const members = createMembers({url: url1});
|
|
240
|
+
members.membersCollection.setAll(fakeMembersCollection);
|
|
241
|
+
sinon.stub(Trigger, 'trigger');
|
|
242
|
+
members.clearMembers();
|
|
243
|
+
assert.deepEqual(members.membersCollection.members, {});
|
|
244
|
+
assert.calledWith(
|
|
245
|
+
Trigger.trigger,
|
|
246
|
+
members,
|
|
247
|
+
{
|
|
248
|
+
file: 'members',
|
|
249
|
+
function: 'clearMembers',
|
|
250
|
+
},
|
|
251
|
+
EVENT_TRIGGERS.MEMBERS_CLEAR,
|
|
252
|
+
{}
|
|
253
|
+
);
|
|
254
|
+
});
|
|
255
|
+
});
|
|
256
|
+
describe('#locusParticipantsUpdate', () => {
|
|
257
|
+
it('should send member update event with session info', () => {
|
|
258
|
+
const members = createMembers({url: url1});
|
|
259
|
+
const fakePayload = {
|
|
260
|
+
participants: {
|
|
261
|
+
forEach: sinon.stub(),
|
|
262
|
+
},
|
|
263
|
+
isReplace: true,
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
members.locusParticipantsUpdate(fakePayload);
|
|
267
|
+
|
|
268
|
+
assert.calledWith(
|
|
269
|
+
Trigger.trigger,
|
|
270
|
+
members,
|
|
271
|
+
{
|
|
272
|
+
file: 'members',
|
|
273
|
+
function: 'locusParticipantsUpdate',
|
|
274
|
+
},
|
|
275
|
+
EVENT_TRIGGERS.MEMBERS_UPDATE,
|
|
276
|
+
{
|
|
277
|
+
delta: {added: [], updated: []},
|
|
278
|
+
full: {},
|
|
279
|
+
isReplace: true,
|
|
280
|
+
}
|
|
281
|
+
);
|
|
282
|
+
});
|
|
283
|
+
});
|
|
139
284
|
describe('#sendDialPadKey', () => {
|
|
140
285
|
it('should throw a rejection when calling sendDialPadKey with no tones', async () => {
|
|
141
286
|
const members = createMembers({url: url1});
|
|
@@ -155,7 +300,13 @@ describe('plugin-meetings', () => {
|
|
|
155
300
|
|
|
156
301
|
members.membersCollection.setAll(fakeMembersCollection);
|
|
157
302
|
await members.sendDialPadKey('1', 'test1');
|
|
158
|
-
assert.calledWith(
|
|
303
|
+
assert.calledWith(
|
|
304
|
+
MembersUtil.genderateSendDTMFOptions,
|
|
305
|
+
'https://fakeURL.com',
|
|
306
|
+
'1',
|
|
307
|
+
'test1',
|
|
308
|
+
url1
|
|
309
|
+
);
|
|
159
310
|
});
|
|
160
311
|
|
|
161
312
|
it('should call the sendDialPadKey method on membersRequest if the member is valid', async () => {
|
|
@@ -191,12 +342,213 @@ describe('plugin-meetings', () => {
|
|
|
191
342
|
});
|
|
192
343
|
});
|
|
193
344
|
|
|
345
|
+
describe('#assignRoles', () => {
|
|
346
|
+
const fakeRoles = [
|
|
347
|
+
{type: 'PRESENTER', hasRole: true},
|
|
348
|
+
{type: 'MODERATOR', hasRole: false},
|
|
349
|
+
{type: 'COHOST', hasRole: true},
|
|
350
|
+
];
|
|
351
|
+
|
|
352
|
+
const resolvedValue = "it worked";
|
|
353
|
+
|
|
354
|
+
const genericMessage = 'Generic error from the API';
|
|
355
|
+
|
|
356
|
+
const setup = (locusUrl, errorCode) => {
|
|
357
|
+
const members = createMembers({url: locusUrl});
|
|
358
|
+
|
|
359
|
+
const spies = {
|
|
360
|
+
generateRoleAssignmentMemberOptions: sandbox.spy(
|
|
361
|
+
MembersUtil,
|
|
362
|
+
'generateRoleAssignmentMemberOptions'
|
|
363
|
+
),
|
|
364
|
+
};
|
|
365
|
+
|
|
366
|
+
if (errorCode) {
|
|
367
|
+
spies.assignRolesMember = sandbox.stub(members.membersRequest, 'assignRolesMember').rejects({body: {errorCode}, message: genericMessage});
|
|
368
|
+
} else {
|
|
369
|
+
spies.assignRolesMember = sandbox.stub(members.membersRequest, 'assignRolesMember').resolves(resolvedValue);
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
return {members, spies};
|
|
373
|
+
};
|
|
374
|
+
|
|
375
|
+
const checkInvalid = async (resultPromise, expectedMessage, spies) => {
|
|
376
|
+
await assert.isRejected(resultPromise, ParameterError, expectedMessage);
|
|
377
|
+
assert.notCalled(spies.generateRoleAssignmentMemberOptions);
|
|
378
|
+
assert.notCalled(spies.assignRolesMember);
|
|
379
|
+
};
|
|
380
|
+
|
|
381
|
+
const checkError = async (error, expectedMemberId, expectedRoles, expectedLocusUrl, resultPromise, expectedMessage, spies) => {
|
|
382
|
+
await assert.isRejected(resultPromise, error, expectedMessage);
|
|
383
|
+
assert.calledOnceWithExactly(
|
|
384
|
+
spies.generateRoleAssignmentMemberOptions,
|
|
385
|
+
expectedMemberId,
|
|
386
|
+
expectedRoles,
|
|
387
|
+
expectedLocusUrl
|
|
388
|
+
);
|
|
389
|
+
assert.calledOnceWithExactly(spies.assignRolesMember, {
|
|
390
|
+
memberId: expectedMemberId,
|
|
391
|
+
roles: expectedRoles,
|
|
392
|
+
locusUrl: expectedLocusUrl,
|
|
393
|
+
});
|
|
394
|
+
};
|
|
395
|
+
|
|
396
|
+
const checkValid = async (
|
|
397
|
+
resultPromise,
|
|
398
|
+
spies,
|
|
399
|
+
expectedMemberId,
|
|
400
|
+
expectedRoles,
|
|
401
|
+
expectedLocusUrl
|
|
402
|
+
) => {
|
|
403
|
+
const resolvedValue = await assert.isFulfilled(resultPromise);
|
|
404
|
+
assert.calledOnceWithExactly(
|
|
405
|
+
spies.generateRoleAssignmentMemberOptions,
|
|
406
|
+
expectedMemberId,
|
|
407
|
+
expectedRoles,
|
|
408
|
+
expectedLocusUrl
|
|
409
|
+
);
|
|
410
|
+
assert.calledOnceWithExactly(spies.assignRolesMember, {
|
|
411
|
+
memberId: expectedMemberId,
|
|
412
|
+
roles: expectedRoles,
|
|
413
|
+
locusUrl: expectedLocusUrl,
|
|
414
|
+
});
|
|
415
|
+
assert.strictEqual(resolvedValue, resolvedValue);
|
|
416
|
+
};
|
|
417
|
+
|
|
418
|
+
it('should not make a request if there is no member id', async () => {
|
|
419
|
+
const {members, spies} = setup(url1);
|
|
420
|
+
|
|
421
|
+
const resultPromise = members.assignRoles();
|
|
422
|
+
|
|
423
|
+
await checkInvalid(
|
|
424
|
+
resultPromise,
|
|
425
|
+
'The member id must be defined to assign the roles to a member.',
|
|
426
|
+
spies,
|
|
427
|
+
);
|
|
428
|
+
});
|
|
429
|
+
|
|
430
|
+
it('should not make a request if there is no locus url', async () => {
|
|
431
|
+
const {members, spies} = setup();
|
|
432
|
+
|
|
433
|
+
const resultPromise = members.assignRoles(uuid.v4());
|
|
434
|
+
|
|
435
|
+
await checkInvalid(
|
|
436
|
+
resultPromise,
|
|
437
|
+
'The associated locus url for this meetings members object must be defined.',
|
|
438
|
+
spies,
|
|
439
|
+
);
|
|
440
|
+
});
|
|
441
|
+
|
|
442
|
+
it('should not make a request if locus throws ReclaimHostNotSupportedError', async () => {
|
|
443
|
+
const memberId = uuid.v4();
|
|
444
|
+
const {members, spies} = setup(url1, 2400127);
|
|
445
|
+
|
|
446
|
+
const resultPromise = members.assignRoles(memberId, fakeRoles);
|
|
447
|
+
|
|
448
|
+
await checkError(
|
|
449
|
+
ReclaimHostNotSupportedError,
|
|
450
|
+
memberId,
|
|
451
|
+
fakeRoles,
|
|
452
|
+
url1,
|
|
453
|
+
resultPromise,
|
|
454
|
+
'Non converged meetings, PSTN or SIP users in converged meetings are not supported currently.',
|
|
455
|
+
spies,
|
|
456
|
+
);
|
|
457
|
+
});
|
|
458
|
+
|
|
459
|
+
it('should not make a request if locus throws ReclaimHostNotAllowedError', async () => {
|
|
460
|
+
const memberId = uuid.v4();
|
|
461
|
+
const {members, spies} = setup(url1, 2403135);
|
|
462
|
+
|
|
463
|
+
const resultPromise = members.assignRoles(memberId, fakeRoles);
|
|
464
|
+
|
|
465
|
+
await checkError(
|
|
466
|
+
ReclaimHostNotAllowedError,
|
|
467
|
+
memberId,
|
|
468
|
+
fakeRoles,
|
|
469
|
+
url1,
|
|
470
|
+
resultPromise,
|
|
471
|
+
'Reclaim Host Role Not Allowed For Other Participants. Participants cannot claim host role in PMR meeting, space instant meeting or escalated instant meeting. However, the original host still can reclaim host role when it manually makes another participant to be the host.',
|
|
472
|
+
spies,
|
|
473
|
+
);
|
|
474
|
+
});
|
|
475
|
+
|
|
476
|
+
it('should not make a request if locus throws ReclaimHostEmptyWrongKeyError', async () => {
|
|
477
|
+
const memberId = uuid.v4();
|
|
478
|
+
const {members, spies} = setup(url1, 2403136);
|
|
479
|
+
|
|
480
|
+
const resultPromise = members.assignRoles(memberId, fakeRoles);
|
|
481
|
+
|
|
482
|
+
await checkError(
|
|
483
|
+
ReclaimHostEmptyWrongKeyError,
|
|
484
|
+
memberId,
|
|
485
|
+
fakeRoles,
|
|
486
|
+
url1,
|
|
487
|
+
resultPromise,
|
|
488
|
+
'Host Key Not Specified Or Matched. The original host can reclaim the host role without entering the host key. However, any other person who claims the host role must enter the host key to get it.',
|
|
489
|
+
spies,
|
|
490
|
+
);
|
|
491
|
+
});
|
|
492
|
+
|
|
493
|
+
it('should not make a request if locus throws ReclaimHostIsHostAlreadyError', async () => {
|
|
494
|
+
const memberId = uuid.v4();
|
|
495
|
+
const {members, spies} = setup(url1, 2409150);
|
|
496
|
+
|
|
497
|
+
const resultPromise = members.assignRoles(memberId, fakeRoles);
|
|
498
|
+
|
|
499
|
+
await checkError(
|
|
500
|
+
ReclaimHostIsHostAlreadyError,
|
|
501
|
+
memberId,
|
|
502
|
+
fakeRoles,
|
|
503
|
+
url1,
|
|
504
|
+
resultPromise,
|
|
505
|
+
'Participant Having Host Role Already. Participant who sends request to reclaim host role has already a host role.',
|
|
506
|
+
spies,
|
|
507
|
+
);
|
|
508
|
+
});
|
|
509
|
+
|
|
510
|
+
it('should not make a request if locus throws a different error', async () => {
|
|
511
|
+
const memberId = uuid.v4();
|
|
512
|
+
const {members, spies} = setup(url1, 1234);
|
|
513
|
+
|
|
514
|
+
const resultPromise = members.assignRoles(memberId, fakeRoles);
|
|
515
|
+
|
|
516
|
+
await checkError(
|
|
517
|
+
{body: {errorCode: 1234}, message: genericMessage},
|
|
518
|
+
memberId,
|
|
519
|
+
fakeRoles,
|
|
520
|
+
url1,
|
|
521
|
+
resultPromise,
|
|
522
|
+
genericMessage,
|
|
523
|
+
spies,
|
|
524
|
+
);
|
|
525
|
+
});
|
|
526
|
+
|
|
527
|
+
it('should make the correct request when called with roles', async () => {
|
|
528
|
+
const memberId = uuid.v4();
|
|
529
|
+
const {members, spies} = setup(url1);
|
|
530
|
+
|
|
531
|
+
const resultPromise = members.assignRoles(memberId, fakeRoles);
|
|
532
|
+
|
|
533
|
+
await checkValid(
|
|
534
|
+
resultPromise,
|
|
535
|
+
spies,
|
|
536
|
+
memberId,
|
|
537
|
+
fakeRoles,
|
|
538
|
+
url1,
|
|
539
|
+
);
|
|
540
|
+
});
|
|
541
|
+
});
|
|
542
|
+
|
|
194
543
|
describe('#raiseOrLowerHand', () => {
|
|
195
544
|
const setup = (locusUrl) => {
|
|
196
545
|
const members = createMembers({url: locusUrl});
|
|
197
546
|
|
|
198
547
|
const spies = {
|
|
199
|
-
generateRaiseHandMemberOptions: sandbox.spy(
|
|
548
|
+
generateRaiseHandMemberOptions: sandbox.spy(
|
|
549
|
+
MembersUtil,
|
|
550
|
+
'generateRaiseHandMemberOptions'
|
|
551
|
+
),
|
|
200
552
|
raiseOrLowerHandMember: sandbox.spy(members.membersRequest, 'raiseOrLowerHandMember'),
|
|
201
553
|
};
|
|
202
554
|
|
|
@@ -209,10 +561,25 @@ describe('plugin-meetings', () => {
|
|
|
209
561
|
assert.notCalled(spies.raiseOrLowerHandMember);
|
|
210
562
|
};
|
|
211
563
|
|
|
212
|
-
const checkValid = async (
|
|
564
|
+
const checkValid = async (
|
|
565
|
+
resultPromise,
|
|
566
|
+
spies,
|
|
567
|
+
expectedMemberId,
|
|
568
|
+
expectedRaise,
|
|
569
|
+
expectedLocusUrl
|
|
570
|
+
) => {
|
|
213
571
|
await assert.isFulfilled(resultPromise);
|
|
214
|
-
assert.calledOnceWithExactly(
|
|
215
|
-
|
|
572
|
+
assert.calledOnceWithExactly(
|
|
573
|
+
spies.generateRaiseHandMemberOptions,
|
|
574
|
+
expectedMemberId,
|
|
575
|
+
expectedRaise,
|
|
576
|
+
expectedLocusUrl
|
|
577
|
+
);
|
|
578
|
+
assert.calledOnceWithExactly(spies.raiseOrLowerHandMember, {
|
|
579
|
+
memberId: expectedMemberId,
|
|
580
|
+
raised: expectedRaise,
|
|
581
|
+
locusUrl: expectedLocusUrl,
|
|
582
|
+
});
|
|
216
583
|
assert.strictEqual(resultPromise, spies.raiseOrLowerHandMember.getCall(0).returnValue);
|
|
217
584
|
};
|
|
218
585
|
|
|
@@ -221,7 +588,11 @@ describe('plugin-meetings', () => {
|
|
|
221
588
|
|
|
222
589
|
const resultPromise = members.raiseOrLowerHand();
|
|
223
590
|
|
|
224
|
-
await checkInvalid(
|
|
591
|
+
await checkInvalid(
|
|
592
|
+
resultPromise,
|
|
593
|
+
'The member id must be defined to raise/lower the hand of the member.',
|
|
594
|
+
spies
|
|
595
|
+
);
|
|
225
596
|
});
|
|
226
597
|
|
|
227
598
|
it('should not make a request if there is no locus url', async () => {
|
|
@@ -229,7 +600,11 @@ describe('plugin-meetings', () => {
|
|
|
229
600
|
|
|
230
601
|
const resultPromise = members.raiseOrLowerHand(uuid.v4());
|
|
231
602
|
|
|
232
|
-
await checkInvalid(
|
|
603
|
+
await checkInvalid(
|
|
604
|
+
resultPromise,
|
|
605
|
+
'The associated locus url for this meetings members object must be defined.',
|
|
606
|
+
spies
|
|
607
|
+
);
|
|
233
608
|
});
|
|
234
609
|
|
|
235
610
|
it('should make the correct request when called with raise as true', async () => {
|
|
@@ -265,7 +640,10 @@ describe('plugin-meetings', () => {
|
|
|
265
640
|
const members = createMembers({url: locusUrl});
|
|
266
641
|
|
|
267
642
|
const spies = {
|
|
268
|
-
generateLowerAllHandsMemberOptions: sandbox.spy(
|
|
643
|
+
generateLowerAllHandsMemberOptions: sandbox.spy(
|
|
644
|
+
MembersUtil,
|
|
645
|
+
'generateLowerAllHandsMemberOptions'
|
|
646
|
+
),
|
|
269
647
|
lowerAllHandsMember: sandbox.spy(members.membersRequest, 'lowerAllHandsMember'),
|
|
270
648
|
};
|
|
271
649
|
|
|
@@ -278,10 +656,22 @@ describe('plugin-meetings', () => {
|
|
|
278
656
|
assert.notCalled(spies.lowerAllHandsMember);
|
|
279
657
|
};
|
|
280
658
|
|
|
281
|
-
const checkValid = async (
|
|
659
|
+
const checkValid = async (
|
|
660
|
+
resultPromise,
|
|
661
|
+
spies,
|
|
662
|
+
expectedRequestingMemberId,
|
|
663
|
+
expectedLocusUrl
|
|
664
|
+
) => {
|
|
282
665
|
await assert.isFulfilled(resultPromise);
|
|
283
|
-
assert.calledOnceWithExactly(
|
|
284
|
-
|
|
666
|
+
assert.calledOnceWithExactly(
|
|
667
|
+
spies.generateLowerAllHandsMemberOptions,
|
|
668
|
+
expectedRequestingMemberId,
|
|
669
|
+
expectedLocusUrl
|
|
670
|
+
);
|
|
671
|
+
assert.calledOnceWithExactly(spies.lowerAllHandsMember, {
|
|
672
|
+
requestingParticipantId: expectedRequestingMemberId,
|
|
673
|
+
locusUrl: expectedLocusUrl,
|
|
674
|
+
});
|
|
285
675
|
assert.strictEqual(resultPromise, spies.lowerAllHandsMember.getCall(0).returnValue);
|
|
286
676
|
};
|
|
287
677
|
|
|
@@ -290,7 +680,11 @@ describe('plugin-meetings', () => {
|
|
|
290
680
|
|
|
291
681
|
const resultPromise = members.lowerAllHands();
|
|
292
682
|
|
|
293
|
-
await checkInvalid(
|
|
683
|
+
await checkInvalid(
|
|
684
|
+
resultPromise,
|
|
685
|
+
'The requestingMemberId must be defined to lower all hands in a meeting.',
|
|
686
|
+
spies
|
|
687
|
+
);
|
|
294
688
|
});
|
|
295
689
|
|
|
296
690
|
it('should not make a request if there is no locus url', async () => {
|
|
@@ -298,7 +692,11 @@ describe('plugin-meetings', () => {
|
|
|
298
692
|
|
|
299
693
|
const resultPromise = members.lowerAllHands(uuid.v4());
|
|
300
694
|
|
|
301
|
-
await checkInvalid(
|
|
695
|
+
await checkInvalid(
|
|
696
|
+
resultPromise,
|
|
697
|
+
'The associated locus url for this meetings members object must be defined.',
|
|
698
|
+
spies
|
|
699
|
+
);
|
|
302
700
|
});
|
|
303
701
|
|
|
304
702
|
it('should make the correct request when called with requestingMemberId', async () => {
|
|
@@ -311,19 +709,100 @@ describe('plugin-meetings', () => {
|
|
|
311
709
|
});
|
|
312
710
|
});
|
|
313
711
|
|
|
712
|
+
describe('#editDisplayName', () => {
|
|
713
|
+
const setup = (locusUrl) => {
|
|
714
|
+
const members = createMembers({url: locusUrl});
|
|
715
|
+
|
|
716
|
+
const spies = {
|
|
717
|
+
generateEditDisplayNameMemberOptions: sandbox.spy(
|
|
718
|
+
MembersUtil,
|
|
719
|
+
'generateEditDisplayNameMemberOptions'
|
|
720
|
+
),
|
|
721
|
+
editDisplayNameMember: sandbox.spy(members.membersRequest, 'editDisplayNameMember'),
|
|
722
|
+
};
|
|
723
|
+
|
|
724
|
+
return {members, spies};
|
|
725
|
+
};
|
|
726
|
+
|
|
727
|
+
const checkInvalid = async (resultPromise, expectedMessage, spies) => {
|
|
728
|
+
await assert.isRejected(resultPromise, ParameterError, expectedMessage);
|
|
729
|
+
assert.notCalled(spies.generateEditDisplayNameMemberOptions);
|
|
730
|
+
assert.notCalled(spies.editDisplayNameMember);
|
|
731
|
+
};
|
|
732
|
+
|
|
733
|
+
const checkValid = async (
|
|
734
|
+
resultPromise,
|
|
735
|
+
spies,
|
|
736
|
+
expectedMemberId,
|
|
737
|
+
expectedRequestingParticipantId,
|
|
738
|
+
expectedAlias,
|
|
739
|
+
expectedLocusUrl
|
|
740
|
+
) => {
|
|
741
|
+
await assert.isFulfilled(resultPromise);
|
|
742
|
+
assert.calledOnceWithExactly(
|
|
743
|
+
spies.generateEditDisplayNameMemberOptions,
|
|
744
|
+
expectedMemberId,
|
|
745
|
+
expectedRequestingParticipantId,
|
|
746
|
+
expectedAlias,
|
|
747
|
+
expectedLocusUrl
|
|
748
|
+
);
|
|
749
|
+
assert.calledOnceWithExactly(spies.editDisplayNameMember, {
|
|
750
|
+
memberId: expectedMemberId,
|
|
751
|
+
requestingParticipantId: expectedRequestingParticipantId,
|
|
752
|
+
alias: expectedAlias,
|
|
753
|
+
locusUrl: expectedLocusUrl,
|
|
754
|
+
});
|
|
755
|
+
assert.strictEqual(resultPromise, spies.editDisplayNameMember.getCall(0).returnValue);
|
|
756
|
+
};
|
|
757
|
+
|
|
758
|
+
it('should not make a request if there is no memberId', async () => {
|
|
759
|
+
const {members, spies} = setup(url1);
|
|
760
|
+
|
|
761
|
+
const resultPromise = members.editDisplayName();
|
|
762
|
+
|
|
763
|
+
await checkInvalid(
|
|
764
|
+
resultPromise,
|
|
765
|
+
'The member id must be defined to edit display name of the member.',
|
|
766
|
+
spies
|
|
767
|
+
);
|
|
768
|
+
});
|
|
769
|
+
|
|
770
|
+
it('should not make a request if there is no locus url', async () => {
|
|
771
|
+
const {members, spies} = setup();
|
|
772
|
+
|
|
773
|
+
const resultPromise = members.editDisplayName(uuid.v4());
|
|
774
|
+
|
|
775
|
+
await checkInvalid(
|
|
776
|
+
resultPromise,
|
|
777
|
+
'The associated locus url for this meetings members object must be defined.',
|
|
778
|
+
spies
|
|
779
|
+
);
|
|
780
|
+
});
|
|
781
|
+
|
|
782
|
+
it('should make the correct request when called with respective parameters', async () => {
|
|
783
|
+
const requestingParticipantId = uuid.v4();
|
|
784
|
+
const memberId = uuid.v4();
|
|
785
|
+
const alias = 'aliasName';
|
|
786
|
+
const {members, spies} = setup(url1);
|
|
787
|
+
|
|
788
|
+
const resultPromise = members.editDisplayName(memberId, requestingParticipantId, alias);
|
|
789
|
+
|
|
790
|
+
await checkValid(resultPromise, spies, memberId, requestingParticipantId, alias, url1);
|
|
791
|
+
});
|
|
792
|
+
});
|
|
793
|
+
|
|
314
794
|
describe('findMemberByCsi()', () => {
|
|
315
795
|
let members;
|
|
316
796
|
|
|
317
797
|
// fake collection that contains all combinations of members data structure (with respect to CSIs)
|
|
318
798
|
const fakeCollection = {
|
|
319
799
|
oneWithoutDevices: {
|
|
320
|
-
participant: {
|
|
321
|
-
}
|
|
800
|
+
participant: {},
|
|
322
801
|
},
|
|
323
802
|
oneWithEmptyDevices: {
|
|
324
803
|
participant: {
|
|
325
804
|
devices: [],
|
|
326
|
-
}
|
|
805
|
+
},
|
|
327
806
|
},
|
|
328
807
|
oneWithDevicesWithoutCsis: {
|
|
329
808
|
participant: {
|
|
@@ -338,7 +817,7 @@ describe('plugin-meetings', () => {
|
|
|
338
817
|
url: 'dialout:///fakeagain',
|
|
339
818
|
deviceType: 'PROVISIONAL',
|
|
340
819
|
state: 'JOINED',
|
|
341
|
-
}
|
|
820
|
+
},
|
|
342
821
|
],
|
|
343
822
|
},
|
|
344
823
|
id: 'abc-123-abc-123',
|
|
@@ -358,10 +837,10 @@ describe('plugin-meetings', () => {
|
|
|
358
837
|
deviceType: 'SIP',
|
|
359
838
|
state: 'JOINED',
|
|
360
839
|
csis: [2000, 2001, 2002],
|
|
361
|
-
}
|
|
362
|
-
]
|
|
363
|
-
}
|
|
364
|
-
}
|
|
840
|
+
},
|
|
841
|
+
],
|
|
842
|
+
},
|
|
843
|
+
},
|
|
365
844
|
};
|
|
366
845
|
|
|
367
846
|
beforeEach(() => {
|
|
@@ -392,14 +871,13 @@ describe('plugin-meetings', () => {
|
|
|
392
871
|
},
|
|
393
872
|
oneWithoutDevices: {
|
|
394
873
|
id: 'oneWithoutDevices',
|
|
395
|
-
participant: {
|
|
396
|
-
}
|
|
874
|
+
participant: {},
|
|
397
875
|
},
|
|
398
876
|
oneWithEmptyDevices: {
|
|
399
877
|
id: 'oneWithEmptyDevices',
|
|
400
878
|
participant: {
|
|
401
879
|
devices: [],
|
|
402
|
-
}
|
|
880
|
+
},
|
|
403
881
|
},
|
|
404
882
|
oneWithDevicesWithoutCsis: {
|
|
405
883
|
id: 'oneWithDevicesWithoutCsis',
|
|
@@ -415,7 +893,7 @@ describe('plugin-meetings', () => {
|
|
|
415
893
|
url: 'dialout:///fakeagain',
|
|
416
894
|
deviceType: 'PROVISIONAL',
|
|
417
895
|
state: 'JOINED',
|
|
418
|
-
}
|
|
896
|
+
},
|
|
419
897
|
],
|
|
420
898
|
},
|
|
421
899
|
status: 'IN_MEETING',
|
|
@@ -431,7 +909,7 @@ describe('plugin-meetings', () => {
|
|
|
431
909
|
mediaSessions: [
|
|
432
910
|
{mediaType: 'audio', mediaContent: 'main', csi: 1000},
|
|
433
911
|
{mediaType: 'video', mediaContent: 'main', csi: 1001},
|
|
434
|
-
{mediaType: 'video', mediaContent: 'content', csi: 1002}
|
|
912
|
+
{mediaType: 'video', mediaContent: 'content', csi: 1002},
|
|
435
913
|
],
|
|
436
914
|
},
|
|
437
915
|
{
|
|
@@ -441,12 +919,12 @@ describe('plugin-meetings', () => {
|
|
|
441
919
|
mediaSessions: [
|
|
442
920
|
{mediaType: 'audio', mediaContent: 'main', csi: 2000},
|
|
443
921
|
{mediaType: 'video', mediaContent: 'main', csi: 2001},
|
|
444
|
-
{mediaType: 'video', mediaContent: 'content', csi: 2002}
|
|
922
|
+
{mediaType: 'video', mediaContent: 'content', csi: 2002},
|
|
445
923
|
],
|
|
446
|
-
}
|
|
447
|
-
]
|
|
448
|
-
}
|
|
449
|
-
}
|
|
924
|
+
},
|
|
925
|
+
],
|
|
926
|
+
},
|
|
927
|
+
},
|
|
450
928
|
};
|
|
451
929
|
|
|
452
930
|
beforeEach(() => {
|
|
@@ -470,7 +948,10 @@ describe('plugin-meetings', () => {
|
|
|
470
948
|
});
|
|
471
949
|
|
|
472
950
|
it('returns correct CSI values when there is a match', () => {
|
|
473
|
-
assert.deepEqual(
|
|
951
|
+
assert.deepEqual(
|
|
952
|
+
members.getCsisForMember('oneWithSomeCsis', 'video', 'main'),
|
|
953
|
+
[1001, 2001]
|
|
954
|
+
);
|
|
474
955
|
});
|
|
475
956
|
});
|
|
476
957
|
});
|