@webex/plugin-meetings 3.9.0-next.4 → 3.9.0-next.5

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.
@@ -458,7 +458,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
458
458
  }, _callee7);
459
459
  }))();
460
460
  },
461
- version: "3.9.0-next.4"
461
+ version: "3.9.0-next.5"
462
462
  });
463
463
  var _default = exports.default = Webinar;
464
464
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -92,5 +92,5 @@
92
92
  "//": [
93
93
  "TODO: upgrade jwt-decode when moving to node 18"
94
94
  ],
95
- "version": "3.9.0-next.4"
95
+ "version": "3.9.0-next.5"
96
96
  }
@@ -6965,10 +6965,10 @@ export default class Meeting extends StatelessWebexPlugin {
6965
6965
  }
6966
6966
  }
6967
6967
 
6968
- // Count members that are in the meeting.
6968
+ // Count members that are in the meeting or in the lobby.
6969
6969
  const {members} = this.getMembers().membersCollection;
6970
6970
  event.data.intervalMetadata.meetingUserCount = Object.values(members).filter(
6971
- (member: Member) => member.isInMeeting
6971
+ (member: Member) => member.isInMeeting || member.isInLobby
6972
6972
  ).length;
6973
6973
 
6974
6974
  // @ts-ignore
@@ -487,7 +487,7 @@ describe('plugin-meetings', () => {
487
487
 
488
488
  it('pstnCorrelationId getter/setter should work correctly', () => {
489
489
  const testPstnCorrelationId = uuid.v4();
490
-
490
+
491
491
  meeting.pstnCorrelationId = testPstnCorrelationId;
492
492
  assert.equal(meeting.pstnCorrelationId, testPstnCorrelationId);
493
493
  assert.equal(meeting.callStateForMetrics.pstnCorrelationId, testPstnCorrelationId);
@@ -1992,10 +1992,10 @@ describe('plugin-meetings', () => {
1992
1992
  it('should handle join failure', async () => {
1993
1993
  MeetingUtil.isPinOrGuest = sinon.stub().returns(false);
1994
1994
  webex.internal.newMetrics.submitClientEvent = sinon.stub();
1995
-
1995
+
1996
1996
  await meeting.join().catch(() => {
1997
1997
  assert.calledOnce(MeetingUtil.joinMeeting);
1998
-
1998
+
1999
1999
  // Assert that client.locus.join.response error event is not sent from this function, it is now emitted from MeetingUtil.joinMeeting
2000
2000
  assert.calledOnce(webex.internal.newMetrics.submitClientEvent);
2001
2001
  assert.calledWithMatch(
@@ -4031,13 +4031,14 @@ describe('plugin-meetings', () => {
4031
4031
  });
4032
4032
  });
4033
4033
 
4034
- it('counts the number of members that are in the meeting for MEDIA_QUALITY event', async () => {
4034
+ it('counts the number of members that are in the meeting or lobby for MEDIA_QUALITY event', async () => {
4035
4035
  let fakeMembersCollection = {
4036
4036
  members: {
4037
- member1: {isInMeeting: true},
4038
- member2: {isInMeeting: true},
4039
- member3: {isInMeeting: false},
4040
- },
4037
+ member1: {isInMeeting: true, isInLobby: false},
4038
+ member2: {isInMeeting: false, isInLobby: true},
4039
+ member3: {isInMeeting: false, isInLobby: false},
4040
+ member4: {isInMeeting: true, isInLobby: false},
4041
+ }
4041
4042
  };
4042
4043
  sinon.stub(meeting, 'getMembers').returns({membersCollection: fakeMembersCollection});
4043
4044
  const fakeData = {intervalMetadata: {}};
@@ -4055,11 +4056,12 @@ describe('plugin-meetings', () => {
4055
4056
  },
4056
4057
  payload: {
4057
4058
  intervals: [
4058
- sinon.match.has('intervalMetadata', sinon.match.has('meetingUserCount', 2)),
4059
+ sinon.match.has('intervalMetadata', sinon.match.has('meetingUserCount', 3)),
4059
4060
  ],
4060
4061
  },
4061
4062
  });
4062
- fakeMembersCollection.members.member2.isInMeeting = false;
4063
+ // Move member2 from lobby to neither in meeting nor lobby
4064
+ fakeMembersCollection.members.member2.isInLobby = false;
4063
4065
 
4064
4066
  statsAnalyzerStub.emit(
4065
4067
  {file: 'test', function: 'test'},
@@ -4074,7 +4076,7 @@ describe('plugin-meetings', () => {
4074
4076
  },
4075
4077
  payload: {
4076
4078
  intervals: [
4077
- sinon.match.has('intervalMetadata', sinon.match.has('meetingUserCount', 1)),
4079
+ sinon.match.has('intervalMetadata', sinon.match.has('meetingUserCount', 2)),
4078
4080
  ],
4079
4081
  },
4080
4082
  });
@@ -6548,7 +6550,7 @@ describe('plugin-meetings', () => {
6548
6550
  clientUrl: meeting.deviceUrl,
6549
6551
  });
6550
6552
  assert.notCalled(meeting.meetingRequest.dialOut);
6551
-
6553
+
6552
6554
  // Verify pstnCorrelationId was set
6553
6555
  assert.exists(meeting.pstnCorrelationId);
6554
6556
  assert.notEqual(meeting.pstnCorrelationId, meeting.correlationId);
@@ -6625,7 +6627,7 @@ describe('plugin-meetings', () => {
6625
6627
  throw new Error('Promise resolved when it should have rejected');
6626
6628
  } catch (e) {
6627
6629
  assert.equal(e, error);
6628
-
6630
+
6629
6631
  // Verify behavioral metric was sent with dial_in_correlation_id
6630
6632
  assert.calledWith(Metrics.sendBehavioralMetric, BEHAVIORAL_METRICS.ADD_DIAL_IN_FAILURE, {
6631
6633
  correlation_id: meeting.correlationId,
@@ -6636,7 +6638,7 @@ describe('plugin-meetings', () => {
6636
6638
  reason: error.error.message,
6637
6639
  stack: error.stack,
6638
6640
  });
6639
-
6641
+
6640
6642
  // Verify pstnCorrelationId was cleared after error
6641
6643
  assert.equal(meeting.pstnCorrelationId, undefined);
6642
6644
  }
@@ -6652,7 +6654,7 @@ describe('plugin-meetings', () => {
6652
6654
  throw new Error('Promise resolved when it should have rejected');
6653
6655
  } catch (e) {
6654
6656
  assert.equal(e, error);
6655
-
6657
+
6656
6658
  // Verify behavioral metric was sent with dial_out_correlation_id
6657
6659
  assert.calledWith(Metrics.sendBehavioralMetric, BEHAVIORAL_METRICS.ADD_DIAL_OUT_FAILURE, {
6658
6660
  correlation_id: meeting.correlationId,
@@ -6663,7 +6665,7 @@ describe('plugin-meetings', () => {
6663
6665
  reason: error.error.message,
6664
6666
  stack: error.stack,
6665
6667
  });
6666
-
6668
+
6667
6669
  // Verify pstnCorrelationId was cleared after error
6668
6670
  assert.equal(meeting.pstnCorrelationId, undefined);
6669
6671
  }
@@ -6686,12 +6688,12 @@ describe('plugin-meetings', () => {
6686
6688
 
6687
6689
  it('should disconnect phone audio and clear pstnCorrelationId', async () => {
6688
6690
  meeting.pstnCorrelationId = 'test-pstn-correlation-id';
6689
-
6691
+
6690
6692
  await meeting.disconnectPhoneAudio();
6691
-
6693
+
6692
6694
  // Verify that pstnCorrelationId is cleared
6693
6695
  assert.equal(meeting.pstnCorrelationId, undefined);
6694
-
6696
+
6695
6697
  // Verify that MeetingUtil.disconnectPhoneAudio was called for both dial-in and dial-out
6696
6698
  assert.calledTwice(MeetingUtil.disconnectPhoneAudio);
6697
6699
  assert.calledWith(MeetingUtil.disconnectPhoneAudio, meeting, meeting.dialInUrl);
@@ -6702,9 +6704,9 @@ describe('plugin-meetings', () => {
6702
6704
  meeting.dialInDeviceStatus = 'IDLE';
6703
6705
  meeting.dialOutDeviceStatus = 'IDLE';
6704
6706
  meeting.pstnCorrelationId = 'test-pstn-correlation-id';
6705
-
6707
+
6706
6708
  await meeting.disconnectPhoneAudio();
6707
-
6709
+
6708
6710
  // Verify that pstnCorrelationId is still cleared even when no phone connection is active
6709
6711
  assert.equal(meeting.pstnCorrelationId, undefined);
6710
6712
  // And verify no disconnect was attempted