@webex/plugin-meetings 3.0.0-beta.13 → 3.0.0-beta.15

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.
Files changed (252) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/common/browser-detection.js +1 -0
  4. package/dist/common/browser-detection.js.map +1 -1
  5. package/dist/common/collection.js.map +1 -1
  6. package/dist/common/errors/captcha-error.js +5 -5
  7. package/dist/common/errors/captcha-error.js.map +1 -1
  8. package/dist/common/errors/intent-to-join.js +5 -5
  9. package/dist/common/errors/intent-to-join.js.map +1 -1
  10. package/dist/common/errors/join-meeting.js +6 -6
  11. package/dist/common/errors/join-meeting.js.map +1 -1
  12. package/dist/common/errors/media.js +5 -5
  13. package/dist/common/errors/media.js.map +1 -1
  14. package/dist/common/errors/parameter.js +5 -5
  15. package/dist/common/errors/parameter.js.map +1 -1
  16. package/dist/common/errors/password-error.js +5 -5
  17. package/dist/common/errors/password-error.js.map +1 -1
  18. package/dist/common/errors/permission.js +4 -4
  19. package/dist/common/errors/permission.js.map +1 -1
  20. package/dist/common/errors/reconnection.js +5 -5
  21. package/dist/common/errors/reconnection.js.map +1 -1
  22. package/dist/common/errors/stats.js +5 -5
  23. package/dist/common/errors/stats.js.map +1 -1
  24. package/dist/common/errors/webex-errors.js.map +1 -1
  25. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  26. package/dist/common/events/events-scope.js.map +1 -1
  27. package/dist/common/events/events.js.map +1 -1
  28. package/dist/common/events/trigger-proxy.js.map +1 -1
  29. package/dist/common/events/util.js.map +1 -1
  30. package/dist/common/logs/logger-proxy.js.map +1 -1
  31. package/dist/common/logs/request.js.map +1 -1
  32. package/dist/config.js.map +1 -1
  33. package/dist/constants.js.map +1 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/locus-info/controlsUtils.js.map +1 -1
  36. package/dist/locus-info/fullState.js.map +1 -1
  37. package/dist/locus-info/hostUtils.js.map +1 -1
  38. package/dist/locus-info/index.js +11 -8
  39. package/dist/locus-info/index.js.map +1 -1
  40. package/dist/locus-info/infoUtils.js.map +1 -1
  41. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  42. package/dist/locus-info/parser.js +2 -1
  43. package/dist/locus-info/parser.js.map +1 -1
  44. package/dist/locus-info/selfUtils.js +2 -1
  45. package/dist/locus-info/selfUtils.js.map +1 -1
  46. package/dist/media/index.js.map +1 -1
  47. package/dist/media/internal-media-core-wrapper.js.map +1 -1
  48. package/dist/media/properties.js.map +1 -1
  49. package/dist/media/util.js +1 -1
  50. package/dist/media/util.js.map +1 -1
  51. package/dist/mediaQualityMetrics/config.js.map +1 -1
  52. package/dist/meeting/effectsState.js +1 -1
  53. package/dist/meeting/effectsState.js.map +1 -1
  54. package/dist/meeting/in-meeting-actions.js.map +1 -1
  55. package/dist/meeting/index.js +118 -89
  56. package/dist/meeting/index.js.map +1 -1
  57. package/dist/meeting/muteState.js +1 -1
  58. package/dist/meeting/muteState.js.map +1 -1
  59. package/dist/meeting/request.js +25 -0
  60. package/dist/meeting/request.js.map +1 -1
  61. package/dist/meeting/request.type.js +8 -0
  62. package/dist/meeting/request.type.js.map +1 -0
  63. package/dist/meeting/state.js +5 -5
  64. package/dist/meeting/state.js.map +1 -1
  65. package/dist/meeting/util.js.map +1 -1
  66. package/dist/meeting-info/collection.js.map +1 -1
  67. package/dist/meeting-info/index.js +2 -2
  68. package/dist/meeting-info/index.js.map +1 -1
  69. package/dist/meeting-info/meeting-info-v2.js +48 -48
  70. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  71. package/dist/meeting-info/request.js.map +1 -1
  72. package/dist/meeting-info/util.js.map +1 -1
  73. package/dist/meeting-info/utilv2.js +1 -1
  74. package/dist/meeting-info/utilv2.js.map +1 -1
  75. package/dist/meetings/collection.js.map +1 -1
  76. package/dist/meetings/index.js +251 -250
  77. package/dist/meetings/index.js.map +1 -1
  78. package/dist/meetings/request.js +2 -2
  79. package/dist/meetings/request.js.map +1 -1
  80. package/dist/meetings/util.js +14 -14
  81. package/dist/meetings/util.js.map +1 -1
  82. package/dist/member/index.js +31 -31
  83. package/dist/member/index.js.map +1 -1
  84. package/dist/member/util.js.map +1 -1
  85. package/dist/members/collection.js.map +1 -1
  86. package/dist/members/index.js +43 -43
  87. package/dist/members/index.js.map +1 -1
  88. package/dist/members/request.js.map +1 -1
  89. package/dist/members/util.js.map +1 -1
  90. package/dist/metrics/config.js.map +1 -1
  91. package/dist/metrics/constants.js.map +1 -1
  92. package/dist/metrics/index.js +23 -20
  93. package/dist/metrics/index.js.map +1 -1
  94. package/dist/multistream/multistreamMedia.js +2 -1
  95. package/dist/multistream/multistreamMedia.js.map +1 -1
  96. package/dist/multistream/receiveSlot.js.map +1 -1
  97. package/dist/multistream/receiveSlotManager.js +2 -0
  98. package/dist/multistream/receiveSlotManager.js.map +1 -1
  99. package/dist/multistream/remoteMedia.js.map +1 -1
  100. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  101. package/dist/multistream/remoteMediaManager.js.map +1 -1
  102. package/dist/networkQualityMonitor/index.js +8 -8
  103. package/dist/networkQualityMonitor/index.js.map +1 -1
  104. package/dist/personal-meeting-room/index.js +7 -7
  105. package/dist/personal-meeting-room/index.js.map +1 -1
  106. package/dist/personal-meeting-room/request.js.map +1 -1
  107. package/dist/personal-meeting-room/util.js.map +1 -1
  108. package/dist/reachability/index.js.map +1 -1
  109. package/dist/reachability/request.js.map +1 -1
  110. package/dist/reactions/reactions.js.map +1 -1
  111. package/dist/reactions/reactions.type.js +3 -1
  112. package/dist/reactions/reactions.type.js.map +1 -1
  113. package/dist/reconnection-manager/index.js +4 -4
  114. package/dist/reconnection-manager/index.js.map +1 -1
  115. package/dist/roap/index.js +5 -5
  116. package/dist/roap/index.js.map +1 -1
  117. package/dist/roap/request.js.map +1 -1
  118. package/dist/roap/turnDiscovery.js.map +1 -1
  119. package/dist/statsAnalyzer/global.js.map +1 -1
  120. package/dist/statsAnalyzer/index.js.map +1 -1
  121. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  122. package/dist/transcription/index.js +4 -1
  123. package/dist/transcription/index.js.map +1 -1
  124. package/internal-README.md +7 -6
  125. package/package.json +18 -18
  126. package/src/common/browser-detection.ts +9 -6
  127. package/src/common/collection.ts +3 -1
  128. package/src/common/errors/captcha-error.ts +6 -6
  129. package/src/common/errors/intent-to-join.ts +6 -6
  130. package/src/common/errors/join-meeting.ts +12 -8
  131. package/src/common/errors/media.ts +6 -6
  132. package/src/common/errors/parameter.ts +9 -6
  133. package/src/common/errors/password-error.ts +6 -6
  134. package/src/common/errors/permission.ts +5 -5
  135. package/src/common/errors/reconnection.ts +6 -6
  136. package/src/common/errors/stats.ts +6 -6
  137. package/src/common/errors/webex-errors.ts +7 -5
  138. package/src/common/errors/webex-meetings-error.ts +1 -1
  139. package/src/common/events/events-scope.ts +5 -1
  140. package/src/common/events/events.ts +5 -1
  141. package/src/common/events/trigger-proxy.ts +8 -3
  142. package/src/common/events/util.ts +1 -2
  143. package/src/common/logs/logger-proxy.ts +21 -10
  144. package/src/common/logs/request.ts +11 -8
  145. package/src/config.ts +11 -11
  146. package/src/constants.ts +1 -1
  147. package/src/index.js +1 -1
  148. package/src/locus-info/controlsUtils.ts +34 -24
  149. package/src/locus-info/fullState.ts +15 -11
  150. package/src/locus-info/hostUtils.ts +4 -3
  151. package/src/locus-info/index.ts +25 -34
  152. package/src/locus-info/infoUtils.ts +12 -4
  153. package/src/locus-info/mediaSharesUtils.ts +4 -4
  154. package/src/locus-info/parser.ts +45 -68
  155. package/src/locus-info/selfUtils.ts +106 -57
  156. package/src/media/index.ts +123 -135
  157. package/src/media/internal-media-core-wrapper.ts +2 -2
  158. package/src/media/properties.ts +30 -20
  159. package/src/media/util.ts +1 -1
  160. package/src/mediaQualityMetrics/config.ts +46 -46
  161. package/src/meeting/effectsState.ts +35 -35
  162. package/src/meeting/in-meeting-actions.ts +7 -3
  163. package/src/meeting/index.ts +1576 -1291
  164. package/src/meeting/muteState.ts +62 -31
  165. package/src/meeting/request.ts +174 -113
  166. package/src/meeting/request.type.ts +11 -0
  167. package/src/meeting/state.ts +45 -30
  168. package/src/meeting/util.ts +101 -70
  169. package/src/meeting-info/collection.ts +2 -1
  170. package/src/meeting-info/index.ts +32 -30
  171. package/src/meeting-info/meeting-info-v2.ts +106 -108
  172. package/src/meeting-info/request.ts +9 -3
  173. package/src/meeting-info/util.ts +54 -46
  174. package/src/meeting-info/utilv2.ts +59 -53
  175. package/src/meetings/collection.ts +1 -1
  176. package/src/meetings/index.ts +512 -440
  177. package/src/meetings/request.ts +26 -24
  178. package/src/meetings/util.ts +29 -29
  179. package/src/member/index.ts +55 -49
  180. package/src/member/util.ts +26 -13
  181. package/src/members/collection.ts +0 -1
  182. package/src/members/index.ts +182 -126
  183. package/src/members/request.ts +46 -14
  184. package/src/members/util.ts +44 -42
  185. package/src/metrics/config.ts +254 -81
  186. package/src/metrics/constants.ts +0 -2
  187. package/src/metrics/index.ts +84 -71
  188. package/src/multistream/multistreamMedia.ts +1 -0
  189. package/src/multistream/receiveSlot.ts +1 -0
  190. package/src/multistream/receiveSlotManager.ts +1 -0
  191. package/src/multistream/remoteMedia.ts +1 -1
  192. package/src/multistream/remoteMediaGroup.ts +2 -1
  193. package/src/multistream/remoteMediaManager.ts +3 -0
  194. package/src/networkQualityMonitor/index.ts +20 -23
  195. package/src/personal-meeting-room/index.ts +12 -16
  196. package/src/personal-meeting-room/request.ts +10 -3
  197. package/src/personal-meeting-room/util.ts +3 -3
  198. package/src/reachability/index.ts +61 -59
  199. package/src/reachability/request.ts +36 -32
  200. package/src/reactions/reactions.ts +4 -4
  201. package/src/reactions/reactions.type.ts +4 -3
  202. package/src/reconnection-manager/index.ts +139 -84
  203. package/src/roap/index.ts +46 -38
  204. package/src/roap/request.ts +44 -31
  205. package/src/roap/turnDiscovery.ts +59 -30
  206. package/src/statsAnalyzer/global.ts +30 -33
  207. package/src/statsAnalyzer/index.ts +432 -175
  208. package/src/statsAnalyzer/mqaUtil.ts +178 -72
  209. package/src/transcription/index.ts +34 -32
  210. package/test/integration/spec/journey.js +663 -462
  211. package/test/integration/spec/space-meeting.js +318 -203
  212. package/test/integration/spec/transcription.js +6 -7
  213. package/test/unit/spec/common/browser-detection.js +9 -28
  214. package/test/unit/spec/fixture/locus.js +92 -90
  215. package/test/unit/spec/locus-info/controlsUtils.js +5 -5
  216. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  217. package/test/unit/spec/locus-info/index.js +1 -2
  218. package/test/unit/spec/locus-info/infoUtils.js +26 -33
  219. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  220. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  221. package/test/unit/spec/locus-info/parser.js +3 -9
  222. package/test/unit/spec/locus-info/selfConstant.js +72 -103
  223. package/test/unit/spec/locus-info/selfUtils.js +21 -12
  224. package/test/unit/spec/meeting/effectsState.js +36 -46
  225. package/test/unit/spec/meeting/in-meeting-actions.ts +2 -3
  226. package/test/unit/spec/meeting/index.js +1342 -684
  227. package/test/unit/spec/meeting/muteState.js +42 -33
  228. package/test/unit/spec/meeting/request.js +75 -45
  229. package/test/unit/spec/meeting/utils.js +78 -53
  230. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  231. package/test/unit/spec/meeting-info/request.js +7 -9
  232. package/test/unit/spec/meeting-info/util.js +11 -12
  233. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  234. package/test/unit/spec/meetings/collection.js +1 -1
  235. package/test/unit/spec/meetings/index.js +438 -257
  236. package/test/unit/spec/meetings/utils.js +14 -12
  237. package/test/unit/spec/member/index.js +0 -1
  238. package/test/unit/spec/member/util.js +5 -6
  239. package/test/unit/spec/members/index.js +104 -54
  240. package/test/unit/spec/members/request.js +29 -20
  241. package/test/unit/spec/members/utils.js +8 -5
  242. package/test/unit/spec/metrics/index.js +16 -21
  243. package/test/unit/spec/networkQualityMonitor/index.js +21 -15
  244. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  245. package/test/unit/spec/reachability/index.ts +9 -11
  246. package/test/unit/spec/reconnection-manager/index.js +16 -18
  247. package/test/unit/spec/roap/turnDiscovery.ts +22 -19
  248. package/test/unit/spec/stats-analyzer/index.js +25 -20
  249. package/test/utils/cmr.js +44 -42
  250. package/test/utils/testUtils.js +83 -74
  251. package/test/utils/webex-config.js +18 -18
  252. package/test/utils/webex-test-users.js +53 -50
