@webex/plugin-meetings 3.5.0-next.23 → 3.5.0-next.25
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 +3 -1
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/util.js +5 -8
- package/dist/meeting/util.js.map +1 -1
- package/dist/webinar/index.js +1 -1
- package/package.json +21 -21
- package/src/meeting/index.ts +1 -1
- package/src/meeting/util.ts +21 -29
- package/test/unit/spec/meeting/index.js +7 -3
- package/test/unit/spec/meeting/utils.js +34 -84
|
@@ -378,24 +378,36 @@ describe('plugin-meetings', () => {
|
|
|
378
378
|
});
|
|
379
379
|
|
|
380
380
|
describe('joinMeeting', () => {
|
|
381
|
-
|
|
382
|
-
|
|
381
|
+
const joinMeetingResponse = {
|
|
382
|
+
body: {
|
|
383
|
+
mediaConnections: [],
|
|
384
|
+
locus: {
|
|
385
|
+
url: 'differentLocusUrl',
|
|
386
|
+
self: {
|
|
387
|
+
id: 'selfId',
|
|
388
|
+
},
|
|
389
|
+
},
|
|
390
|
+
},
|
|
391
|
+
headers: {
|
|
392
|
+
trackingid: 'trackingId',
|
|
393
|
+
},
|
|
394
|
+
};
|
|
395
|
+
let meeting;
|
|
396
|
+
|
|
397
|
+
beforeEach(() => {
|
|
398
|
+
meeting = {
|
|
383
399
|
meetingJoinUrl: 'meetingJoinUrl',
|
|
384
400
|
locusUrl: 'locusUrl',
|
|
385
401
|
meetingRequest: {
|
|
386
402
|
joinMeeting: sinon.stub().returns(
|
|
387
|
-
Promise.resolve(
|
|
388
|
-
body: {mediaConnections: 'mediaConnections'},
|
|
389
|
-
headers: {
|
|
390
|
-
trackingid: 'trackingId',
|
|
391
|
-
},
|
|
392
|
-
})
|
|
393
|
-
),
|
|
403
|
+
Promise.resolve(joinMeetingResponse)),
|
|
394
404
|
},
|
|
395
405
|
getWebexObject: sinon.stub().returns(webex),
|
|
406
|
+
setLocus: sinon.stub(),
|
|
396
407
|
};
|
|
408
|
+
});
|
|
397
409
|
|
|
398
|
-
|
|
410
|
+
it('#Should call `meetingRequest.joinMeeting', async () => {
|
|
399
411
|
await MeetingUtil.joinMeeting(meeting, {
|
|
400
412
|
reachability: 'reachability',
|
|
401
413
|
roapMessage: 'roapMessage',
|
|
@@ -409,6 +421,10 @@ describe('plugin-meetings', () => {
|
|
|
409
421
|
assert.equal(parameter.reachability, 'reachability');
|
|
410
422
|
assert.equal(parameter.roapMessage, 'roapMessage');
|
|
411
423
|
|
|
424
|
+
assert.calledOnce(meeting.setLocus)
|
|
425
|
+
const setLocusParameter = meeting.setLocus.getCall(0).args[0];
|
|
426
|
+
assert.deepEqual(setLocusParameter, MeetingUtil.parseLocusJoin(joinMeetingResponse))
|
|
427
|
+
|
|
412
428
|
assert.calledWith(webex.internal.newMetrics.submitClientEvent, {
|
|
413
429
|
name: 'client.locus.join.request',
|
|
414
430
|
options: {meetingId: meeting.id},
|
|
@@ -424,21 +440,12 @@ describe('plugin-meetings', () => {
|
|
|
424
440
|
},
|
|
425
441
|
options: {
|
|
426
442
|
meetingId: meeting.id,
|
|
427
|
-
mediaConnections:
|
|
443
|
+
mediaConnections: [],
|
|
428
444
|
},
|
|
429
445
|
});
|
|
430
|
-
parseLocusJoinSpy.restore();
|
|
431
446
|
});
|
|
432
447
|
|
|
433
448
|
it('#Should call meetingRequest.joinMeeting with breakoutsSupported=true when passed in as true', async () => {
|
|
434
|
-
const meeting = {
|
|
435
|
-
meetingRequest: {
|
|
436
|
-
joinMeeting: sinon.stub().returns(Promise.resolve({body: {}, headers: {}})),
|
|
437
|
-
},
|
|
438
|
-
getWebexObject: sinon.stub().returns(webex),
|
|
439
|
-
};
|
|
440
|
-
|
|
441
|
-
const parseLocusJoinSpy = sinon.stub(MeetingUtil, 'parseLocusJoin');
|
|
442
449
|
await MeetingUtil.joinMeeting(meeting, {
|
|
443
450
|
breakoutsSupported: true,
|
|
444
451
|
});
|
|
@@ -447,18 +454,9 @@ describe('plugin-meetings', () => {
|
|
|
447
454
|
const parameter = meeting.meetingRequest.joinMeeting.getCall(0).args[0];
|
|
448
455
|
|
|
449
456
|
assert.equal(parameter.breakoutsSupported, true);
|
|
450
|
-
parseLocusJoinSpy.restore();
|
|
451
457
|
});
|
|
452
458
|
|
|
453
459
|
it('#Should call meetingRequest.joinMeeting with liveAnnotationSupported=true when passed in as true', async () => {
|
|
454
|
-
const meeting = {
|
|
455
|
-
meetingRequest: {
|
|
456
|
-
joinMeeting: sinon.stub().returns(Promise.resolve({body: {}, headers: {}})),
|
|
457
|
-
},
|
|
458
|
-
getWebexObject: sinon.stub().returns(webex),
|
|
459
|
-
};
|
|
460
|
-
|
|
461
|
-
const parseLocusJoinSpy = sinon.stub(MeetingUtil, 'parseLocusJoin');
|
|
462
460
|
await MeetingUtil.joinMeeting(meeting, {
|
|
463
461
|
liveAnnotationSupported: true,
|
|
464
462
|
});
|
|
@@ -467,18 +465,9 @@ describe('plugin-meetings', () => {
|
|
|
467
465
|
const parameter = meeting.meetingRequest.joinMeeting.getCall(0).args[0];
|
|
468
466
|
|
|
469
467
|
assert.equal(parameter.liveAnnotationSupported, true);
|
|
470
|
-
parseLocusJoinSpy.restore();
|
|
471
468
|
});
|
|
472
469
|
|
|
473
470
|
it('#Should call meetingRequest.joinMeeting with locale=en_UK, deviceCapabilities=["TEST"] when they are passed in as those values', async () => {
|
|
474
|
-
const meeting = {
|
|
475
|
-
meetingRequest: {
|
|
476
|
-
joinMeeting: sinon.stub().returns(Promise.resolve({body: {}, headers: {}})),
|
|
477
|
-
},
|
|
478
|
-
getWebexObject: sinon.stub().returns(webex),
|
|
479
|
-
};
|
|
480
|
-
|
|
481
|
-
const parseLocusJoinSpy = sinon.stub(MeetingUtil, 'parseLocusJoin');
|
|
482
471
|
await MeetingUtil.joinMeeting(meeting, {
|
|
483
472
|
locale: 'en_UK',
|
|
484
473
|
deviceCapabilities: ['TEST'],
|
|
@@ -489,21 +478,10 @@ describe('plugin-meetings', () => {
|
|
|
489
478
|
|
|
490
479
|
assert.equal(parameter.locale, 'en_UK');
|
|
491
480
|
assert.deepEqual(parameter.deviceCapabilities, ['TEST']);
|
|
492
|
-
parseLocusJoinSpy.restore();
|
|
493
481
|
});
|
|
494
482
|
|
|
495
483
|
it('#Should call meetingRequest.joinMeeting with preferTranscoding=false when multistream is enabled', async () => {
|
|
496
|
-
|
|
497
|
-
isMultistream: true,
|
|
498
|
-
meetingJoinUrl: 'meetingJoinUrl',
|
|
499
|
-
locusUrl: 'locusUrl',
|
|
500
|
-
meetingRequest: {
|
|
501
|
-
joinMeeting: sinon.stub().returns(Promise.resolve({body: {}, headers: {}})),
|
|
502
|
-
},
|
|
503
|
-
getWebexObject: sinon.stub().returns(webex),
|
|
504
|
-
};
|
|
505
|
-
|
|
506
|
-
const parseLocusJoinSpy = sinon.stub(MeetingUtil, 'parseLocusJoin');
|
|
484
|
+
meeting.isMultistream = true;
|
|
507
485
|
await MeetingUtil.joinMeeting(meeting, {});
|
|
508
486
|
|
|
509
487
|
assert.calledOnce(meeting.meetingRequest.joinMeeting);
|
|
@@ -511,40 +489,22 @@ describe('plugin-meetings', () => {
|
|
|
511
489
|
|
|
512
490
|
assert.equal(parameter.inviteeAddress, 'meetingJoinUrl');
|
|
513
491
|
assert.equal(parameter.preferTranscoding, false);
|
|
514
|
-
parseLocusJoinSpy.restore();
|
|
515
492
|
});
|
|
516
493
|
|
|
517
494
|
it('#Should fallback sipUrl if meetingJoinUrl does not exists', async () => {
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
locusUrl: 'locusUrl',
|
|
521
|
-
meetingRequest: {
|
|
522
|
-
joinMeeting: sinon.stub().returns(Promise.resolve({body: {}, headers: {}})),
|
|
523
|
-
},
|
|
524
|
-
getWebexObject: sinon.stub().returns(webex),
|
|
525
|
-
};
|
|
526
|
-
|
|
527
|
-
const parseLocusJoinSpy = sinon.stub(MeetingUtil, 'parseLocusJoin');
|
|
495
|
+
meeting.meetingJoinUrl = undefined;
|
|
496
|
+
meeting.sipUri = 'sipUri';
|
|
528
497
|
await MeetingUtil.joinMeeting(meeting, {});
|
|
529
498
|
|
|
530
499
|
assert.calledOnce(meeting.meetingRequest.joinMeeting);
|
|
531
500
|
const parameter = meeting.meetingRequest.joinMeeting.getCall(0).args[0];
|
|
532
501
|
|
|
533
502
|
assert.equal(parameter.inviteeAddress, 'sipUri');
|
|
534
|
-
parseLocusJoinSpy.restore();
|
|
535
503
|
});
|
|
536
504
|
|
|
537
505
|
it('#Should fallback to meetingNumber if meetingJoinUrl/sipUrl does not exists', async () => {
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
locusUrl: 'locusUrl',
|
|
541
|
-
meetingRequest: {
|
|
542
|
-
joinMeeting: sinon.stub().returns(Promise.resolve({body: {}, headers: {}})),
|
|
543
|
-
},
|
|
544
|
-
getWebexObject: sinon.stub().returns(webex),
|
|
545
|
-
};
|
|
546
|
-
|
|
547
|
-
const parseLocusJoinSpy = sinon.stub(MeetingUtil, 'parseLocusJoin');
|
|
506
|
+
meeting.meetingJoinUrl = undefined;
|
|
507
|
+
meeting.meetingNumber = 'meetingNumber';
|
|
548
508
|
await MeetingUtil.joinMeeting(meeting, {});
|
|
549
509
|
|
|
550
510
|
assert.calledOnce(meeting.meetingRequest.joinMeeting);
|
|
@@ -552,28 +512,18 @@ describe('plugin-meetings', () => {
|
|
|
552
512
|
|
|
553
513
|
assert.isUndefined(parameter.inviteeAddress);
|
|
554
514
|
assert.equal(parameter.meetingNumber, 'meetingNumber');
|
|
555
|
-
parseLocusJoinSpy.restore();
|
|
556
515
|
});
|
|
557
516
|
|
|
558
517
|
it('should pass in the locusClusterUrl from meetingInfo', async () => {
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
locusClusterUrl: 'locusClusterUrl',
|
|
562
|
-
},
|
|
563
|
-
meetingRequest: {
|
|
564
|
-
joinMeeting: sinon.stub().returns(Promise.resolve({body: {}, headers: {}})),
|
|
565
|
-
},
|
|
566
|
-
getWebexObject: sinon.stub().returns(webex),
|
|
518
|
+
meeting.meetingInfo = {
|
|
519
|
+
locusClusterUrl: 'locusClusterUrl',
|
|
567
520
|
};
|
|
568
|
-
|
|
569
|
-
const parseLocusJoinSpy = sinon.stub(MeetingUtil, 'parseLocusJoin');
|
|
570
521
|
await MeetingUtil.joinMeeting(meeting, {});
|
|
571
522
|
|
|
572
523
|
assert.calledOnce(meeting.meetingRequest.joinMeeting);
|
|
573
524
|
const parameter = meeting.meetingRequest.joinMeeting.getCall(0).args[0];
|
|
574
525
|
|
|
575
526
|
assert.equal(parameter.locusClusterUrl, 'locusClusterUrl');
|
|
576
|
-
parseLocusJoinSpy.restore();
|
|
577
527
|
});
|
|
578
528
|
});
|
|
579
529
|
|