@webex/plugin-meetings 3.1.0-next.10 → 3.1.0-next.12

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/src/constants.ts CHANGED
@@ -100,7 +100,7 @@ export const _JOINED_ = 'JOINED';
100
100
  export const _LOCUS_ID_ = 'LOCUS_ID';
101
101
  export const _LEFT_ = 'LEFT';
102
102
  export const _MOVED_ = 'MOVED';
103
-
103
+ export const _ON_HOLD_LOBBY_ = 'ON_HOLD_LOBBY';
104
104
  export const _MEETING_LINK_ = 'MEETING_LINK';
105
105
  export const _MEETING_UUID_ = 'MEETING_UUID';
106
106
  export const _MEETING_ = 'MEETING';
@@ -45,6 +45,8 @@ import {
45
45
  MEETINGNUMBER,
46
46
  _JOINED_,
47
47
  _MOVED_,
48
+ _ON_HOLD_LOBBY_,
49
+ _WAIT_,
48
50
  } from '../constants';
49
51
  import BEHAVIORAL_METRICS from '../metrics/constants';
50
52
  import MeetingInfo from '../meeting-info';
@@ -340,6 +342,9 @@ export default class Meetings extends WebexPlugin {
340
342
  if (newLocus) {
341
343
  const isNewLocusAsBreakout = MeetingsUtil.isBreakoutLocusDTO(newLocus);
342
344
  const isSelfMoved = newLocus?.self?.state === _LEFT_ && newLocus?.self?.reason === _MOVED_;
345
+ const isSelfMovedToLobby =
346
+ newLocus?.self?.devices[0]?.intent?.reason === _ON_HOLD_LOBBY_ &&
347
+ newLocus?.self?.devices[0]?.intent?.type === _WAIT_;
343
348
  if (!meeting) {
344
349
  if (isNewLocusAsBreakout) {
345
350
  LoggerProxy.logger.log(
@@ -352,7 +357,7 @@ export default class Meetings extends WebexPlugin {
352
357
  return this.isNeedHandleMainLocus(meeting, newLocus);
353
358
  }
354
359
  if (!isNewLocusAsBreakout) {
355
- return this.isNeedHandleMainLocus(meeting, newLocus);
360
+ return isSelfMovedToLobby || this.isNeedHandleMainLocus(meeting, newLocus);
356
361
  }
357
362
 
358
363
  return !isSelfMoved;
@@ -1006,6 +1006,7 @@ describe('plugin-meetings', () => {
1006
1006
  callBackInfo: {
1007
1007
  callbackAddress: uri1,
1008
1008
  },
1009
+ devices: [],
1009
1010
  },
1010
1011
  info: {
1011
1012
  webExMeetingId,
@@ -1033,6 +1034,7 @@ describe('plugin-meetings', () => {
1033
1034
  callBackInfo: {
1034
1035
  callbackAddress: uri1,
1035
1036
  },
1037
+ devices: [],
1036
1038
  },
1037
1039
  info: {
1038
1040
  webExMeetingId,
@@ -1047,6 +1049,7 @@ describe('plugin-meetings', () => {
1047
1049
  callBackInfo: {
1048
1050
  callbackAddress: uri1,
1049
1051
  },
1052
+ devices: [],
1050
1053
  },
1051
1054
  info: {
1052
1055
  webExMeetingId,
@@ -1069,6 +1072,7 @@ describe('plugin-meetings', () => {
1069
1072
  callBackInfo: {
1070
1073
  callbackAddress: uri1,
1071
1074
  },
1075
+ devices: [],
1072
1076
  },
1073
1077
  info: {
1074
1078
  webExMeetingId,
@@ -1086,6 +1090,7 @@ describe('plugin-meetings', () => {
1086
1090
  callBackInfo: {
1087
1091
  callbackAddress: uri1,
1088
1092
  },
1093
+ devices: [],
1089
1094
  },
1090
1095
  info: {
1091
1096
  webExMeetingId,
@@ -1116,6 +1121,7 @@ describe('plugin-meetings', () => {
1116
1121
  callBackInfo: {
1117
1122
  callbackAddress: uri1,
1118
1123
  },
1124
+ devices: [],
1119
1125
  },
1120
1126
  info: {
1121
1127
  webExMeetingId,
@@ -1138,6 +1144,7 @@ describe('plugin-meetings', () => {
1138
1144
  callBackInfo: {
1139
1145
  callbackAddress: uri1,
1140
1146
  },
1147
+ devices: [],
1141
1148
  },
1142
1149
  info: {
1143
1150
  webExMeetingId,
@@ -1152,6 +1159,7 @@ describe('plugin-meetings', () => {
1152
1159
  callbackInfo: {
1153
1160
  callbackAddress: uri1,
1154
1161
  },
1162
+ devices: [],
1155
1163
  },
1156
1164
  info: {
1157
1165
  isUnifiedSpaceMeeting,
@@ -2294,6 +2302,7 @@ describe('plugin-meetings', () => {
2294
2302
  sessionType: 'BREAKOUT',
2295
2303
  };
2296
2304
  newLocus.self.state = 'JOINED';
2305
+ newLocus.self.devices = [];
2297
2306
  newLocus.fullState = {
2298
2307
  active: true,
2299
2308
  };
@@ -2310,7 +2319,7 @@ describe('plugin-meetings', () => {
2310
2319
  sessionType: 'MAIN',
2311
2320
  };
2312
2321
  newLocus.self.state = 'JOINED';
2313
-
2322
+ newLocus.self.devices = [];
2314
2323
  LoggerProxy.logger.log = sinon.stub();
2315
2324
  const result = webex.meetings.isNeedHandleLocusDTO(meeting, newLocus);
2316
2325
  assert.equal(result, true);
@@ -2325,11 +2334,26 @@ describe('plugin-meetings', () => {
2325
2334
  };
2326
2335
  newLocus.self.state = 'LEFT';
2327
2336
  newLocus.self.reason = 'MOVED';
2328
-
2337
+ newLocus.self.devices = [];
2329
2338
  LoggerProxy.logger.log = sinon.stub();
2330
2339
  const result = webex.meetings.isNeedHandleLocusDTO(meeting, newLocus);
2331
2340
  assert.equal(result, false);
2332
2341
  });
2342
+ it('moved to lobby, return true', () => {
2343
+ newLocus.controls.breakout = {
2344
+ sessionType: 'MAIN',
2345
+ };
2346
+ newLocus.self.state = 'JOINED';
2347
+ newLocus.self.devices = [{
2348
+ intent: {
2349
+ reason: 'ON_HOLD_LOBBY',
2350
+ type: 'WAIT',
2351
+ }
2352
+ }];
2353
+ LoggerProxy.logger.log = sinon.stub();
2354
+ const result = webex.meetings.isNeedHandleLocusDTO(meeting, newLocus);
2355
+ assert.equal(result, true);
2356
+ });
2333
2357
  });
2334
2358
 
2335
2359
  describe('#getCorrespondingMeetingByLocus', () => {