@@ -12,11 +12,15 @@ import {
12
12
  _PERSONAL_ROOM_,
13
13
  _CONVERSATION_URL_,
14
14
  _SIP_URI_,
15
- WBXAPPAPI_SERVICE
15
+ WBXAPPAPI_SERVICE,
16
16
  } from '@webex/plugin-meetings/src/constants';
17
17
 
18
18
  import Meetings from '@webex/plugin-meetings/src/meetings';
19
- import MeetingInfo, {MeetingInfoV2PasswordError, MeetingInfoV2CaptchaError, MeetingInfoV2AdhocMeetingError} from '@webex/plugin-meetings/src/meeting-info/meeting-info-v2';
19
+ import MeetingInfo, {
20
+ MeetingInfoV2PasswordError,
21
+ MeetingInfoV2CaptchaError,
22
+ MeetingInfoV2AdhocMeetingError,
23
+ } from '@webex/plugin-meetings/src/meeting-info/meeting-info-v2';
20
24
  import MeetingInfoUtil from '@webex/plugin-meetings/src/meeting-info/utilv2';
21
25
  import Metrics from '@webex/plugin-meetings/src/metrics';
22
26
  import BEHAVIORAL_METRICS from '@webex/plugin-meetings/src/metrics/constants';
@@ -32,16 +36,15 @@ describe('plugin-meetings', () => {
32
36
  {
33
37
  id: '344ea183-9d5d-4e77-aed',
34
38
  emailAddress: 'testUser1@cisco.com',
35
- entryUUID: '344ea183-9d5d-4e77-'
36
-
39
+ entryUUID: '344ea183-9d5d-4e77-',
37
40
  },
38
41
  {
39
42
  id: '40b446fe-175c-4628-8a9d',
40
43
  emailAddress: 'testUser2@cisco.com',
41
- entryUUID: '40b446fe-175c-4628'
42
- }
43
- ]
44
- }
44
+ entryUUID: '40b446fe-175c-4628',
45
+ },
46
+ ],
47
+ },
45
48
  };
