@webex/plugin-meetings 3.0.0-beta.14 → 3.0.0-beta.16
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/UPGRADING.md +9 -9
- package/browsers.js +19 -24
- 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 +5 -26
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +5 -26
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +6 -27
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +5 -26
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.js +5 -33
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +5 -26
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +4 -25
- package/dist/common/errors/permission.js.map +1 -1
- 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 +5 -26
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +5 -26
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +6 -41
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -24
- 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 +35 -61
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +4 -14
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +1 -5
- package/dist/config.js.map +1 -1
- package/dist/constants.js +45 -40
- package/dist/constants.js.map +1 -1
- package/dist/index.js +1 -17
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +10 -28
- 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 +101 -193
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +0 -38
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +12 -38
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +87 -123
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +16 -81
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +43 -97
- package/dist/media/index.js.map +1 -1
- package/dist/media/internal-media-core-wrapper.js +0 -4
- package/dist/media/internal-media-core-wrapper.js.map +1 -1
- package/dist/media/properties.js +64 -110
- 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 +10 -12
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/effectsState.js +120 -192
- package/dist/meeting/effectsState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +0 -13
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +819 -1591
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +31 -78
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +160 -230
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +0 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/state.js +21 -31
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +19 -158
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +3 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +10 -33
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +179 -268
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -16
- 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 +137 -228
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +3 -21
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +450 -582
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +7 -30
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +99 -155
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +49 -89
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +17 -68
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +2 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +72 -194
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +21 -56
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +9 -38
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +0 -2
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js +1 -2
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +48 -136
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +12 -28
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/multistreamMedia.js +11 -21
- package/dist/multistream/multistreamMedia.js.map +1 -1
- package/dist/multistream/receiveSlot.js +7 -47
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +38 -77
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +11 -56
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +6 -40
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +221 -380
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +28 -57
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +10 -45
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -33
- 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 +100 -166
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +2 -18
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/reactions.js +0 -2
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +2 -6
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +294 -459
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/index.js +18 -53
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +13 -55
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +10 -52
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js +0 -2
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +66 -174
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +54 -53
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +13 -45
- package/dist/transcription/index.js.map +1 -1
- package/internal-README.md +7 -6
- package/package.json +18 -18
- package/src/common/browser-detection.ts +9 -6
- package/src/common/collection.ts +3 -1
- package/src/common/errors/captcha-error.ts +6 -6
- package/src/common/errors/intent-to-join.ts +6 -6
- package/src/common/errors/join-meeting.ts +12 -8
- package/src/common/errors/media.ts +6 -6
- package/src/common/errors/parameter.ts +9 -6
- package/src/common/errors/password-error.ts +6 -6
- package/src/common/errors/permission.ts +5 -5
- package/src/common/errors/reconnection.ts +6 -6
- package/src/common/errors/stats.ts +6 -6
- package/src/common/errors/webex-errors.ts +7 -5
- package/src/common/errors/webex-meetings-error.ts +1 -1
- package/src/common/events/events-scope.ts +5 -1
- package/src/common/events/events.ts +5 -1
- package/src/common/events/trigger-proxy.ts +8 -3
- package/src/common/events/util.ts +1 -2
- package/src/common/logs/logger-proxy.ts +21 -10
- package/src/common/logs/request.ts +11 -8
- package/src/config.ts +11 -11
- package/src/constants.ts +1 -1
- package/src/index.js +1 -1
- package/src/locus-info/controlsUtils.ts +34 -24
- package/src/locus-info/fullState.ts +15 -11
- package/src/locus-info/hostUtils.ts +4 -3
- package/src/locus-info/index.ts +25 -34
- package/src/locus-info/infoUtils.ts +12 -4
- package/src/locus-info/mediaSharesUtils.ts +4 -4
- package/src/locus-info/parser.ts +45 -68
- package/src/locus-info/selfUtils.ts +106 -57
- package/src/media/index.ts +123 -135
- package/src/media/internal-media-core-wrapper.ts +2 -2
- package/src/media/properties.ts +30 -20
- package/src/media/util.ts +1 -1
- package/src/mediaQualityMetrics/config.ts +46 -46
- package/src/meeting/effectsState.ts +35 -35
- package/src/meeting/in-meeting-actions.ts +7 -3
- package/src/meeting/index.ts +1559 -1292
- package/src/meeting/muteState.ts +62 -31
- package/src/meeting/request.ts +155 -116
- package/src/meeting/request.type.ts +8 -8
- package/src/meeting/state.ts +45 -30
- package/src/meeting/util.ts +101 -70
- package/src/meeting-info/collection.ts +2 -1
- package/src/meeting-info/index.ts +32 -30
- package/src/meeting-info/meeting-info-v2.ts +106 -108
- package/src/meeting-info/request.ts +9 -3
- package/src/meeting-info/util.ts +54 -46
- package/src/meeting-info/utilv2.ts +59 -53
- package/src/meetings/collection.ts +1 -1
- package/src/meetings/index.ts +512 -440
- package/src/meetings/request.ts +26 -24
- package/src/meetings/util.ts +29 -29
- package/src/member/index.ts +55 -49
- package/src/member/util.ts +26 -13
- package/src/members/collection.ts +0 -1
- package/src/members/index.ts +182 -126
- package/src/members/request.ts +46 -14
- package/src/members/util.ts +44 -42
- package/src/metrics/config.ts +254 -81
- package/src/metrics/constants.ts +0 -2
- package/src/metrics/index.ts +84 -71
- package/src/multistream/multistreamMedia.ts +1 -0
- package/src/multistream/receiveSlot.ts +1 -0
- package/src/multistream/receiveSlotManager.ts +1 -0
- package/src/multistream/remoteMedia.ts +1 -1
- package/src/multistream/remoteMediaGroup.ts +2 -1
- package/src/multistream/remoteMediaManager.ts +3 -0
- package/src/networkQualityMonitor/index.ts +20 -23
- package/src/personal-meeting-room/index.ts +12 -16
- package/src/personal-meeting-room/request.ts +10 -3
- package/src/personal-meeting-room/util.ts +3 -3
- package/src/reachability/index.ts +61 -59
- package/src/reachability/request.ts +36 -32
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +4 -3
- package/src/reconnection-manager/index.ts +139 -84
- package/src/roap/index.ts +46 -38
- package/src/roap/request.ts +44 -31
- package/src/roap/turnDiscovery.ts +59 -30
- package/src/statsAnalyzer/global.ts +30 -33
- package/src/statsAnalyzer/index.ts +432 -175
- package/src/statsAnalyzer/mqaUtil.ts +178 -72
- package/src/transcription/index.ts +34 -32
- package/test/integration/spec/journey.js +664 -463
- package/test/integration/spec/space-meeting.js +319 -204
- package/test/integration/spec/transcription.js +7 -8
- package/test/unit/spec/common/browser-detection.js +9 -28
- package/test/unit/spec/fixture/locus.js +92 -90
- package/test/unit/spec/locus-info/controlsUtils.js +5 -5
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +1 -2
- package/test/unit/spec/locus-info/infoUtils.js +26 -33
- package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
- package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
- package/test/unit/spec/locus-info/parser.js +3 -9
- package/test/unit/spec/locus-info/selfConstant.js +72 -103
- package/test/unit/spec/locus-info/selfUtils.js +21 -12
- package/test/unit/spec/meeting/effectsState.js +36 -46
- package/test/unit/spec/meeting/in-meeting-actions.ts +2 -3
- package/test/unit/spec/meeting/index.js +1279 -685
- package/test/unit/spec/meeting/muteState.js +42 -33
- package/test/unit/spec/meeting/request.js +57 -46
- package/test/unit/spec/meeting/utils.js +78 -53
- package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
- 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 +110 -74
- package/test/unit/spec/meetings/collection.js +1 -1
- package/test/unit/spec/meetings/index.js +438 -257
- package/test/unit/spec/meetings/utils.js +14 -12
- package/test/unit/spec/member/index.js +0 -1
- package/test/unit/spec/member/util.js +5 -6
- package/test/unit/spec/members/index.js +104 -54
- package/test/unit/spec/members/request.js +29 -20
- package/test/unit/spec/members/utils.js +8 -5
- package/test/unit/spec/metrics/index.js +16 -21
- package/test/unit/spec/networkQualityMonitor/index.js +21 -15
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
- package/test/unit/spec/reachability/index.ts +9 -11
- package/test/unit/spec/reconnection-manager/index.js +16 -18
- package/test/unit/spec/roap/turnDiscovery.ts +22 -19
- package/test/unit/spec/stats-analyzer/index.js +25 -20
- package/test/utils/cmr.js +44 -42
- package/test/utils/testUtils.js +83 -74
- package/test/utils/webex-config.js +18 -18
- package/test/utils/webex-test-users.js +53 -50
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
ONLINE,
|
|
28
28
|
ROAP,
|
|
29
29
|
LOCUSINFO,
|
|
30
|
-
EVENT_TRIGGERS
|
|
30
|
+
EVENT_TRIGGERS,
|
|
31
31
|
} from '../../../../src/constants';
|
|
32
32
|
|
|
33
33
|
describe('plugin-meetings', () => {
|
|
@@ -37,17 +37,19 @@ describe('plugin-meetings', () => {
|
|
|
37
37
|
error: () => {},
|
|
38
38
|
warn: () => {},
|
|
39
39
|
trace: () => {},
|
|
40
|
-
debug: () => {}
|
|
40
|
+
debug: () => {},
|
|
41
41
|
};
|
|
42
42
|
|
|
43
43
|
beforeEach(() => {
|
|
44
44
|
StaticConfig.set({
|
|
45
45
|
bandwidth: {
|
|
46
|
-
audio: 50,
|
|
47
|
-
|
|
46
|
+
audio: 50,
|
|
47
|
+
video: 500,
|
|
48
|
+
},
|
|
48
49
|
});
|
|
49
50
|
LoggerConfig.set({
|
|
50
|
-
verboseEvents: true,
|
|
51
|
+
verboseEvents: true,
|
|
52
|
+
enable: false,
|
|
51
53
|
});
|
|
52
54
|
TriggerProxy.trigger = sinon.stub().returns(true);
|
|
53
55
|
});
|
|
@@ -71,13 +73,12 @@ describe('plugin-meetings', () => {
|
|
|
71
73
|
children: {
|
|
72
74
|
device: Device,
|
|
73
75
|
mercury: Mercury,
|
|
74
|
-
meetings: Meetings
|
|
75
|
-
}
|
|
76
|
+
meetings: Meetings,
|
|
77
|
+
},
|
|
76
78
|
});
|
|
77
79
|
|
|
78
|
-
|
|
79
80
|
Object.assign(webex, {
|
|
80
|
-
logging: logger
|
|
81
|
+
logging: logger,
|
|
81
82
|
});
|
|
82
83
|
|
|
83
84
|
Object.assign(webex.meetings.config, {
|
|
@@ -86,64 +87,65 @@ describe('plugin-meetings', () => {
|
|
|
86
87
|
// the server supports, minimums have to be tested
|
|
87
88
|
audio: 64000,
|
|
88
89
|
video: 4000000,
|
|
89
|
-
startBitrate: 2000
|
|
90
|
+
startBitrate: 2000,
|
|
90
91
|
},
|
|
91
92
|
experimental: {
|
|
92
|
-
enableUnifiedMeetings: true
|
|
93
|
+
enableUnifiedMeetings: true,
|
|
93
94
|
},
|
|
94
95
|
logging: {
|
|
95
96
|
enable: true,
|
|
96
|
-
verboseEvents: true
|
|
97
|
-
}
|
|
97
|
+
verboseEvents: true,
|
|
98
|
+
},
|
|
98
99
|
});
|
|
99
100
|
|
|
100
101
|
Object.assign(webex, {
|
|
101
|
-
logger
|
|
102
|
+
logger,
|
|
102
103
|
});
|
|
103
104
|
|
|
104
105
|
Object.assign(webex.meetings, {
|
|
105
|
-
startReachability: sinon.stub().returns(Promise.resolve())
|
|
106
|
+
startReachability: sinon.stub().returns(Promise.resolve()),
|
|
106
107
|
});
|
|
107
108
|
|
|
108
109
|
Object.assign(webex.internal, {
|
|
109
110
|
device: {
|
|
110
111
|
deviceType: 'FAKE_DEVICE',
|
|
111
112
|
register: sinon.stub().returns(Promise.resolve()),
|
|
112
|
-
unregister: sinon.stub().returns(Promise.resolve())
|
|
113
|
+
unregister: sinon.stub().returns(Promise.resolve()),
|
|
113
114
|
},
|
|
114
115
|
mercury: {
|
|
115
116
|
connect: sinon.stub().returns(Promise.resolve()),
|
|
116
117
|
disconnect: sinon.stub().returns(Promise.resolve()),
|
|
117
118
|
on: () => {},
|
|
118
|
-
off: () => {}
|
|
119
|
+
off: () => {},
|
|
119
120
|
},
|
|
120
121
|
services: {
|
|
121
|
-
getMeetingPreferences: sinon.stub().returns(
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
122
|
+
getMeetingPreferences: sinon.stub().returns(
|
|
123
|
+
Promise.resolve({
|
|
124
|
+
sites: [
|
|
125
|
+
{
|
|
126
|
+
siteUrl: 'site1-example.webex.com',
|
|
127
|
+
default: false,
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
siteUrl: 'site2-example.webex.com',
|
|
131
|
+
default: false,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
siteUrl: 'site3-example.webex.com',
|
|
135
|
+
default: false,
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
siteUrl: 'go.webex.com',
|
|
139
|
+
default: true,
|
|
140
|
+
},
|
|
141
|
+
],
|
|
142
|
+
})
|
|
143
|
+
),
|
|
144
|
+
fetchClientRegionInfo: sinon.stub().returns(Promise.resolve()),
|
|
142
145
|
},
|
|
143
146
|
metrics: {
|
|
144
|
-
submitClientMetrics: sinon.stub().returns(Promise.resolve())
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
+
submitClientMetrics: sinon.stub().returns(Promise.resolve()),
|
|
148
|
+
},
|
|
147
149
|
});
|
|
148
150
|
webex.emit('ready');
|
|
149
151
|
});
|
|
@@ -177,10 +179,14 @@ describe('plugin-meetings', () => {
|
|
|
177
179
|
|
|
178
180
|
describe('failure', () => {
|
|
179
181
|
it('should not accept non boolean input', () => {
|
|
180
|
-
const currentEnableUnifiedMeetings =
|
|
182
|
+
const currentEnableUnifiedMeetings =
|
|
183
|
+
webex.meetings.config.experimental.enableUnifiedMeetings;
|
|
181
184
|
|
|
182
185
|
webex.meetings._toggleUnifiedMeetings('test');
|
|
183
|
-
assert.equal(
|
|
186
|
+
assert.equal(
|
|
187
|
+
webex.meetings.config.experimental.enableUnifiedMeetings,
|
|
188
|
+
currentEnableUnifiedMeetings
|
|
189
|
+
);
|
|
184
190
|
});
|
|
185
191
|
});
|
|
186
192
|
});
|
|
@@ -202,7 +208,10 @@ describe('plugin-meetings', () => {
|
|
|
202
208
|
const currentEnableAdhocMeetings = webex.meetings.config.experimental.enableAdhocMeetings;
|
|
203
209
|
|
|
204
210
|
webex.meetings._toggleAdhocMeetings('test');
|
|
205
|
-
assert.equal(
|
|
211
|
+
assert.equal(
|
|
212
|
+
webex.meetings.config.experimental.enableAdhocMeetings,
|
|
213
|
+
currentEnableAdhocMeetings
|
|
214
|
+
);
|
|
206
215
|
});
|
|
207
216
|
});
|
|
208
217
|
});
|
|
@@ -227,18 +236,25 @@ describe('plugin-meetings', () => {
|
|
|
227
236
|
const currentEnableTurnDiscovery = webex.meetings.config.experimental.enableTurnDiscovery;
|
|
228
237
|
|
|
229
238
|
webex.meetings._toggleTurnDiscovery('test');
|
|
230
|
-
assert.equal(
|
|
239
|
+
assert.equal(
|
|
240
|
+
webex.meetings.config.experimental.enableAdhocMeetings,
|
|
241
|
+
currentEnableTurnDiscovery
|
|
242
|
+
);
|
|
231
243
|
});
|
|
232
244
|
});
|
|
233
245
|
});
|
|
234
246
|
|
|
235
|
-
|
|
236
247
|
describe('Public API Contracts', () => {
|
|
237
248
|
describe('#register', () => {
|
|
238
249
|
it('emits an event and resolves when register succeeds', async () => {
|
|
239
250
|
webex.canAuthorize = true;
|
|
240
251
|
await webex.meetings.register();
|
|
241
|
-
assert.calledWith(
|
|
252
|
+
assert.calledWith(
|
|
253
|
+
TriggerProxy.trigger,
|
|
254
|
+
sinon.match.instanceOf(Meetings),
|
|
255
|
+
{file: 'meetings', function: 'register'},
|
|
256
|
+
'meetings:registered'
|
|
257
|
+
);
|
|
242
258
|
assert.isTrue(webex.meetings.registered);
|
|
243
259
|
});
|
|
244
260
|
|
|
@@ -284,9 +300,15 @@ describe('plugin-meetings', () => {
|
|
|
284
300
|
it('emits an event and resolves when unregister succeeds', (done) => {
|
|
285
301
|
webex.meetings.registered = true;
|
|
286
302
|
webex.meetings.unregister().then(() => {
|
|
287
|
-
assert.calledWith(
|
|
288
|
-
|
|
289
|
-
|
|
303
|
+
assert.calledWith(
|
|
304
|
+
TriggerProxy.trigger,
|
|
305
|
+
sinon.match.instanceOf(Meetings),
|
|
306
|
+
{
|
|
307
|
+
file: 'meetings',
|
|
308
|
+
function: 'unregister',
|
|
309
|
+
},
|
|
310
|
+
'meetings:unregistered'
|
|
311
|
+
);
|
|
290
312
|
assert.isFalse(webex.meetings.registered);
|
|
291
313
|
done();
|
|
292
314
|
});
|
|
@@ -324,7 +346,10 @@ describe('plugin-meetings', () => {
|
|
|
324
346
|
it('does not get a reachability instance', () => {
|
|
325
347
|
const reachability = webex.meetings.getReachability();
|
|
326
348
|
|
|
327
|
-
assert.notExists(
|
|
349
|
+
assert.notExists(
|
|
350
|
+
reachability,
|
|
351
|
+
'reachability is undefined because #setReachability has not been called'
|
|
352
|
+
);
|
|
328
353
|
});
|
|
329
354
|
});
|
|
330
355
|
describe('after #setReachability', () => {
|
|
@@ -337,7 +362,10 @@ describe('plugin-meetings', () => {
|
|
|
337
362
|
it('gets the reachability data instance from webex.meetings', () => {
|
|
338
363
|
const reachability = webex.meetings.getReachability();
|
|
339
364
|
|
|
340
|
-
assert.exists(
|
|
365
|
+
assert.exists(
|
|
366
|
+
reachability,
|
|
367
|
+
'reachability is defined because #setReachability has been called'
|
|
368
|
+
);
|
|
341
369
|
assert.instanceOf(reachability, Reachability, 'should be a reachability instance');
|
|
342
370
|
});
|
|
343
371
|
});
|
|
@@ -349,8 +377,15 @@ describe('plugin-meetings', () => {
|
|
|
349
377
|
it('gets the personal meeting room instance from webex.meetings', () => {
|
|
350
378
|
const personalMeetingRoom = webex.meetings.getPersonalMeetingRoom();
|
|
351
379
|
|
|
352
|
-
assert.exists(
|
|
353
|
-
|
|
380
|
+
assert.exists(
|
|
381
|
+
personalMeetingRoom,
|
|
382
|
+
'personal meeting room instance is set up at object creation'
|
|
383
|
+
);
|
|
384
|
+
assert.instanceOf(
|
|
385
|
+
personalMeetingRoom,
|
|
386
|
+
PersonalMeetingRoom,
|
|
387
|
+
'should be a personal meeting room instance'
|
|
388
|
+
);
|
|
354
389
|
});
|
|
355
390
|
});
|
|
356
391
|
describe('Static shortcut proxy methods', () => {
|
|
@@ -379,11 +414,11 @@ describe('plugin-meetings', () => {
|
|
|
379
414
|
describe('#getAllMeetings', () => {
|
|
380
415
|
it('calls MeetingCollection to get all meetings with supplied options', () => {
|
|
381
416
|
webex.meetings.getAllMeetings({
|
|
382
|
-
test: test1
|
|
417
|
+
test: test1,
|
|
383
418
|
});
|
|
384
419
|
assert.calledOnce(webex.meetings.meetingCollection.getAll);
|
|
385
420
|
assert.calledWith(webex.meetings.meetingCollection.getAll, {
|
|
386
|
-
test: test1
|
|
421
|
+
test: test1,
|
|
387
422
|
});
|
|
388
423
|
});
|
|
389
424
|
});
|
|
@@ -396,11 +431,15 @@ describe('plugin-meetings', () => {
|
|
|
396
431
|
});
|
|
397
432
|
describe('succesful requests', () => {
|
|
398
433
|
beforeEach(() => {
|
|
399
|
-
webex.meetings.request.getActiveMeetings = sinon.stub().returns(
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
434
|
+
webex.meetings.request.getActiveMeetings = sinon.stub().returns(
|
|
435
|
+
Promise.resolve({
|
|
436
|
+
loci: [
|
|
437
|
+
{
|
|
438
|
+
url: url1,
|
|
439
|
+
},
|
|
440
|
+
],
|
|
441
|
+
})
|
|
442
|
+
);
|
|
404
443
|
});
|
|
405
444
|
describe('when meeting is returned', () => {
|
|
406
445
|
let parse;
|
|
@@ -409,8 +448,8 @@ describe('plugin-meetings', () => {
|
|
|
409
448
|
parse = sinon.stub().returns(true);
|
|
410
449
|
webex.meetings.meetingCollection.getByKey = sinon.stub().returns({
|
|
411
450
|
locusInfo: {
|
|
412
|
-
parse
|
|
413
|
-
}
|
|
451
|
+
parse,
|
|
452
|
+
},
|
|
414
453
|
});
|
|
415
454
|
});
|
|
416
455
|
it('tests the sync meeting calls for existing meeting', async () => {
|
|
@@ -427,11 +466,13 @@ describe('plugin-meetings', () => {
|
|
|
427
466
|
beforeEach(() => {
|
|
428
467
|
initialSetup = sinon.stub().returns(true);
|
|
429
468
|
webex.meetings.meetingCollection.getByKey = sinon.stub().returns(null);
|
|
430
|
-
webex.meetings.create = sinon.stub().returns(
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
469
|
+
webex.meetings.create = sinon.stub().returns(
|
|
470
|
+
Promise.resolve({
|
|
471
|
+
locusInfo: {
|
|
472
|
+
initialSetup,
|
|
473
|
+
},
|
|
474
|
+
})
|
|
475
|
+
);
|
|
435
476
|
});
|
|
436
477
|
it('tests the sync meeting calls for not existing meeting', async () => {
|
|
437
478
|
await webex.meetings.syncMeetings();
|
|
@@ -441,11 +482,15 @@ describe('plugin-meetings', () => {
|
|
|
441
482
|
assert.calledOnce(webex.meetings.create);
|
|
442
483
|
assert.calledWith(webex.meetings.request.getActiveMeetings);
|
|
443
484
|
assert.calledWith(webex.meetings.meetingCollection.getByKey, 'locusUrl', url1);
|
|
444
|
-
assert.calledWith(
|
|
445
|
-
|
|
446
|
-
|
|
485
|
+
assert.calledWith(
|
|
486
|
+
webex.meetings.create,
|
|
487
|
+
{
|
|
488
|
+
url: url1,
|
|
489
|
+
},
|
|
490
|
+
'LOCUS_ID'
|
|
491
|
+
);
|
|
447
492
|
assert.calledWith(initialSetup, {
|
|
448
|
-
url: url1
|
|
493
|
+
url: url1,
|
|
449
494
|
});
|
|
450
495
|
});
|
|
451
496
|
});
|
|
@@ -460,24 +505,29 @@ describe('plugin-meetings', () => {
|
|
|
460
505
|
initialSetup = sinon.stub().returns(true);
|
|
461
506
|
webex.meetings.meetingCollection.getByKey = sinon.stub().returns({
|
|
462
507
|
locusInfo: {
|
|
463
|
-
parse
|
|
508
|
+
parse,
|
|
464
509
|
},
|
|
465
|
-
sendCallAnalyzerMetrics: sinon.stub()
|
|
510
|
+
sendCallAnalyzerMetrics: sinon.stub(),
|
|
466
511
|
});
|
|
467
512
|
webex.meetings.meetingCollection.getAll = sinon.stub().returns({
|
|
468
513
|
meetingutk: {
|
|
469
|
-
locusUrl: 'fdfdjfdhj',
|
|
470
|
-
|
|
471
|
-
});
|
|
472
|
-
webex.meetings.create = sinon.stub().returns(Promise.resolve({
|
|
473
|
-
locusInfo: {
|
|
474
|
-
initialSetup
|
|
514
|
+
locusUrl: 'fdfdjfdhj',
|
|
515
|
+
sendCallAnalyzerMetrics: sinon.stub(),
|
|
475
516
|
},
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
517
|
+
});
|
|
518
|
+
webex.meetings.create = sinon.stub().returns(
|
|
519
|
+
Promise.resolve({
|
|
520
|
+
locusInfo: {
|
|
521
|
+
initialSetup,
|
|
522
|
+
},
|
|
523
|
+
sendCallAnalyzerMetrics: sinon.stub(),
|
|
524
|
+
})
|
|
525
|
+
);
|
|
526
|
+
webex.meetings.request.getActiveMeetings = sinon.stub().returns(
|
|
527
|
+
Promise.resolve({
|
|
528
|
+
loci: [],
|
|
529
|
+
})
|
|
530
|
+
);
|
|
481
531
|
MeetingUtil.cleanUp = sinon.stub().returns(Promise.resolve());
|
|
482
532
|
});
|
|
483
533
|
it('destroy non active meetings', async () => {
|
|
@@ -499,34 +549,29 @@ describe('plugin-meetings', () => {
|
|
|
499
549
|
beforeEach(() => {
|
|
500
550
|
infoOptions = {
|
|
501
551
|
destination: 'dest-example',
|
|
502
|
-
type: 'CONVERSATION_URL'
|
|
552
|
+
type: 'CONVERSATION_URL',
|
|
503
553
|
};
|
|
504
554
|
webex.meetings.meetingCollection.getByKey = sinon.stub().returns();
|
|
505
|
-
webex.meetings.createMeeting = sinon.stub().returns(
|
|
506
|
-
|
|
507
|
-
|
|
555
|
+
webex.meetings.createMeeting = sinon.stub().returns(
|
|
556
|
+
Promise.resolve({
|
|
557
|
+
on: () => true,
|
|
558
|
+
})
|
|
559
|
+
);
|
|
508
560
|
});
|
|
509
561
|
|
|
510
|
-
it('should call MeetingInfo#fetchInfoOptions() with proper params',
|
|
511
|
-
()
|
|
512
|
-
webex.meetings.meetingInfo.fetchInfoOptions = sinon.stub().resolves(
|
|
513
|
-
infoOptions
|
|
514
|
-
);
|
|
562
|
+
it('should call MeetingInfo#fetchInfoOptions() with proper params', () => {
|
|
563
|
+
webex.meetings.meetingInfo.fetchInfoOptions = sinon.stub().resolves(infoOptions);
|
|
515
564
|
|
|
516
|
-
|
|
565
|
+
return webex.meetings.create(infoOptions.destination, infoOptions.type).then(() => {
|
|
566
|
+
assert.calledWith(
|
|
567
|
+
webex.meetings.meetingInfo.fetchInfoOptions,
|
|
517
568
|
infoOptions.destination,
|
|
518
569
|
infoOptions.type
|
|
519
|
-
)
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
webex.meetings.meetingInfo.fetchInfoOptions,
|
|
523
|
-
infoOptions.destination,
|
|
524
|
-
infoOptions.type
|
|
525
|
-
);
|
|
526
|
-
|
|
527
|
-
assert.calledTwice(webex.meetings.meetingCollection.getByKey);
|
|
528
|
-
});
|
|
570
|
+
);
|
|
571
|
+
|
|
572
|
+
assert.calledTwice(webex.meetings.meetingCollection.getByKey);
|
|
529
573
|
});
|
|
574
|
+
});
|
|
530
575
|
|
|
531
576
|
it('calls createMeeting and returns its promise', async () => {
|
|
532
577
|
const FAKE_USE_RANDOM_DELAY = true;
|
|
@@ -565,9 +610,9 @@ describe('plugin-meetings', () => {
|
|
|
565
610
|
return undefined;
|
|
566
611
|
});
|
|
567
612
|
|
|
568
|
-
webex.meetings.meetingInfo.fetchInfoOptions = sinon
|
|
569
|
-
|
|
570
|
-
|
|
613
|
+
webex.meetings.meetingInfo.fetchInfoOptions = sinon
|
|
614
|
+
.stub()
|
|
615
|
+
.resolves(scheduledMeetingFixture);
|
|
571
616
|
|
|
572
617
|
webex.meetings.meetingCollection.set(scheduledMeetingFixture);
|
|
573
618
|
|
|
@@ -602,28 +647,31 @@ describe('plugin-meetings', () => {
|
|
|
602
647
|
it('doesnt call handle locus mercury for a locus roap event', () => {
|
|
603
648
|
webex.meetings.handleLocusMercury({
|
|
604
649
|
data: {
|
|
605
|
-
eventType: 'locus.message.roap'
|
|
606
|
-
}
|
|
650
|
+
eventType: 'locus.message.roap',
|
|
651
|
+
},
|
|
607
652
|
});
|
|
608
653
|
assert.notCalled(webex.meetings.handleLocusEvent);
|
|
609
654
|
});
|
|
610
655
|
it('doesnt call handle locus mercury for an undefined eventType', () => {
|
|
611
656
|
webex.meetings.handleLocusMercury({
|
|
612
|
-
data: {
|
|
613
|
-
}
|
|
657
|
+
data: {},
|
|
614
658
|
});
|
|
615
659
|
assert.notCalled(webex.meetings.handleLocusEvent);
|
|
616
660
|
});
|
|
617
661
|
it('calls handle locus mercury for all locus events', () => {
|
|
618
662
|
webex.meetings.handleLocusMercury({
|
|
619
663
|
data: {
|
|
620
|
-
eventType: test1
|
|
621
|
-
}
|
|
664
|
+
eventType: test1,
|
|
665
|
+
},
|
|
622
666
|
});
|
|
623
667
|
assert.calledOnce(webex.meetings.handleLocusEvent);
|
|
624
|
-
assert.calledWith(
|
|
625
|
-
|
|
626
|
-
|
|
668
|
+
assert.calledWith(
|
|
669
|
+
webex.meetings.handleLocusEvent,
|
|
670
|
+
{
|
|
671
|
+
eventType: test1,
|
|
672
|
+
},
|
|
673
|
+
true
|
|
674
|
+
);
|
|
627
675
|
});
|
|
628
676
|
});
|
|
629
677
|
describe('#handleLocusEvent', () => {
|
|
@@ -634,24 +682,28 @@ describe('plugin-meetings', () => {
|
|
|
634
682
|
parse = sinon.stub().returns(true);
|
|
635
683
|
webex.meetings.meetingCollection.getByKey = sinon.stub().returns({
|
|
636
684
|
locusInfo: {
|
|
637
|
-
parse
|
|
638
|
-
}
|
|
685
|
+
parse,
|
|
686
|
+
},
|
|
639
687
|
});
|
|
640
688
|
});
|
|
641
689
|
it('should parse the meeting info', () => {
|
|
642
690
|
webex.meetings.handleLocusEvent({
|
|
643
|
-
locusUrl: url1
|
|
691
|
+
locusUrl: url1,
|
|
644
692
|
});
|
|
645
693
|
assert.calledOnce(webex.meetings.meetingCollection.getByKey);
|
|
646
694
|
assert.calledWith(webex.meetings.meetingCollection.getByKey, 'locusUrl', url1);
|
|
647
695
|
assert.calledOnce(parse);
|
|
648
|
-
assert.calledWith(
|
|
649
|
-
|
|
650
|
-
|
|
696
|
+
assert.calledWith(
|
|
697
|
+
parse,
|
|
698
|
+
{
|
|
699
|
+
locusInfo: {
|
|
700
|
+
parse,
|
|
701
|
+
},
|
|
702
|
+
},
|
|
703
|
+
{
|
|
704
|
+
locusUrl: url1,
|
|
651
705
|
}
|
|
652
|
-
|
|
653
|
-
locusUrl: url1
|
|
654
|
-
});
|
|
706
|
+
);
|
|
655
707
|
});
|
|
656
708
|
});
|
|
657
709
|
describe('there was not a meeting', () => {
|
|
@@ -660,41 +712,47 @@ describe('plugin-meetings', () => {
|
|
|
660
712
|
beforeEach(() => {
|
|
661
713
|
initialSetup = sinon.stub().returns(true);
|
|
662
714
|
webex.meetings.meetingCollection.getByKey = sinon.stub().returns(undefined);
|
|
663
|
-
webex.meetings.create = sinon.stub().returns(
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
715
|
+
webex.meetings.create = sinon.stub().returns(
|
|
716
|
+
Promise.resolve({
|
|
717
|
+
locusInfo: {
|
|
718
|
+
initialSetup,
|
|
719
|
+
},
|
|
720
|
+
})
|
|
721
|
+
);
|
|
668
722
|
});
|
|
669
723
|
it('should setup the meeting by difference event', async () => {
|
|
670
724
|
await webex.meetings.handleLocusEvent({
|
|
671
725
|
locus: {
|
|
672
726
|
id: uuid1,
|
|
673
|
-
replaces: [
|
|
674
|
-
|
|
675
|
-
|
|
727
|
+
replaces: [
|
|
728
|
+
{
|
|
729
|
+
locusUrl: 'http:locusUrl',
|
|
730
|
+
},
|
|
731
|
+
],
|
|
676
732
|
self: {
|
|
677
733
|
callBackInfo: {
|
|
678
|
-
callbackAddress: uri1
|
|
679
|
-
}
|
|
680
|
-
}
|
|
734
|
+
callbackAddress: uri1,
|
|
735
|
+
},
|
|
736
|
+
},
|
|
681
737
|
},
|
|
682
738
|
eventType: 'locus.difference',
|
|
683
|
-
locusUrl: url1
|
|
739
|
+
locusUrl: url1,
|
|
684
740
|
});
|
|
685
741
|
assert.callCount(webex.meetings.meetingCollection.getByKey, 5);
|
|
686
742
|
assert.calledWith(webex.meetings.meetingCollection.getByKey, 'locusUrl', url1);
|
|
687
743
|
assert.calledOnce(initialSetup);
|
|
688
744
|
assert.calledWith(initialSetup, {
|
|
689
745
|
id: uuid1,
|
|
690
|
-
replaces: [
|
|
691
|
-
|
|
692
|
-
|
|
746
|
+
replaces: [
|
|
747
|
+
{
|
|
748
|
+
locusUrl: 'http:locusUrl',
|
|
749
|
+
},
|
|
750
|
+
],
|
|
693
751
|
self: {
|
|
694
752
|
callBackInfo: {
|
|
695
|
-
callbackAddress: uri1
|
|
696
|
-
}
|
|
697
|
-
}
|
|
753
|
+
callbackAddress: uri1,
|
|
754
|
+
},
|
|
755
|
+
},
|
|
698
756
|
});
|
|
699
757
|
});
|
|
700
758
|
it('should setup the meeting by difference event without replaces', async () => {
|
|
@@ -703,12 +761,12 @@ describe('plugin-meetings', () => {
|
|
|
703
761
|
id: uuid1,
|
|
704
762
|
self: {
|
|
705
763
|
callBackInfo: {
|
|
706
|
-
callbackAddress: uri1
|
|
707
|
-
}
|
|
708
|
-
}
|
|
764
|
+
callbackAddress: uri1,
|
|
765
|
+
},
|
|
766
|
+
},
|
|
709
767
|
},
|
|
710
768
|
eventType: 'locus.difference',
|
|
711
|
-
locusUrl: url1
|
|
769
|
+
locusUrl: url1,
|
|
712
770
|
});
|
|
713
771
|
assert.callCount(webex.meetings.meetingCollection.getByKey, 4);
|
|
714
772
|
assert.calledWith(webex.meetings.meetingCollection.getByKey, 'locusUrl', url1);
|
|
@@ -717,9 +775,9 @@ describe('plugin-meetings', () => {
|
|
|
717
775
|
id: uuid1,
|
|
718
776
|
self: {
|
|
719
777
|
callBackInfo: {
|
|
720
|
-
callbackAddress: uri1
|
|
721
|
-
}
|
|
722
|
-
}
|
|
778
|
+
callbackAddress: uri1,
|
|
779
|
+
},
|
|
780
|
+
},
|
|
723
781
|
});
|
|
724
782
|
});
|
|
725
783
|
it('should setup the meeting by a not difference event', async () => {
|
|
@@ -728,12 +786,12 @@ describe('plugin-meetings', () => {
|
|
|
728
786
|
id: uuid1,
|
|
729
787
|
self: {
|
|
730
788
|
callBackInfo: {
|
|
731
|
-
callbackAddress: uri1
|
|
732
|
-
}
|
|
733
|
-
}
|
|
789
|
+
callbackAddress: uri1,
|
|
790
|
+
},
|
|
791
|
+
},
|
|
734
792
|
},
|
|
735
793
|
eventType: test1,
|
|
736
|
-
locusUrl: url1
|
|
794
|
+
locusUrl: url1,
|
|
737
795
|
});
|
|
738
796
|
assert.callCount(webex.meetings.meetingCollection.getByKey, 4);
|
|
739
797
|
assert.calledWith(webex.meetings.meetingCollection.getByKey, 'locusUrl', url1);
|
|
@@ -742,9 +800,9 @@ describe('plugin-meetings', () => {
|
|
|
742
800
|
id: uuid1,
|
|
743
801
|
self: {
|
|
744
802
|
callBackInfo: {
|
|
745
|
-
callbackAddress: uri1
|
|
746
|
-
}
|
|
747
|
-
}
|
|
803
|
+
callbackAddress: uri1,
|
|
804
|
+
},
|
|
805
|
+
},
|
|
748
806
|
});
|
|
749
807
|
});
|
|
750
808
|
|
|
@@ -753,13 +811,13 @@ describe('plugin-meetings', () => {
|
|
|
753
811
|
id: uuid1,
|
|
754
812
|
self: {
|
|
755
813
|
callbackInfo: {
|
|
756
|
-
callbackAddress: uri1
|
|
757
|
-
}
|
|
814
|
+
callbackAddress: uri1,
|
|
815
|
+
},
|
|
758
816
|
},
|
|
759
817
|
info: {
|
|
760
|
-
isUnifiedSpaceMeeting
|
|
818
|
+
isUnifiedSpaceMeeting,
|
|
761
819
|
},
|
|
762
|
-
conversationUrl: 'fakeConvoUrl'
|
|
820
|
+
conversationUrl: 'fakeConvoUrl',
|
|
763
821
|
},
|
|
764
822
|
eventType: test1,
|
|
765
823
|
locusUrl: url1,
|
|
@@ -768,18 +826,39 @@ describe('plugin-meetings', () => {
|
|
|
768
826
|
it('should not try to match USM meetings by conversation url', async () => {
|
|
769
827
|
await webex.meetings.handleLocusEvent(generateFakeLocusData(true));
|
|
770
828
|
assert.callCount(webex.meetings.meetingCollection.getByKey, 3);
|
|
771
|
-
assert.deepEqual(webex.meetings.meetingCollection.getByKey.getCall(0).args, [
|
|
772
|
-
|
|
773
|
-
|
|
829
|
+
assert.deepEqual(webex.meetings.meetingCollection.getByKey.getCall(0).args, [
|
|
830
|
+
'locusUrl',
|
|
831
|
+
url1,
|
|
832
|
+
]);
|
|
833
|
+
assert.deepEqual(webex.meetings.meetingCollection.getByKey.getCall(1).args, [
|
|
834
|
+
'correlationId',
|
|
835
|
+
false,
|
|
836
|
+
]);
|
|
837
|
+
assert.deepEqual(webex.meetings.meetingCollection.getByKey.getCall(2).args, [
|
|
838
|
+
'sipUri',
|
|
839
|
+
uri1,
|
|
840
|
+
]);
|
|
774
841
|
assert.calledOnce(initialSetup);
|
|
775
842
|
});
|
|
776
843
|
it('should try to match non-USM meetings by conversation url', async () => {
|
|
777
844
|
await webex.meetings.handleLocusEvent(generateFakeLocusData(false));
|
|
778
845
|
assert.callCount(webex.meetings.meetingCollection.getByKey, 4);
|
|
779
|
-
assert.deepEqual(webex.meetings.meetingCollection.getByKey.getCall(0).args, [
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
846
|
+
assert.deepEqual(webex.meetings.meetingCollection.getByKey.getCall(0).args, [
|
|
847
|
+
'locusUrl',
|
|
848
|
+
url1,
|
|
849
|
+
]);
|
|
850
|
+
assert.deepEqual(webex.meetings.meetingCollection.getByKey.getCall(1).args, [
|
|
851
|
+
'correlationId',
|
|
852
|
+
false,
|
|
853
|
+
]);
|
|
854
|
+
assert.deepEqual(webex.meetings.meetingCollection.getByKey.getCall(2).args, [
|
|
855
|
+
'sipUri',
|
|
856
|
+
uri1,
|
|
857
|
+
]);
|
|
858
|
+
assert.deepEqual(webex.meetings.meetingCollection.getByKey.getCall(3).args, [
|
|
859
|
+
'conversationUrl',
|
|
860
|
+
'fakeConvoUrl',
|
|
861
|
+
]);
|
|
783
862
|
assert.calledOnce(initialSetup);
|
|
784
863
|
});
|
|
785
864
|
});
|
|
@@ -798,11 +877,14 @@ describe('plugin-meetings', () => {
|
|
|
798
877
|
beforeEach(() => {
|
|
799
878
|
clock = sinon.useFakeTimers();
|
|
800
879
|
setTimeoutSpy = sinon.spy(clock, 'setTimeout');
|
|
801
|
-
webex.meetings.meetingInfo.fetchMeetingInfo = sinon.stub().returns(
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
880
|
+
webex.meetings.meetingInfo.fetchMeetingInfo = sinon.stub().returns(
|
|
881
|
+
Promise.resolve({
|
|
882
|
+
body: {
|
|
883
|
+
permissionToken: 'PT',
|
|
884
|
+
meetingJoinUrl: 'meetingJoinUrl',
|
|
885
|
+
},
|
|
886
|
+
})
|
|
887
|
+
);
|
|
806
888
|
const nowTimeStamp = Date.now();
|
|
807
889
|
|
|
808
890
|
FAKE_TIME_TO_START = 0.1 * 60 * 1000;
|
|
@@ -816,7 +898,12 @@ describe('plugin-meetings', () => {
|
|
|
816
898
|
clock.restore();
|
|
817
899
|
});
|
|
818
900
|
|
|
819
|
-
const checkCreateWithoutDelay = (
|
|
901
|
+
const checkCreateWithoutDelay = (
|
|
902
|
+
meeting,
|
|
903
|
+
destination,
|
|
904
|
+
type,
|
|
905
|
+
expectedMeetingData = {}
|
|
906
|
+
) => {
|
|
820
907
|
assert.calledOnce(webex.meetings.meetingInfo.fetchMeetingInfo);
|
|
821
908
|
assert.calledOnce(MeetingsUtil.getMeetingAddedType);
|
|
822
909
|
assert.notCalled(setTimeoutSpy);
|
|
@@ -832,12 +919,25 @@ describe('plugin-meetings', () => {
|
|
|
832
919
|
}
|
|
833
920
|
assert.equal(meeting.destination, destination);
|
|
834
921
|
assert.equal(meeting.destinationType, type);
|
|
835
|
-
assert.calledWith(
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
922
|
+
assert.calledWith(
|
|
923
|
+
TriggerProxy.trigger,
|
|
924
|
+
sinon.match.instanceOf(Meetings),
|
|
925
|
+
{
|
|
926
|
+
file: 'meetings',
|
|
927
|
+
function: 'createMeeting',
|
|
928
|
+
},
|
|
929
|
+
'meeting:added',
|
|
930
|
+
{
|
|
931
|
+
meeting: sinon.match.instanceOf(Meeting),
|
|
932
|
+
type: 'test meeting added type',
|
|
933
|
+
}
|
|
934
|
+
);
|
|
935
|
+
assert.calledWith(
|
|
936
|
+
TriggerProxy.trigger,
|
|
937
|
+
meeting,
|
|
938
|
+
{file: 'meetings', function: 'fetchMeetingInfo'},
|
|
939
|
+
'meeting:meetingInfoAvailable'
|
|
940
|
+
);
|
|
841
941
|
};
|
|
842
942
|
|
|
843
943
|
it('creates the meeting from a successful meeting info fetch promise testing', async () => {
|
|
@@ -845,7 +945,7 @@ describe('plugin-meetings', () => {
|
|
|
845
945
|
|
|
846
946
|
const expectedMeetingData = {
|
|
847
947
|
permissionToken: 'PT',
|
|
848
|
-
meetingJoinUrl: 'meetingJoinUrl'
|
|
948
|
+
meetingJoinUrl: 'meetingJoinUrl',
|
|
849
949
|
};
|
|
850
950
|
|
|
851
951
|
checkCreateWithoutDelay(meeting, 'test destination', 'test type', expectedMeetingData);
|
|
@@ -855,10 +955,14 @@ describe('plugin-meetings', () => {
|
|
|
855
955
|
const meeting = await webex.meetings.createMeeting('test destination', 'test type');
|
|
856
956
|
const expectedMeetingData = {
|
|
857
957
|
permissionToken: 'PT',
|
|
858
|
-
meetingJoinUrl: 'meetingJoinUrl'
|
|
958
|
+
meetingJoinUrl: 'meetingJoinUrl',
|
|
859
959
|
};
|
|
860
960
|
|
|
861
|
-
assert.instanceOf(
|
|
961
|
+
assert.instanceOf(
|
|
962
|
+
meeting,
|
|
963
|
+
Meeting,
|
|
964
|
+
'createMeeting should eventually resolve to a Meeting Object'
|
|
965
|
+
);
|
|
862
966
|
checkCreateWithoutDelay(meeting, 'test destination', 'test type', expectedMeetingData);
|
|
863
967
|
});
|
|
864
968
|
|
|
@@ -869,19 +973,27 @@ describe('plugin-meetings', () => {
|
|
|
869
973
|
info: {
|
|
870
974
|
webExMeetingId: 'locusMeetingId',
|
|
871
975
|
sipUri: 'locusSipUri',
|
|
872
|
-
owner: 'locusOwner'
|
|
976
|
+
owner: 'locusOwner',
|
|
873
977
|
},
|
|
874
978
|
meeting: {
|
|
875
|
-
startTime: fakeMeetingStartTimeString
|
|
979
|
+
startTime: fakeMeetingStartTimeString,
|
|
876
980
|
},
|
|
877
981
|
fullState: {
|
|
878
|
-
active: false
|
|
879
|
-
}
|
|
982
|
+
active: false,
|
|
983
|
+
},
|
|
880
984
|
};
|
|
881
985
|
|
|
882
|
-
const meeting = await webex.meetings.createMeeting(
|
|
986
|
+
const meeting = await webex.meetings.createMeeting(
|
|
987
|
+
FAKE_LOCUS_MEETING,
|
|
988
|
+
'test type',
|
|
989
|
+
true
|
|
990
|
+
);
|
|
883
991
|
|
|
884
|
-
assert.instanceOf(
|
|
992
|
+
assert.instanceOf(
|
|
993
|
+
meeting,
|
|
994
|
+
Meeting,
|
|
995
|
+
'createMeeting should eventually resolve to a Meeting Object'
|
|
996
|
+
);
|
|
885
997
|
assert.notCalled(webex.meetings.meetingInfo.fetchMeetingInfo);
|
|
886
998
|
assert.calledOnce(setTimeoutSpy);
|
|
887
999
|
|
|
@@ -897,15 +1009,27 @@ describe('plugin-meetings', () => {
|
|
|
897
1009
|
// Add meeting and send trigger
|
|
898
1010
|
assert.calledWith(MeetingsUtil.getMeetingAddedType, 'test type');
|
|
899
1011
|
assert.calledTwice(TriggerProxy.trigger);
|
|
900
|
-
assert.calledWith(
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
1012
|
+
assert.calledWith(
|
|
1013
|
+
TriggerProxy.trigger,
|
|
1014
|
+
sinon.match.instanceOf(Meetings),
|
|
1015
|
+
{
|
|
1016
|
+
file: 'meetings',
|
|
1017
|
+
function: 'createMeeting',
|
|
1018
|
+
},
|
|
1019
|
+
'meeting:added',
|
|
1020
|
+
{
|
|
1021
|
+
meeting: sinon.match.instanceOf(Meeting),
|
|
1022
|
+
type: 'test meeting added type',
|
|
1023
|
+
}
|
|
1024
|
+
);
|
|
905
1025
|
|
|
906
1026
|
// When timer expires
|
|
907
1027
|
clock.tick(FAKE_TIME_TO_START);
|
|
908
|
-
assert.calledWith(
|
|
1028
|
+
assert.calledWith(
|
|
1029
|
+
webex.meetings.meetingInfo.fetchMeetingInfo,
|
|
1030
|
+
FAKE_LOCUS_MEETING,
|
|
1031
|
+
'test type'
|
|
1032
|
+
);
|
|
909
1033
|
|
|
910
1034
|
// Parse meeting info is called again with new meeting info
|
|
911
1035
|
await testUtils.flushPromises();
|
|
@@ -917,7 +1041,12 @@ describe('plugin-meetings', () => {
|
|
|
917
1041
|
assert.equal(meeting.owner, 'locusOwner');
|
|
918
1042
|
assert.equal(meeting.permissionToken, 'PT');
|
|
919
1043
|
|
|
920
|
-
assert.calledWith(
|
|
1044
|
+
assert.calledWith(
|
|
1045
|
+
TriggerProxy.trigger,
|
|
1046
|
+
meeting,
|
|
1047
|
+
{file: 'meetings', function: 'fetchMeetingInfo'},
|
|
1048
|
+
'meeting:meetingInfoAvailable'
|
|
1049
|
+
);
|
|
921
1050
|
});
|
|
922
1051
|
|
|
923
1052
|
it('creates the meeting from a successful meeting info fetch that has no random delay because it is active', async () => {
|
|
@@ -927,19 +1056,27 @@ describe('plugin-meetings', () => {
|
|
|
927
1056
|
info: {
|
|
928
1057
|
webExMeetingId: 'locusMeetingId',
|
|
929
1058
|
sipUri: 'locusSipUri',
|
|
930
|
-
owner: 'locusOwner'
|
|
1059
|
+
owner: 'locusOwner',
|
|
931
1060
|
},
|
|
932
1061
|
meeting: {
|
|
933
|
-
startTime: fakeMeetingStartTimeString
|
|
1062
|
+
startTime: fakeMeetingStartTimeString,
|
|
934
1063
|
},
|
|
935
1064
|
fullState: {
|
|
936
|
-
active: true
|
|
937
|
-
}
|
|
1065
|
+
active: true,
|
|
1066
|
+
},
|
|
938
1067
|
};
|
|
939
1068
|
|
|
940
|
-
const meeting = await webex.meetings.createMeeting(
|
|
1069
|
+
const meeting = await webex.meetings.createMeeting(
|
|
1070
|
+
FAKE_LOCUS_MEETING,
|
|
1071
|
+
'test type',
|
|
1072
|
+
true
|
|
1073
|
+
);
|
|
941
1074
|
|
|
942
|
-
assert.instanceOf(
|
|
1075
|
+
assert.instanceOf(
|
|
1076
|
+
meeting,
|
|
1077
|
+
Meeting,
|
|
1078
|
+
'createMeeting should eventually resolve to a Meeting Object'
|
|
1079
|
+
);
|
|
943
1080
|
checkCreateWithoutDelay(meeting, FAKE_LOCUS_MEETING, 'test type');
|
|
944
1081
|
});
|
|
945
1082
|
|
|
@@ -950,27 +1087,35 @@ describe('plugin-meetings', () => {
|
|
|
950
1087
|
info: {
|
|
951
1088
|
webExMeetingId: 'locusMeetingId',
|
|
952
1089
|
sipUri: 'locusSipUri',
|
|
953
|
-
owner: 'locusOwner'
|
|
1090
|
+
owner: 'locusOwner',
|
|
954
1091
|
},
|
|
955
1092
|
meeting: {
|
|
956
|
-
startTime: fakeMeetingStartTimeString -
|
|
1093
|
+
startTime: fakeMeetingStartTimeString - 1 * 60 * 60 * 1000,
|
|
957
1094
|
},
|
|
958
1095
|
fullState: {
|
|
959
|
-
active: false
|
|
960
|
-
}
|
|
1096
|
+
active: false,
|
|
1097
|
+
},
|
|
961
1098
|
};
|
|
962
1099
|
|
|
963
|
-
const meeting = await webex.meetings.createMeeting(
|
|
1100
|
+
const meeting = await webex.meetings.createMeeting(
|
|
1101
|
+
FAKE_LOCUS_MEETING,
|
|
1102
|
+
'test type',
|
|
1103
|
+
true
|
|
1104
|
+
);
|
|
964
1105
|
|
|
965
|
-
assert.instanceOf(
|
|
1106
|
+
assert.instanceOf(
|
|
1107
|
+
meeting,
|
|
1108
|
+
Meeting,
|
|
1109
|
+
'createMeeting should eventually resolve to a Meeting Object'
|
|
1110
|
+
);
|
|
966
1111
|
checkCreateWithoutDelay(meeting, FAKE_LOCUS_MEETING, 'test type');
|
|
967
1112
|
});
|
|
968
1113
|
|
|
969
1114
|
it('creates the meeting from a successful meeting info fetch that has no random delay because enableUnifiedMeetings is disabled', async () => {
|
|
970
1115
|
Object.assign(webex.meetings.config, {
|
|
971
1116
|
experimental: {
|
|
972
|
-
enableUnifiedMeetings: false
|
|
973
|
-
}
|
|
1117
|
+
enableUnifiedMeetings: false,
|
|
1118
|
+
},
|
|
974
1119
|
});
|
|
975
1120
|
const FAKE_LOCUS_MEETING = {
|
|
976
1121
|
conversationUrl: 'locusConvURL',
|
|
@@ -978,19 +1123,27 @@ describe('plugin-meetings', () => {
|
|
|
978
1123
|
info: {
|
|
979
1124
|
webExMeetingId: 'locusMeetingId',
|
|
980
1125
|
sipUri: 'locusSipUri',
|
|
981
|
-
owner: 'locusOwner'
|
|
1126
|
+
owner: 'locusOwner',
|
|
982
1127
|
},
|
|
983
1128
|
meeting: {
|
|
984
|
-
startTime: fakeMeetingStartTimeString
|
|
1129
|
+
startTime: fakeMeetingStartTimeString,
|
|
985
1130
|
},
|
|
986
1131
|
fullState: {
|
|
987
|
-
active: false
|
|
988
|
-
}
|
|
1132
|
+
active: false,
|
|
1133
|
+
},
|
|
989
1134
|
};
|
|
990
1135
|
|
|
991
|
-
const meeting = await webex.meetings.createMeeting(
|
|
1136
|
+
const meeting = await webex.meetings.createMeeting(
|
|
1137
|
+
FAKE_LOCUS_MEETING,
|
|
1138
|
+
'test type',
|
|
1139
|
+
true
|
|
1140
|
+
);
|
|
992
1141
|
|
|
993
|
-
assert.instanceOf(
|
|
1142
|
+
assert.instanceOf(
|
|
1143
|
+
meeting,
|
|
1144
|
+
Meeting,
|
|
1145
|
+
'createMeeting should eventually resolve to a Meeting Object'
|
|
1146
|
+
);
|
|
994
1147
|
checkCreateWithoutDelay(meeting, FAKE_LOCUS_MEETING, 'test type');
|
|
995
1148
|
});
|
|
996
1149
|
});
|
|
@@ -999,22 +1152,40 @@ describe('plugin-meetings', () => {
|
|
|
999
1152
|
beforeEach(() => {
|
|
1000
1153
|
console.error = sinon.stub().returns(false);
|
|
1001
1154
|
TriggerProxy.trigger.reset();
|
|
1002
|
-
webex.meetings.meetingInfo.fetchMeetingInfo = sinon
|
|
1155
|
+
webex.meetings.meetingInfo.fetchMeetingInfo = sinon
|
|
1156
|
+
.stub()
|
|
1157
|
+
.returns(Promise.reject(new Error('test')));
|
|
1003
1158
|
});
|
|
1004
1159
|
it('creates the meeting from a rejected meeting info fetch', async () => {
|
|
1005
1160
|
const meeting = await webex.meetings.createMeeting('test destination', 'test type');
|
|
1006
1161
|
|
|
1007
|
-
assert.instanceOf(
|
|
1162
|
+
assert.instanceOf(
|
|
1163
|
+
meeting,
|
|
1164
|
+
Meeting,
|
|
1165
|
+
'createMeeting should eventually resolve to a Meeting Object'
|
|
1166
|
+
);
|
|
1008
1167
|
assert.calledOnce(webex.meetings.meetingInfo.fetchMeetingInfo);
|
|
1009
1168
|
assert.calledOnce(MeetingsUtil.getMeetingAddedType);
|
|
1010
1169
|
assert.calledTwice(TriggerProxy.trigger);
|
|
1011
|
-
assert.calledWith(
|
|
1170
|
+
assert.calledWith(
|
|
1171
|
+
webex.meetings.meetingInfo.fetchMeetingInfo,
|
|
1172
|
+
'test destination',
|
|
1173
|
+
'test type'
|
|
1174
|
+
);
|
|
1012
1175
|
assert.calledWith(MeetingsUtil.getMeetingAddedType, 'test type');
|
|
1013
|
-
assert.calledWith(
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1176
|
+
assert.calledWith(
|
|
1177
|
+
TriggerProxy.trigger,
|
|
1178
|
+
sinon.match.instanceOf(Meetings),
|
|
1179
|
+
{
|
|
1180
|
+
file: 'meetings',
|
|
1181
|
+
function: 'createMeeting',
|
|
1182
|
+
},
|
|
1183
|
+
'meeting:added',
|
|
1184
|
+
{
|
|
1185
|
+
meeting: sinon.match.instanceOf(Meeting),
|
|
1186
|
+
type: 'test meeting added type',
|
|
1187
|
+
}
|
|
1188
|
+
);
|
|
1018
1189
|
});
|
|
1019
1190
|
});
|
|
1020
1191
|
});
|
|
@@ -1039,11 +1210,19 @@ describe('plugin-meetings', () => {
|
|
|
1039
1210
|
|
|
1040
1211
|
assert.calledOnce(webex.meetings.meetingCollection.delete);
|
|
1041
1212
|
assert.calledWith(webex.meetings.meetingCollection.delete, meeting.id);
|
|
1042
|
-
assert.calledWith(
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1213
|
+
assert.calledWith(
|
|
1214
|
+
TriggerProxy.trigger,
|
|
1215
|
+
sinon.match.instanceOf(Meetings),
|
|
1216
|
+
{
|
|
1217
|
+
file: 'meetings',
|
|
1218
|
+
function: 'destroy',
|
|
1219
|
+
},
|
|
1220
|
+
'meeting:removed',
|
|
1221
|
+
{
|
|
1222
|
+
meetingId: meeting.id,
|
|
1223
|
+
reason: test1,
|
|
1224
|
+
}
|
|
1225
|
+
);
|
|
1047
1226
|
});
|
|
1048
1227
|
});
|
|
1049
1228
|
|
|
@@ -1068,7 +1247,8 @@ describe('plugin-meetings', () => {
|
|
|
1068
1247
|
it('should trigger event upon mercury disconnect', () => {
|
|
1069
1248
|
const {meetings} = webex;
|
|
1070
1249
|
const SCOPE = {
|
|
1071
|
-
file: 'meetings/index',
|
|
1250
|
+
file: 'meetings/index',
|
|
1251
|
+
function: 'handleMercuryOffline',
|
|
1072
1252
|
};
|
|
1073
1253
|
const EVENT = 'network:disconnected';
|
|
1074
1254
|
|
|
@@ -1098,13 +1278,11 @@ describe('plugin-meetings', () => {
|
|
|
1098
1278
|
services: {
|
|
1099
1279
|
getMeetingPreferences: sinon.stub().returns(Promise.resolve({})),
|
|
1100
1280
|
},
|
|
1101
|
-
|
|
1102
1281
|
});
|
|
1103
1282
|
|
|
1104
|
-
await webex.meetings.fetchUserPreferredWebexSite()
|
|
1105
|
-
.
|
|
1106
|
-
|
|
1107
|
-
});
|
|
1283
|
+
await webex.meetings.fetchUserPreferredWebexSite().then(() => {
|
|
1284
|
+
assert.equal(webex.meetings.preferredWebexSite, '');
|
|
1285
|
+
});
|
|
1108
1286
|
});
|
|
1109
1287
|
});
|
|
1110
1288
|
});
|
|
@@ -1120,11 +1298,14 @@ describe('plugin-meetings', () => {
|
|
|
1120
1298
|
TriggerProxy.trigger.reset();
|
|
1121
1299
|
// clock = sinon.useFakeTimers();
|
|
1122
1300
|
// setTimeoutSpy = sinon.spy(clock, 'setTimeout');
|
|
1123
|
-
webex.meetings.meetingInfo.fetchMeetingInfo = sinon.stub().returns(
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1301
|
+
webex.meetings.meetingInfo.fetchMeetingInfo = sinon.stub().returns(
|
|
1302
|
+
Promise.resolve({
|
|
1303
|
+
body: {
|
|
1304
|
+
permissionToken: 'PT',
|
|
1305
|
+
meetingJoinUrl: 'meetingJoinUrl',
|
|
1306
|
+
},
|
|
1307
|
+
})
|
|
1308
|
+
);
|
|
1128
1309
|
|
|
1129
1310
|
meeting = await webex.meetings.createMeeting('test destination', 'test type');
|
|
1130
1311
|
|
|
@@ -1132,37 +1313,37 @@ describe('plugin-meetings', () => {
|
|
|
1132
1313
|
});
|
|
1133
1314
|
|
|
1134
1315
|
it('triggers correct event when CONTROLS_ENTRY_EXIT_TONE_UPDATED emitted', async () => {
|
|
1135
|
-
await meeting.locusInfo.emitScoped(
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
{entryExitTone: 'foo'}
|
|
1139
|
-
);
|
|
1316
|
+
await meeting.locusInfo.emitScoped({}, LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, {
|
|
1317
|
+
entryExitTone: 'foo',
|
|
1318
|
+
});
|
|
1140
1319
|
|
|
1141
1320
|
assert.calledOnce(TriggerProxy.trigger);
|
|
1142
|
-
assert.calledWith(
|
|
1321
|
+
assert.calledWith(
|
|
1322
|
+
TriggerProxy.trigger,
|
|
1323
|
+
sinon.match.instanceOf(Meeting),
|
|
1143
1324
|
{
|
|
1144
1325
|
file: 'meeting/index',
|
|
1145
|
-
function: 'setupLocusControlsListener'
|
|
1326
|
+
function: 'setupLocusControlsListener',
|
|
1146
1327
|
},
|
|
1147
1328
|
EVENT_TRIGGERS.MEETING_ENTRY_EXIT_TONE_UPDATE,
|
|
1148
|
-
{entryExitTone: 'foo'}
|
|
1329
|
+
{entryExitTone: 'foo'}
|
|
1330
|
+
);
|
|
1149
1331
|
});
|
|
1150
1332
|
|
|
1151
1333
|
const checkSelfTrigger = async (inEvent, outEvent) => {
|
|
1152
|
-
await meeting.locusInfo.emitScoped(
|
|
1153
|
-
{},
|
|
1154
|
-
inEvent,
|
|
1155
|
-
{foo: 'bar'}
|
|
1156
|
-
);
|
|
1334
|
+
await meeting.locusInfo.emitScoped({}, inEvent, {foo: 'bar'});
|
|
1157
1335
|
|
|
1158
1336
|
assert.calledOnce(TriggerProxy.trigger);
|
|
1159
|
-
assert.calledWith(
|
|
1337
|
+
assert.calledWith(
|
|
1338
|
+
TriggerProxy.trigger,
|
|
1339
|
+
sinon.match.instanceOf(Meeting),
|
|
1160
1340
|
{
|
|
1161
1341
|
file: 'meeting/index',
|
|
1162
|
-
function: 'setUpLocusInfoSelfListener'
|
|
1342
|
+
function: 'setUpLocusInfoSelfListener',
|
|
1163
1343
|
},
|
|
1164
1344
|
outEvent,
|
|
1165
|
-
{payload: {foo: 'bar'}}
|
|
1345
|
+
{payload: {foo: 'bar'}}
|
|
1346
|
+
);
|
|
1166
1347
|
};
|
|
1167
1348
|
|
|
1168
1349
|
it('triggers correct event when SELF_CANNOT_VIEW_PARTICIPANT_LIST_CHANGE emitted', async () => {
|