@webex/plugin-meetings 3.0.0-beta.251 → 3.0.0-beta.253
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/meeting/index.js +9 -27
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting-info/index.js +45 -23
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +22 -4
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +4 -2
- package/dist/meetings/index.js.map +1 -1
- package/dist/types/meeting/index.d.ts +5 -2
- package/dist/types/meeting-info/index.d.ts +7 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +1 -0
- package/package.json +19 -19
- package/src/meeting/index.ts +7 -19
- package/src/meeting-info/index.ts +45 -20
- package/src/meeting-info/meeting-info-v2.ts +25 -5
- package/src/meetings/index.ts +9 -2
- package/test/unit/spec/meeting/index.js +18 -79
- package/test/unit/spec/meeting-info/index.js +173 -61
- package/test/unit/spec/meeting-info/meetinginfov2.js +186 -52
- package/test/unit/spec/meetings/index.js +4 -3
|
@@ -71,20 +71,37 @@ export default class MeetingInfo {
|
|
|
71
71
|
* @memberof MeetingInfo
|
|
72
72
|
*/
|
|
73
73
|
private requestFetchInfo(options: any) {
|
|
74
|
-
const {meetingId} = options;
|
|
75
|
-
if (meetingId) {
|
|
74
|
+
const {meetingId, sendCAevents} = options;
|
|
75
|
+
if (meetingId && sendCAevents) {
|
|
76
76
|
this.webex.internal.newMetrics.submitInternalEvent({
|
|
77
77
|
name: 'internal.client.meetinginfo.request',
|
|
78
78
|
});
|
|
79
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
80
|
+
name: 'client.meetinginfo.request',
|
|
81
|
+
options: {
|
|
82
|
+
meetingId,
|
|
83
|
+
},
|
|
84
|
+
});
|
|
79
85
|
}
|
|
80
86
|
|
|
81
87
|
return this.meetingInfoRequest
|
|
82
88
|
.fetchMeetingInfo(options)
|
|
83
89
|
.then((info) => {
|
|
84
|
-
if (meetingId) {
|
|
90
|
+
if (meetingId && sendCAevents) {
|
|
85
91
|
this.webex.internal.newMetrics.submitInternalEvent({
|
|
86
92
|
name: 'internal.client.meetinginfo.response',
|
|
87
93
|
});
|
|
94
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
95
|
+
name: 'client.meetinginfo.response',
|
|
96
|
+
payload: {
|
|
97
|
+
identifiers: {
|
|
98
|
+
meetingLookupUrl: info?.url,
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
options: {
|
|
102
|
+
meetingId,
|
|
103
|
+
},
|
|
104
|
+
});
|
|
88
105
|
}
|
|
89
106
|
if (info && info.body) {
|
|
90
107
|
this.setMeetingInfo(info.body.sipMeetingUri || info.body.meetingLink, info.body);
|
|
@@ -96,21 +113,23 @@ export default class MeetingInfo {
|
|
|
96
113
|
LoggerProxy.logger.error(
|
|
97
114
|
`Meeting-info:index#requestFetchInfo --> ${error} fetch meetingInfo`
|
|
98
115
|
);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
116
|
+
if (meetingId && sendCAevents) {
|
|
117
|
+
this.webex.internal.newMetrics.submitInternalEvent({
|
|
118
|
+
name: 'internal.client.meetinginfo.response',
|
|
119
|
+
});
|
|
120
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
121
|
+
name: 'client.meetinginfo.response',
|
|
122
|
+
payload: {
|
|
123
|
+
identifiers: {
|
|
124
|
+
meetingLookupUrl: error?.url,
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
options: {
|
|
128
|
+
meetingId,
|
|
129
|
+
rawError: error,
|
|
107
130
|
},
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
meetingId,
|
|
111
|
-
rawError: error,
|
|
112
|
-
},
|
|
113
|
-
});
|
|
131
|
+
});
|
|
132
|
+
}
|
|
114
133
|
|
|
115
134
|
return Promise.reject(error);
|
|
116
135
|
});
|
|
@@ -137,6 +156,12 @@ export default class MeetingInfo {
|
|
|
137
156
|
* Fetches meeting info from the server
|
|
138
157
|
* @param {String} destination one of many different types of destinations to look up info for
|
|
139
158
|
* @param {String} [type] to match up with the destination value
|
|
159
|
+
* @param {String} [password] meeting password
|
|
160
|
+
* @param {Object} [captchaInfo] captcha code and id
|
|
161
|
+
* @param {String} [installedOrgID]
|
|
162
|
+
* @param {String} [locusId]
|
|
163
|
+
* @param {Object} [extraParams]
|
|
164
|
+
* @param {Boolean} [options] meeting Id and whether Call Analyzer events should be sent
|
|
140
165
|
* @returns {Promise} returns a meeting info object
|
|
141
166
|
* @public
|
|
142
167
|
* @memberof MeetingInfo
|
|
@@ -157,7 +182,7 @@ export default class MeetingInfo {
|
|
|
157
182
|
locusId = null,
|
|
158
183
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
159
184
|
extraParams: object = {},
|
|
160
|
-
options: {meetingId?: string} = {}
|
|
185
|
+
options: {meetingId?: string; sendCAevents?: boolean} = {}
|
|
161
186
|
) {
|
|
162
187
|
if (type === _PERSONAL_ROOM_ && !destination) {
|
|
163
188
|
destination = this.webex.internal.device.userId;
|
|
@@ -166,13 +191,13 @@ export default class MeetingInfo {
|
|
|
166
191
|
return this.fetchInfoOptions(MeetingInfoUtil.extractDestination(destination, type), type).then(
|
|
167
192
|
(infoOptions) =>
|
|
168
193
|
// fetch meeting info
|
|
169
|
-
this.requestFetchInfo({...infoOptions,
|
|
194
|
+
this.requestFetchInfo({...infoOptions, ...options}).catch((error) => {
|
|
170
195
|
// if it failed the first time as meeting link
|
|
171
196
|
if (infoOptions.type === _MEETING_LINK_) {
|
|
172
197
|
// convert the meeting link to sip URI and retry
|
|
173
198
|
return this.requestFetchInfo({
|
|
174
199
|
...this.fetchInfoOptions(MeetingInfoUtil.convertLinkToSip(destination), _SIP_URI_),
|
|
175
|
-
|
|
200
|
+
...options,
|
|
176
201
|
});
|
|
177
202
|
}
|
|
178
203
|
|
|
@@ -279,9 +279,9 @@ export default class MeetingInfoV2 {
|
|
|
279
279
|
installedOrgID = null,
|
|
280
280
|
locusId = null,
|
|
281
281
|
extraParams: object = {},
|
|
282
|
-
options: {meetingId?: string} = {}
|
|
282
|
+
options: {meetingId?: string; sendCAevents?: boolean} = {}
|
|
283
283
|
) {
|
|
284
|
-
const {meetingId} = options;
|
|
284
|
+
const {meetingId, sendCAevents} = options;
|
|
285
285
|
|
|
286
286
|
const destinationType = await MeetingInfoUtil.getDestinationType({
|
|
287
287
|
destination,
|
|
@@ -336,29 +336,49 @@ export default class MeetingInfoV2 {
|
|
|
336
336
|
requestOptions.resource = 'meetingInfo';
|
|
337
337
|
}
|
|
338
338
|
|
|
339
|
-
if (meetingId) {
|
|
339
|
+
if (meetingId && sendCAevents) {
|
|
340
340
|
this.webex.internal.newMetrics.submitInternalEvent({
|
|
341
341
|
name: 'internal.client.meetinginfo.request',
|
|
342
342
|
});
|
|
343
|
+
|
|
344
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
345
|
+
name: 'client.meetinginfo.request',
|
|
346
|
+
options: {
|
|
347
|
+
meetingId,
|
|
348
|
+
},
|
|
349
|
+
});
|
|
343
350
|
}
|
|
344
351
|
|
|
345
352
|
return this.webex
|
|
346
353
|
.request(requestOptions)
|
|
347
354
|
.then((response) => {
|
|
348
|
-
if (meetingId) {
|
|
355
|
+
if (meetingId && sendCAevents) {
|
|
349
356
|
this.webex.internal.newMetrics.submitInternalEvent({
|
|
350
357
|
name: 'internal.client.meetinginfo.response',
|
|
351
358
|
});
|
|
359
|
+
|
|
360
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
361
|
+
name: 'client.meetinginfo.response',
|
|
362
|
+
payload: {
|
|
363
|
+
identifiers: {
|
|
364
|
+
meetingLookupUrl: response?.url,
|
|
365
|
+
},
|
|
366
|
+
},
|
|
367
|
+
options: {
|
|
368
|
+
meetingId,
|
|
369
|
+
},
|
|
370
|
+
});
|
|
352
371
|
}
|
|
353
372
|
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS);
|
|
354
373
|
|
|
355
374
|
return response;
|
|
356
375
|
})
|
|
357
376
|
.catch((err) => {
|
|
358
|
-
if (meetingId) {
|
|
377
|
+
if (meetingId && sendCAevents) {
|
|
359
378
|
this.webex.internal.newMetrics.submitInternalEvent({
|
|
360
379
|
name: 'internal.client.meetinginfo.response',
|
|
361
380
|
});
|
|
381
|
+
|
|
362
382
|
this.webex.internal.newMetrics.submitClientEvent({
|
|
363
383
|
name: 'client.meetinginfo.response',
|
|
364
384
|
payload: {
|
package/src/meetings/index.ts
CHANGED
|
@@ -1219,12 +1219,19 @@ export default class Meetings extends WebexPlugin {
|
|
|
1219
1219
|
|
|
1220
1220
|
if (enableUnifiedMeetings && !isMeetingActive && useRandomDelayForInfo && waitingTime > 0) {
|
|
1221
1221
|
meeting.fetchMeetingInfoTimeoutId = setTimeout(
|
|
1222
|
-
() =>
|
|
1222
|
+
() =>
|
|
1223
|
+
meeting.fetchMeetingInfo({
|
|
1224
|
+
extraParams: infoExtraParams,
|
|
1225
|
+
sendCAevents: !!correlationId, // if client sends correlation id as argument of public create(), then it means that this meeting creation is part of a pre-join intent from user
|
|
1226
|
+
}),
|
|
1223
1227
|
waitingTime
|
|
1224
1228
|
);
|
|
1225
1229
|
meeting.parseMeetingInfo(undefined, destination);
|
|
1226
1230
|
} else {
|
|
1227
|
-
await meeting.fetchMeetingInfo({
|
|
1231
|
+
await meeting.fetchMeetingInfo({
|
|
1232
|
+
extraParams: infoExtraParams,
|
|
1233
|
+
sendCAevents: !!correlationId, // if client sends correlation id as argument of public create(), then it means that this meeting creation is part of a pre-join intent from user
|
|
1234
|
+
});
|
|
1228
1235
|
}
|
|
1229
1236
|
} catch (err) {
|
|
1230
1237
|
if (
|
|
@@ -856,75 +856,8 @@ describe('plugin-meetings', () => {
|
|
|
856
856
|
sinon.assert.called(setCorrelationIdSpy);
|
|
857
857
|
assert.equal(meeting.correlationId, '123');
|
|
858
858
|
});
|
|
859
|
-
|
|
860
|
-
it('should send Meeting Info CA events if meetingInfo is not empty', async () => {
|
|
861
|
-
meeting.meetingInfo = {info: 'info', meetingLookupUrl: 'url'};
|
|
862
|
-
|
|
863
|
-
const join = meeting.join();
|
|
864
|
-
|
|
865
|
-
assert.calledWithMatch(webex.internal.newMetrics.submitClientEvent, {
|
|
866
|
-
name: 'client.call.initiated',
|
|
867
|
-
payload: {trigger: 'user-interaction', isRoapCallEnabled: true},
|
|
868
|
-
options: {meetingId: meeting.id},
|
|
869
|
-
});
|
|
870
|
-
|
|
871
|
-
assert.exists(join.then);
|
|
872
|
-
const result = await join;
|
|
873
|
-
|
|
874
|
-
assert.calledOnce(MeetingUtil.joinMeeting);
|
|
875
|
-
assert.calledOnce(meeting.setLocus);
|
|
876
|
-
assert.equal(result, joinMeetingResult);
|
|
877
|
-
|
|
878
|
-
assert.calledThrice(webex.internal.newMetrics.submitClientEvent);
|
|
879
|
-
|
|
880
|
-
assert.deepEqual(webex.internal.newMetrics.submitClientEvent.getCall(0).args[0], {
|
|
881
|
-
name: 'client.call.initiated',
|
|
882
|
-
payload: {
|
|
883
|
-
trigger: 'user-interaction',
|
|
884
|
-
isRoapCallEnabled: true,
|
|
885
|
-
},
|
|
886
|
-
options: {meetingId: meeting.id},
|
|
887
|
-
});
|
|
888
|
-
|
|
889
|
-
assert.deepEqual(webex.internal.newMetrics.submitClientEvent.getCall(1).args[0], {
|
|
890
|
-
name: 'client.meetinginfo.request',
|
|
891
|
-
options: {meetingId: meeting.id},
|
|
892
|
-
});
|
|
893
|
-
assert.deepEqual(webex.internal.newMetrics.submitClientEvent.getCall(2).args[0], {
|
|
894
|
-
name: 'client.meetinginfo.response',
|
|
895
|
-
payload: {
|
|
896
|
-
identifiers: {meetingLookupUrl: 'url'},
|
|
897
|
-
},
|
|
898
|
-
options: {meetingId: meeting.id},
|
|
899
|
-
});
|
|
900
|
-
});
|
|
901
|
-
|
|
902
|
-
it('should not send Meeting Info CA events if meetingInfo is empty', async () => {
|
|
903
|
-
meeting.meetingInfo = {};
|
|
904
|
-
|
|
905
|
-
const join = meeting.join();
|
|
906
|
-
|
|
907
|
-
assert.calledWith(webex.internal.newMetrics.submitClientEvent, {
|
|
908
|
-
name: 'client.call.initiated',
|
|
909
|
-
payload: {trigger: 'user-interaction', isRoapCallEnabled: true},
|
|
910
|
-
options: {meetingId: meeting.id},
|
|
911
|
-
});
|
|
912
|
-
|
|
913
|
-
assert.exists(join.then);
|
|
914
|
-
const result = await join;
|
|
915
|
-
|
|
916
|
-
assert.calledOnce(MeetingUtil.joinMeeting);
|
|
917
|
-
assert.calledOnce(meeting.setLocus);
|
|
918
|
-
assert.equal(result, joinMeetingResult);
|
|
919
|
-
|
|
920
|
-
assert.calledOnce(webex.internal.newMetrics.submitClientEvent);
|
|
921
|
-
|
|
922
|
-
assert.equal(
|
|
923
|
-
webex.internal.newMetrics.submitClientEvent.getCall(0).args[0].name,
|
|
924
|
-
'client.call.initiated'
|
|
925
|
-
);
|
|
926
|
-
});
|
|
927
859
|
});
|
|
860
|
+
|
|
928
861
|
describe('failure', () => {
|
|
929
862
|
beforeEach(() => {
|
|
930
863
|
sandbox.stub(MeetingUtil, 'joinMeeting').returns(Promise.reject());
|
|
@@ -3153,7 +3086,7 @@ describe('plugin-meetings', () => {
|
|
|
3153
3086
|
beforeEach(() => {
|
|
3154
3087
|
meeting.locusId = 'locus-id';
|
|
3155
3088
|
meeting.id = 'meeting-id';
|
|
3156
|
-
FAKE_OPTIONS = {meetingId: meeting.id};
|
|
3089
|
+
FAKE_OPTIONS = {meetingId: meeting.id, sendCAevents: true};
|
|
3157
3090
|
});
|
|
3158
3091
|
|
|
3159
3092
|
it('calls meetingInfoProvider with all the right parameters and parses the result', async () => {
|
|
@@ -3173,6 +3106,7 @@ describe('plugin-meetings', () => {
|
|
|
3173
3106
|
password: FAKE_PASSWORD,
|
|
3174
3107
|
captchaCode: FAKE_CAPTCHA_CODE,
|
|
3175
3108
|
extraParams: FAKE_EXTRA_PARAMS,
|
|
3109
|
+
sendCAevents: true,
|
|
3176
3110
|
});
|
|
3177
3111
|
|
|
3178
3112
|
assert.calledWith(
|
|
@@ -3224,7 +3158,7 @@ describe('plugin-meetings', () => {
|
|
|
3224
3158
|
const clock = sinon.useFakeTimers();
|
|
3225
3159
|
const clearTimeoutSpy = sinon.spy(clock, 'clearTimeout');
|
|
3226
3160
|
|
|
3227
|
-
await meeting.fetchMeetingInfo({});
|
|
3161
|
+
await meeting.fetchMeetingInfo({sendCAevents: false});
|
|
3228
3162
|
|
|
3229
3163
|
// clear timer
|
|
3230
3164
|
assert.calledWith(clearTimeoutSpy, FAKE_TIMEOUT_FETCHMEETINGINFO_ID);
|
|
@@ -3241,7 +3175,7 @@ describe('plugin-meetings', () => {
|
|
|
3241
3175
|
undefined,
|
|
3242
3176
|
meeting.locusId,
|
|
3243
3177
|
{},
|
|
3244
|
-
{meetingId: meeting.id}
|
|
3178
|
+
{meetingId: meeting.id, sendCAevents: false}
|
|
3245
3179
|
);
|
|
3246
3180
|
|
|
3247
3181
|
// parseMeeting info
|
|
@@ -3320,7 +3254,7 @@ describe('plugin-meetings', () => {
|
|
|
3320
3254
|
.throws(new MeetingInfoV2PasswordError(403004, FAKE_MEETING_INFO)),
|
|
3321
3255
|
};
|
|
3322
3256
|
|
|
3323
|
-
await assert.isRejected(meeting.fetchMeetingInfo({}), PasswordError);
|
|
3257
|
+
await assert.isRejected(meeting.fetchMeetingInfo({sendCAevents: true}), PasswordError);
|
|
3324
3258
|
|
|
3325
3259
|
assert.calledWith(
|
|
3326
3260
|
meeting.attrs.meetingInfoProvider.fetchMeetingInfo,
|
|
@@ -3331,7 +3265,7 @@ describe('plugin-meetings', () => {
|
|
|
3331
3265
|
undefined,
|
|
3332
3266
|
'locus-id',
|
|
3333
3267
|
{},
|
|
3334
|
-
{meetingId: meeting.id}
|
|
3268
|
+
{meetingId: meeting.id, sendCAevents: true}
|
|
3335
3269
|
);
|
|
3336
3270
|
|
|
3337
3271
|
assert.deepEqual(meeting.meetingInfo, FAKE_MEETING_INFO);
|
|
@@ -3353,7 +3287,7 @@ describe('plugin-meetings', () => {
|
|
|
3353
3287
|
.throws(new MeetingInfoV2PolicyError(123456, FAKE_MEETING_INFO, 'a message')),
|
|
3354
3288
|
};
|
|
3355
3289
|
|
|
3356
|
-
await assert.isRejected(meeting.fetchMeetingInfo({}), PermissionError);
|
|
3290
|
+
await assert.isRejected(meeting.fetchMeetingInfo({sendCAevents: true}), PermissionError);
|
|
3357
3291
|
|
|
3358
3292
|
assert.calledWith(
|
|
3359
3293
|
meeting.attrs.meetingInfoProvider.fetchMeetingInfo,
|
|
@@ -3364,7 +3298,7 @@ describe('plugin-meetings', () => {
|
|
|
3364
3298
|
undefined,
|
|
3365
3299
|
'locus-id',
|
|
3366
3300
|
{},
|
|
3367
|
-
{meetingId: meeting.id}
|
|
3301
|
+
{meetingId: meeting.id, sendCAevents: true}
|
|
3368
3302
|
);
|
|
3369
3303
|
|
|
3370
3304
|
assert.deepEqual(meeting.meetingInfo, FAKE_MEETING_INFO);
|
|
@@ -3385,6 +3319,7 @@ describe('plugin-meetings', () => {
|
|
|
3385
3319
|
await assert.isRejected(
|
|
3386
3320
|
meeting.fetchMeetingInfo({
|
|
3387
3321
|
password: 'aaa',
|
|
3322
|
+
sendCAevents: true
|
|
3388
3323
|
}),
|
|
3389
3324
|
CaptchaError
|
|
3390
3325
|
);
|
|
@@ -3398,7 +3333,7 @@ describe('plugin-meetings', () => {
|
|
|
3398
3333
|
undefined,
|
|
3399
3334
|
'locus-id',
|
|
3400
3335
|
{},
|
|
3401
|
-
{meetingId: meeting.id}
|
|
3336
|
+
{meetingId: meeting.id, sendCAevents: true}
|
|
3402
3337
|
);
|
|
3403
3338
|
|
|
3404
3339
|
assert.deepEqual(meeting.meetingInfo, {});
|
|
@@ -3430,6 +3365,7 @@ describe('plugin-meetings', () => {
|
|
|
3430
3365
|
meeting.fetchMeetingInfo({
|
|
3431
3366
|
password: 'aaa',
|
|
3432
3367
|
captchaCode: 'bbb',
|
|
3368
|
+
sendCAevents: true,
|
|
3433
3369
|
}),
|
|
3434
3370
|
CaptchaError
|
|
3435
3371
|
);
|
|
@@ -3443,7 +3379,7 @@ describe('plugin-meetings', () => {
|
|
|
3443
3379
|
undefined,
|
|
3444
3380
|
'locus-id',
|
|
3445
3381
|
{},
|
|
3446
|
-
{meetingId: meeting.id}
|
|
3382
|
+
{meetingId: meeting.id, sendCAevents: true}
|
|
3447
3383
|
);
|
|
3448
3384
|
|
|
3449
3385
|
assert.deepEqual(meeting.meetingInfo, {});
|
|
@@ -3465,6 +3401,7 @@ describe('plugin-meetings', () => {
|
|
|
3465
3401
|
|
|
3466
3402
|
await meeting.fetchMeetingInfo({
|
|
3467
3403
|
password: 'aaa',
|
|
3404
|
+
sendCAevents: true,
|
|
3468
3405
|
});
|
|
3469
3406
|
|
|
3470
3407
|
assert.calledWith(
|
|
@@ -3476,7 +3413,7 @@ describe('plugin-meetings', () => {
|
|
|
3476
3413
|
undefined,
|
|
3477
3414
|
'locus-id',
|
|
3478
3415
|
{},
|
|
3479
|
-
{meetingId: meeting.id}
|
|
3416
|
+
{meetingId: meeting.id, sendCAevents: true}
|
|
3480
3417
|
);
|
|
3481
3418
|
|
|
3482
3419
|
assert.deepEqual(meeting.meetingInfo, {
|
|
@@ -3516,6 +3453,7 @@ describe('plugin-meetings', () => {
|
|
|
3516
3453
|
meeting.fetchMeetingInfo({
|
|
3517
3454
|
password: 'aaa',
|
|
3518
3455
|
captchaCode: 'bbb',
|
|
3456
|
+
sendCAevents: true,
|
|
3519
3457
|
})
|
|
3520
3458
|
);
|
|
3521
3459
|
|
|
@@ -3528,7 +3466,7 @@ describe('plugin-meetings', () => {
|
|
|
3528
3466
|
undefined,
|
|
3529
3467
|
'locus-id',
|
|
3530
3468
|
{},
|
|
3531
|
-
{meetingId: meeting.id}
|
|
3469
|
+
{meetingId: meeting.id, sendCAevents: true}
|
|
3532
3470
|
);
|
|
3533
3471
|
|
|
3534
3472
|
assert.deepEqual(meeting.meetingInfo, FAKE_MEETING_INFO);
|
|
@@ -3622,6 +3560,7 @@ describe('plugin-meetings', () => {
|
|
|
3622
3560
|
assert.calledWith(meeting.fetchMeetingInfo, {
|
|
3623
3561
|
password: 'password',
|
|
3624
3562
|
captchaCode: 'captcha id',
|
|
3563
|
+
sendCAevents: false,
|
|
3625
3564
|
});
|
|
3626
3565
|
});
|
|
3627
3566
|
it('handles PasswordError returned by fetchMeetingInfo', async () => {
|