46
49
  let webex;
47
50
  let meetingInfo = null;
@@ -59,32 +62,33 @@ describe('plugin-meetings', () => {
59
62
  children: {
60
63
  device: Device,
61
64
  mercury: Mercury,
62
- meetings: Meetings
63
- }
65
+ meetings: Meetings,
66
+ },
64
67
  });
65
68
 
66
69
  webex.meetings.preferredWebexSite = 'go.webex.com';
67
- webex.config.meetings = {experimental: {enableUnifiedMeetings: true, enableAdhocMeetings: true}};
70
+ webex.config.meetings = {
71
+ experimental: {enableUnifiedMeetings: true, enableAdhocMeetings: true},
72
+ };
68
73
 
69
74
  Object.assign(webex.internal, {
70
75
  device: {
71
76
  deviceType: 'FAKE_DEVICE',
72
77
  register: sinon.stub().returns(Promise.resolve()),
73
78
  unregister: sinon.stub().returns(Promise.resolve()),
74
- userId: '01824b9b-adef-4b10-b5c1-8a2fe2fb7c0e'
79
+ userId: '01824b9b-adef-4b10-b5c1-8a2fe2fb7c0e',
75
80
  },
76
81
  mercury: {
77
82
  connect: sinon.stub().returns(Promise.resolve()),
78
83
  disconnect: sinon.stub().returns(Promise.resolve()),
79
84
  on: () => {},
80
- off: () => {}
85
+ off: () => {},
81
86
  },
82
87
  conversation: {
83
- get: sinon.stub().returns(Promise.resolve(conversation))
84
- }
88
+ get: sinon.stub().returns(Promise.resolve(conversation)),
89
+ },
85
90
  });
