@webex/plugin-meetings 3.9.0-next.4 → 3.9.0-next.6
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 +2 -2
- package/dist/meeting/index.js.map +1 -1
- package/dist/webinar/index.js +1 -1
- package/package.json +13 -13
- package/src/meeting/index.ts +2 -2
- package/test/unit/spec/meeting/index.js +23 -21
package/dist/webinar/index.js
CHANGED
package/package.json
CHANGED
@@ -43,7 +43,7 @@
|
|
43
43
|
"@webex/eslint-config-legacy": "0.0.0",
|
44
44
|
"@webex/jest-config-legacy": "0.0.0",
|
45
45
|
"@webex/legacy-tools": "0.0.0",
|
46
|
-
"@webex/plugin-rooms": "3.9.0-next.
|
46
|
+
"@webex/plugin-rooms": "3.9.0-next.2",
|
47
47
|
"@webex/test-helper-chai": "3.8.1-next.11",
|
48
48
|
"@webex/test-helper-mocha": "3.8.1-next.11",
|
49
49
|
"@webex/test-helper-mock-webex": "3.8.1-next.11",
|
@@ -63,20 +63,20 @@
|
|
63
63
|
"@webex/common": "3.8.1-next.11",
|
64
64
|
"@webex/event-dictionary-ts": "^1.0.1819",
|
65
65
|
"@webex/internal-media-core": "2.18.5",
|
66
|
-
"@webex/internal-plugin-conversation": "3.9.0-next.
|
67
|
-
"@webex/internal-plugin-device": "3.9.0-next.
|
68
|
-
"@webex/internal-plugin-llm": "3.9.0-next.
|
69
|
-
"@webex/internal-plugin-mercury": "3.9.0-next.
|
70
|
-
"@webex/internal-plugin-metrics": "3.9.0-next.
|
71
|
-
"@webex/internal-plugin-support": "3.9.0-next.
|
72
|
-
"@webex/internal-plugin-user": "3.9.0-next.
|
73
|
-
"@webex/internal-plugin-voicea": "3.9.0-next.
|
66
|
+
"@webex/internal-plugin-conversation": "3.9.0-next.2",
|
67
|
+
"@webex/internal-plugin-device": "3.9.0-next.2",
|
68
|
+
"@webex/internal-plugin-llm": "3.9.0-next.2",
|
69
|
+
"@webex/internal-plugin-mercury": "3.9.0-next.2",
|
70
|
+
"@webex/internal-plugin-metrics": "3.9.0-next.2",
|
71
|
+
"@webex/internal-plugin-support": "3.9.0-next.2",
|
72
|
+
"@webex/internal-plugin-user": "3.9.0-next.2",
|
73
|
+
"@webex/internal-plugin-voicea": "3.9.0-next.2",
|
74
74
|
"@webex/media-helpers": "3.8.1-next.16",
|
75
|
-
"@webex/plugin-people": "3.9.0-next.
|
76
|
-
"@webex/plugin-rooms": "3.9.0-next.
|
75
|
+
"@webex/plugin-people": "3.9.0-next.2",
|
76
|
+
"@webex/plugin-rooms": "3.9.0-next.2",
|
77
77
|
"@webex/ts-sdp": "^1.8.1",
|
78
78
|
"@webex/web-capabilities": "^1.6.0",
|
79
|
-
"@webex/webex-core": "3.9.0-next.
|
79
|
+
"@webex/webex-core": "3.9.0-next.2",
|
80
80
|
"ampersand-collection": "^2.0.2",
|
81
81
|
"bowser": "^2.11.0",
|
82
82
|
"btoa": "^1.2.1",
|
@@ -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.
|
95
|
+
"version": "3.9.0-next.6"
|
96
96
|
}
|
package/src/meeting/index.ts
CHANGED
@@ -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',
|
4059
|
+
sinon.match.has('intervalMetadata', sinon.match.has('meetingUserCount', 3)),
|
4059
4060
|
],
|
4060
4061
|
},
|
4061
4062
|
});
|
4062
|
-
|
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',
|
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
|