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