86
91
 
87
-
88
92
  meetingInfo = new MeetingInfo(webex);
89
93
  });
90
94
 
@@ -93,17 +97,22 @@ describe('plugin-meetings', () => {
93
97
  const body = {meetingKey: '1234323'};
94
98
  const requestResponse = {statusCode: 200, body};
95
99
 
96
- sinon.stub(MeetingInfoUtil, 'getDestinationType').returns(Promise.resolve({type: 'MEETING_ID', destination: '123456'}));
100
+ sinon
101
+ .stub(MeetingInfoUtil, 'getDestinationType')
102
+ .returns(Promise.resolve({type: 'MEETING_ID', destination: '123456'}));
97
103
  sinon.stub(MeetingInfoUtil, 'getRequestBody').returns(Promise.resolve(body));
98
104
  webex.request.resolves(requestResponse);
99
105
 
100
106
  const result = await meetingInfo.fetchMeetingInfo({
101
107
  type: _MEETING_ID_,
102
- destination: '1234323'
108
+ destination: '1234323',
103
109
  });
104
110
 
105
111
  assert.calledWith(webex.request, {
106
- method: 'POST', service: WBXAPPAPI_SERVICE, resource: 'meetingInfo', body: {meetingKey: '1234323'}
112
+ method: 'POST',
113
+ service: WBXAPPAPI_SERVICE,
114
+ resource: 'meetingInfo',
115
+ body: {meetingKey: '1234323'},
107
116
  });
108
117
  assert.deepEqual(result, requestResponse);
109
118
 
@@ -115,16 +124,21 @@ describe('plugin-meetings', () => {
115
124
  const body = {meetingKey: '1234323'};
116
125
  const requestResponse = {statusCode: 200, body};
117
126
 
118
- sinon.stub(MeetingInfoUtil, 'getDestinationType').returns(Promise.resolve({type: 'MEETING_ID', destination: '123456'}));
127
+ sinon
128
+ .stub(MeetingInfoUtil, 'getDestinationType')
129
+ .returns(Promise.resolve({type: 'MEETING_ID', destination: '123456'}));
119
130
  sinon.stub(MeetingInfoUtil, 'getRequestBody').returns(Promise.resolve(body));
120
131
  webex.request.resolves(requestResponse);
121
132
 
122
133
  const result = await meetingInfo.fetchMeetingInfo({
123
- type: _PERSONAL_ROOM_
134
+ type: _PERSONAL_ROOM_,
124
135
  });
125
136
 
126
137
  assert.calledWith(webex.request, {
127
- method: 'POST', service: WBXAPPAPI_SERVICE, resource: 'meetingInfo', body: {meetingKey: '1234323'}
138
+ method: 'POST',
139
+ service: WBXAPPAPI_SERVICE,
140
+ resource: 'meetingInfo',
141
+ body: {meetingKey: '1234323'},
128
142
  });
129
143
  assert.deepEqual(result, requestResponse);
130
144
 
@@ -136,20 +150,28 @@ describe('plugin-meetings', () => {
136
150
  const body = {meetingKey: '1234323'};
137
151
  const requestResponse = {statusCode: 200, body};
138
152
 
139
- sinon.stub(MeetingInfoUtil, 'getDestinationType').returns(Promise.resolve({type: _SIP_URI_, destination: 'example@something.webex.com'}));
153
+ sinon
154
+ .stub(MeetingInfoUtil, 'getDestinationType')
155
+ .returns(Promise.resolve({type: _SIP_URI_, destination: 'example@something.webex.com'}));
140
156
  sinon.stub(MeetingInfoUtil, 'getRequestBody').returns(Promise.resolve(body));
141
157
  sinon.stub(MeetingInfoUtil, 'getDirectMeetingInfoURI').returns('https://example.com');
142
158
  webex.request.resolves(requestResponse);
143
159
 
144
- const result = await meetingInfo.fetchMeetingInfo(
145
- 'example@something.webex.com',
146
- _SIP_URI_,
147
- );
160
+ const result = await meetingInfo.fetchMeetingInfo('example@something.webex.com', _SIP_URI_);
148
161
 
149
- assert.calledWith(MeetingInfoUtil.getDestinationType, {destination: 'example@something.webex.com', type: _SIP_URI_, webex});
150
- assert.calledWith(MeetingInfoUtil.getDirectMeetingInfoURI, {destination: 'example@something.webex.com', type: _SIP_URI_});
162
+ assert.calledWith(MeetingInfoUtil.getDestinationType, {
163
+ destination: 'example@something.webex.com',
164
+ type: _SIP_URI_,
165
+ webex,
166
+ });
167
+ assert.calledWith(MeetingInfoUtil.getDirectMeetingInfoURI, {
168
+ destination: 'example@something.webex.com',
169
+ type: _SIP_URI_,
170
+ });
151
171
  assert.calledWith(webex.request, {
152
- method: 'POST', uri: 'https://example.com', body: {meetingKey: '1234323'}
172
+ method: 'POST',
173
+ uri: 'https://example.com',
174
+ body: {meetingKey: '1234323'},
153
175
  });
154
176
  assert.deepEqual(result, requestResponse);
155
177
 
@@ -163,7 +185,10 @@ describe('plugin-meetings', () => {
163
185
 
164
186
  webex.request.resolves(requestResponse);
165
187
 
166
- const result = await meetingInfo.fetchMeetingInfo('1234323', _MEETING_ID_, 'abc', {id: '999', code: 'aabbcc11'});
188
+ const result = await meetingInfo.fetchMeetingInfo('1234323', _MEETING_ID_, 'abc', {
189
+ id: '999',
190
+ code: 'aabbcc11',
191
+ });
167
192
 
168
193
  assert.calledWith(webex.request, {
169
194
  method: 'POST',
@@ -175,14 +200,14 @@ describe('plugin-meetings', () => {
175
200
  meetingKey: '1234323',
176
201
  password: 'abc',
177
202
  captchaID: '999',
178
- captchaVerifyCode: 'aabbcc11'
179
- }
203
+ captchaVerifyCode: 'aabbcc11',
204
+ },
180
205
  });
181
206
  assert.deepEqual(result, requestResponse);
182
207
  assert(Metrics.sendBehavioralMetric.calledOnce);
183
208
  assert.calledWith(
184
209
  Metrics.sendBehavioralMetric,
185
- BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS,
210
+ BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS
186
211
  );
187
212
  });
188
213
 
@@ -223,10 +248,12 @@ describe('plugin-meetings', () => {
223
248
  webex.request = sinon.stub().rejects({statusCode: 403, body: {code: 400000}});
224
249
  try {
225
250
  await meetingInfo.createAdhocSpaceMeeting('conversationUrl');
226
- }
227
- catch (err) {
251
+ } catch (err) {
228
252
  assert.instanceOf(err, MeetingInfoV2AdhocMeetingError);
229
- assert.deepEqual(err.message, 'Failed starting the adhoc meeting, Please contact support team , code=400000');
253
+ assert.deepEqual(
254
+ err.message,
255
+ 'Failed starting the adhoc meeting, Please contact support team , code=400000'
256
+ );
230
257
  assert.equal(err.wbxAppApiCode, 400000);
231
258
  }
232
259
  });
@@ -234,18 +261,19 @@ describe('plugin-meetings', () => {
234
261
  it('should throw MeetingInfoV2PasswordError for 403 response', async () => {
235
262
  const FAKE_MEETING_INFO = {blablabla: 'some_fake_meeting_info'};
236
263
 
237
- webex.request = sinon.stub().rejects({statusCode: 403, body: {code: 403000, data: {meetingInfo: FAKE_MEETING_INFO}}});
264
+ webex.request = sinon
265
+ .stub()
266
+ .rejects({statusCode: 403, body: {code: 403000, data: {meetingInfo: FAKE_MEETING_INFO}}});
238
267
 
239
268
  try {
240
- await meetingInfo.fetchMeetingInfo('1234323', _MEETING_ID_, 'abc', {id: '999', code: 'aabbcc11'});
269
+ await meetingInfo.fetchMeetingInfo('1234323', _MEETING_ID_, 'abc', {
270
+ id: '999',
271
+ code: 'aabbcc11',
272
+ });
241
273
  assert.fail('fetchMeetingInfo should have thrown, but has not done that');
242
- }
243
- catch (err) {
274
+ } catch (err) {
244
275
  assert(Metrics.sendBehavioralMetric.calledOnce);
245
- assert.calledWith(
246
- Metrics.sendBehavioralMetric,
247
- BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR,
248
- );
276
+ assert.calledWith(Metrics.sendBehavioralMetric, BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR);
249
277
  assert.instanceOf(err, MeetingInfoV2PasswordError);
250
278
  assert.deepEqual(err.meetingInfo, FAKE_MEETING_INFO);
251
279
  assert.equal(err.wbxAppApiCode, 403000);
@@ -254,34 +282,34 @@ describe('plugin-meetings', () => {
254
282
 
255
283
  describe('should throw MeetingInfoV2CaptchaError for 423 response', () => {
256
284
  const runTest = async (wbxAppApiCode, expectedIsPasswordRequired) => {
257
- webex.request = sinon.stub().rejects(
258
- {
259
- statusCode: 423,
260
- body: {
261
- code: wbxAppApiCode,
262
- captchaID: 'fake_captcha_id',
263
- verificationImageURL: 'fake_image_url',
264
- verificationAudioURL: 'fake_audio_url',
265
- refreshURL: 'fake_refresh_url'
266
- }
267
- }
268
- );
285
+ webex.request = sinon.stub().rejects({
286
+ statusCode: 423,
287
+ body: {
288
+ code: wbxAppApiCode,
289
+ captchaID: 'fake_captcha_id',
290
+ verificationImageURL: 'fake_image_url',
291
+ verificationAudioURL: 'fake_audio_url',
292
+ refreshURL: 'fake_refresh_url',
293
+ },
294
+ });
269
295
  try {
270
- await meetingInfo.fetchMeetingInfo('1234323', _MEETING_ID_, 'abc', {id: '999', code: 'aabbcc11'});
296
+ await meetingInfo.fetchMeetingInfo('1234323', _MEETING_ID_, 'abc', {
297
+ id: '999',
298
+ code: 'aabbcc11',
299
+ });
271
300
  assert.fail('fetchMeetingInfo should have thrown, but has not done that');
272
- }
273
- catch (err) {
301
+ } catch (err) {
274
302
  assert(Metrics.sendBehavioralMetric.calledOnce);
275
303
  assert.calledWith(
276
304
  Metrics.sendBehavioralMetric,
277
- BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR,
305
+ BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR
278
306
  );
279
307
  assert.instanceOf(err, MeetingInfoV2CaptchaError);
280
308
  assert.deepEqual(err.captchaInfo, {
281
309
  captchaId: 'fake_captcha_id',
282
310
  verificationImageURL: 'fake_image_url',
283
311
  verificationAudioURL: 'fake_audio_url',
284
- refreshURL: 'fake_refresh_url'
312
+ refreshURL: 'fake_refresh_url',
285
313
  });
286
314
  assert.equal(err.wbxAppApiCode, wbxAppApiCode);
287
315
  assert.equal(err.isPasswordRequired, expectedIsPasswordRequired);
@@ -302,7 +330,6 @@ describe('plugin-meetings', () => {
302
330
  });
303
331
  });
304
332
 
305
-
306
333
  describe('createAdhocSpaceMeeting', () => {
307
334
  it('Make a request to /instantSpace when conversationUrl', async () => {
308
335
  const conversationUrl = 'https://conversationUrl/xxx';
@@ -310,18 +337,21 @@ describe('plugin-meetings', () => {
310
337
 
311
338
  invitee.push({
312
339
  email: conversation.participants.items[0].emailAddress,
313
- ciUserUuid: conversation.participants.items[0].entryUUID
340
+ ciUserUuid: conversation.participants.items[0].entryUUID,
314
341
  });
315
342
 
316
343
  invitee.push({
317
344
  email: conversation.participants.items[1].emailAddress,
318
- ciUserUuid: conversation.participants.items[1].entryUUID
345
+ ciUserUuid: conversation.participants.items[1].entryUUID,
319
346
  });
320
347
 
321
348
  await meetingInfo.createAdhocSpaceMeeting(conversationUrl);
322
349
 
323
- assert.calledWith(webex.internal.conversation.get, {url: conversationUrl},
324
- {includeParticipants: true, disableTransform: true});
350
+ assert.calledWith(
351
+ webex.internal.conversation.get,
352
+ {url: conversationUrl},
353
+ {includeParticipants: true, disableTransform: true}
354
+ );
325
355
 
326
356
  assert.calledWith(webex.request, {
327
357
  method: 'POST',
@@ -331,14 +361,11 @@ describe('plugin-meetings', () => {
331
361
  spaceUrl: conversation.url,
332
362
  keyUrl: conversation.encryptionKeyUrl,
333
363
  kroUrl: conversation.kmsResourceObjectUrl,
334
- invitees: invitee
335
- }
364
+ invitees: invitee,
365
+ },
336
366
  });
337
367
  assert(Metrics.sendBehavioralMetric.calledOnce);
338
- assert.calledWith(
339
- Metrics.sendBehavioralMetric,
340
- BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS,
341
- );
368
+ assert.calledWith(Metrics.sendBehavioralMetric, BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);
342
369
  });
343
370
  });
344
371
  });
@@ -8,9 +8,7 @@ import MockWebex from '@webex/test-helper-mock-webex';
8
8
  import Device from '@webex/internal-plugin-device';
9
9
  import Mercury from '@webex/internal-plugin-mercury';
10
10
  import Meetings from '@webex/plugin-meetings/src/meetings';
11
- import {
12
- _LOCUS_ID_
13
- } from '@webex/plugin-meetings/src/constants';
11
+ import {_LOCUS_ID_} from '@webex/plugin-meetings/src/constants';
14
12
 
15
13
  import MeetingInfoRequest from '../../../../src/meeting-info/request';
16
14
 
@@ -24,22 +22,22 @@ describe('plugin-meetings', () => {
24
22
  children: {
25
23
  device: Device,
26
24
  mercury: Mercury,
27
- meetings: Meetings
28
- }
25
+ meetings: Meetings,
26
+ },
29
27
  });
30
28
 
31
29
  Object.assign(webex.internal, {
32
30
  device: {
33
31
  deviceType: 'FAKE_DEVICE',
34
32
  register: sinon.stub().returns(Promise.resolve()),
35
- unregister: sinon.stub().returns(Promise.resolve())
33
+ unregister: sinon.stub().returns(Promise.resolve()),
36
34
  },
37
35
  mercury: {
38
36
  connect: sinon.stub().returns(Promise.resolve()),
39
37
  disconnect: sinon.stub().returns(Promise.resolve()),
40
38
  on: () => {},
41
- off: () => {}
42
- }
39
+ off: () => {},
40
+ },
43
41
  });
44
42
 
45
43
  meetingInfoRequest = new MeetingInfoRequest(webex);
@@ -56,7 +54,7 @@ describe('plugin-meetings', () => {
56
54
  it('Should call request with valid parameter', () => {
57
55
  meetingInfoRequest.fetchMeetingInfo({
58
56
  type: _LOCUS_ID_,
59
- destination: 'locus_url'
57
+ destination: 'locus_url',
60
58
  });
61
59
 
62
60
  assert.calledWith(webex.request, {method: 'PUT', uri: 'locus_url/meetingInfo'});
@@ -5,31 +5,30 @@ import MeetingInfoUtil from '@webex/plugin-meetings/src/meeting-info/util';
5
5
  describe('plugin-meetings', () => {
6
6
  describe('meeting-info#util', () => {
7
7
  describe('#generateOptions()', () => {
8
- it('should resolve with a \'wasHydraPerson\' key:value when provided a hydra person Id', () => {
8
+ it("should resolve with a 'wasHydraPerson' key:value when provided a hydra person Id", () => {
9
9
  const getSipUriFromHydraPersonId = sinon
10
10
  .stub(MeetingInfoUtil, 'getSipUriFromHydraPersonId')
11
11
  .resolves('example-destination');
12
12
 
13
- const isConversationUrl = sinon
14
- .stub(MeetingInfoUtil, 'isConversationUrl')
15
- .returns(false);
13
+ const isConversationUrl = sinon.stub(MeetingInfoUtil, 'isConversationUrl').returns(false);
16
14
 
17
15
  return MeetingInfoUtil.generateOptions({
18
- destination: 'Y2lzY29zcGFyazovL3VzL1BFT1BMRS81NTU1NTU1NS01NTU1LTU1NTUtODU1NS01NTU1NTU1NTU1NTU='
19
- })
20
- .then(({wasHydraPerson}) => {
21
- assert.isTrue(wasHydraPerson);
16
+ destination:
17
+ 'Y2lzY29zcGFyazovL3VzL1BFT1BMRS81NTU1NTU1NS01NTU1LTU1NTUtODU1NS01NTU1NTU1NTU1NTU=',
18
+ }).then(({wasHydraPerson}) => {
19
+ assert.isTrue(wasHydraPerson);
22
20
 
23
- getSipUriFromHydraPersonId.restore();
24
- isConversationUrl.restore();
25
- });
21
+ getSipUriFromHydraPersonId.restore();
22
+ isConversationUrl.restore();
23
+ });
26
24
  });
27
25
  });
28
26
 
29
27
  describe('#getHydraId()', () => {
30
28
  it('should provide the clusterId of a given roomId', () => {
31
29
  // US Cluster fake roomId.
32
- const roomId = 'Y2lzY29zcGFyazovL3VzL1JPT00vYzEwODQ5YzAtNTZlMy0yMmViLWE4Y2ItZTllNzcwN2JjY2I4';
30
+ const roomId =
31
+ 'Y2lzY29zcGFyazovL3VzL1JPT00vYzEwODQ5YzAtNTZlMy0yMmViLWE4Y2ItZTllNzcwN2JjY2I4';
33
32
 
34
33
  assert.equal(MeetingInfoUtil.getHydraId(roomId).cluster, 'us');
35
34
  });