@webex/plugin-meetings 3.8.0 → 3.8.1-next.1

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 (360) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +70 -6
  3. package/dist/breakouts/index.js.map +1 -1
  4. package/dist/common/errors/webex-errors.js +12 -2
  5. package/dist/common/errors/webex-errors.js.map +1 -1
  6. package/dist/config.js +5 -1
  7. package/dist/config.js.map +1 -1
  8. package/dist/constants.js +23 -123
  9. package/dist/constants.js.map +1 -1
  10. package/dist/controls-options-manager/enums.js +2 -0
  11. package/dist/controls-options-manager/enums.js.map +1 -1
  12. package/dist/controls-options-manager/types.js.map +1 -1
  13. package/dist/controls-options-manager/util.js +52 -0
  14. package/dist/controls-options-manager/util.js.map +1 -1
  15. package/dist/interpretation/index.js +4 -4
  16. package/dist/interpretation/index.js.map +1 -1
  17. package/dist/interpretation/siLanguage.js +1 -1
  18. package/dist/locus-info/controlsUtils.js +31 -11
  19. package/dist/locus-info/controlsUtils.js.map +1 -1
  20. package/dist/locus-info/index.js +83 -12
  21. package/dist/locus-info/index.js.map +1 -1
  22. package/dist/locus-info/selfUtils.js +432 -418
  23. package/dist/locus-info/selfUtils.js.map +1 -1
  24. package/dist/media/index.js +17 -17
  25. package/dist/media/index.js.map +1 -1
  26. package/dist/media/properties.js +94 -6
  27. package/dist/media/properties.js.map +1 -1
  28. package/dist/meeting/brbState.js +9 -2
  29. package/dist/meeting/brbState.js.map +1 -1
  30. package/dist/meeting/in-meeting-actions.js +17 -1
  31. package/dist/meeting/in-meeting-actions.js.map +1 -1
  32. package/dist/meeting/index.js +661 -334
  33. package/dist/meeting/index.js.map +1 -1
  34. package/dist/meeting/locusMediaRequest.js +21 -22
  35. package/dist/meeting/locusMediaRequest.js.map +1 -1
  36. package/dist/meeting/muteState.js +4 -4
  37. package/dist/meeting/muteState.js.map +1 -1
  38. package/dist/meeting/request.js +30 -0
  39. package/dist/meeting/request.js.map +1 -1
  40. package/dist/meeting/request.type.js.map +1 -1
  41. package/dist/meeting/util.js +13 -2
  42. package/dist/meeting/util.js.map +1 -1
  43. package/dist/meeting-info/meeting-info-v2.js +373 -68
  44. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  45. package/dist/meeting-info/utilv2.js +5 -1
  46. package/dist/meeting-info/utilv2.js.map +1 -1
  47. package/dist/meetings/index.js +136 -1
  48. package/dist/meetings/index.js.map +1 -1
  49. package/dist/meetings/util.js +14 -0
  50. package/dist/meetings/util.js.map +1 -1
  51. package/dist/member/index.js +55 -9
  52. package/dist/member/index.js.map +1 -1
  53. package/dist/member/types.js +3 -0
  54. package/dist/member/types.js.map +1 -1
  55. package/dist/member/util.js +335 -353
  56. package/dist/member/util.js.map +1 -1
  57. package/dist/members/collection.js.map +1 -1
  58. package/dist/members/index.js +137 -29
  59. package/dist/members/index.js.map +1 -1
  60. package/dist/members/request.js +38 -0
  61. package/dist/members/request.js.map +1 -1
  62. package/dist/members/util.js +36 -1
  63. package/dist/members/util.js.map +1 -1
  64. package/dist/metrics/constants.js +10 -0
  65. package/dist/metrics/constants.js.map +1 -1
  66. package/dist/multistream/remoteMediaManager.js +40 -8
  67. package/dist/multistream/remoteMediaManager.js.map +1 -1
  68. package/dist/reachability/clusterReachability.js +63 -27
  69. package/dist/reachability/clusterReachability.js.map +1 -1
  70. package/dist/reachability/index.js +112 -47
  71. package/dist/reachability/index.js.map +1 -1
  72. package/dist/reachability/reachability.types.js +14 -0
  73. package/dist/reachability/reachability.types.js.map +1 -1
  74. package/dist/reachability/request.js +19 -3
  75. package/dist/reachability/request.js.map +1 -1
  76. package/dist/reconnection-manager/index.js +2 -2
  77. package/dist/reconnection-manager/index.js.map +1 -1
  78. package/dist/recording-controller/util.js +5 -5
  79. package/dist/recording-controller/util.js.map +1 -1
  80. package/dist/roap/index.js.map +1 -1
  81. package/dist/roap/turnDiscovery.js +45 -27
  82. package/dist/roap/turnDiscovery.js.map +1 -1
  83. package/dist/roap/types.js +17 -0
  84. package/dist/roap/types.js.map +1 -0
  85. package/dist/types/common/errors/webex-errors.d.ts +7 -1
  86. package/dist/types/config.d.ts +3 -0
  87. package/dist/types/constants.d.ts +16 -85
  88. package/dist/types/controls-options-manager/enums.d.ts +3 -1
  89. package/dist/types/controls-options-manager/types.d.ts +7 -1
  90. package/dist/types/locus-info/index.d.ts +3 -3
  91. package/dist/types/locus-info/selfUtils.d.ts +216 -1
  92. package/dist/types/media/properties.d.ts +15 -0
  93. package/dist/types/meeting/in-meeting-actions.d.ts +16 -0
  94. package/dist/types/meeting/index.d.ts +65 -1
  95. package/dist/types/meeting/muteState.d.ts +0 -1
  96. package/dist/types/meeting/request.d.ts +12 -1
  97. package/dist/types/meeting/request.type.d.ts +6 -0
  98. package/dist/types/meeting/util.d.ts +3 -1
  99. package/dist/types/meeting-info/meeting-info-v2.d.ts +82 -1
  100. package/dist/types/meetings/index.d.ts +57 -0
  101. package/dist/types/member/index.d.ts +21 -6
  102. package/dist/types/member/types.d.ts +73 -14
  103. package/dist/types/member/util.d.ts +156 -1
  104. package/dist/types/members/collection.d.ts +6 -5
  105. package/dist/types/members/index.d.ts +32 -43
  106. package/dist/types/members/request.d.ts +26 -0
  107. package/dist/types/members/util.d.ts +27 -0
  108. package/dist/types/metrics/constants.d.ts +10 -0
  109. package/dist/types/multistream/remoteMediaManager.d.ts +10 -1
  110. package/dist/types/reachability/clusterReachability.d.ts +15 -7
  111. package/dist/types/reachability/index.d.ts +10 -1
  112. package/dist/types/reachability/reachability.types.d.ts +5 -0
  113. package/dist/types/roap/index.d.ts +3 -2
  114. package/dist/types/roap/turnDiscovery.d.ts +5 -17
  115. package/dist/types/roap/types.d.ts +16 -0
  116. package/dist/webinar/index.js +2 -2
  117. package/dist/webinar/index.js.map +1 -1
  118. package/package.json +24 -23
  119. package/src/breakouts/index.ts +69 -0
  120. package/src/common/errors/webex-errors.ts +8 -1
  121. package/src/config.ts +3 -0
  122. package/src/constants.ts +24 -90
  123. package/src/controls-options-manager/enums.ts +2 -0
  124. package/src/controls-options-manager/types.ts +11 -1
  125. package/src/controls-options-manager/util.ts +62 -0
  126. package/src/interpretation/index.ts +3 -3
  127. package/src/locus-info/controlsUtils.ts +50 -14
  128. package/src/locus-info/index.ts +88 -13
  129. package/src/locus-info/selfUtils.ts +496 -442
  130. package/src/media/index.ts +23 -21
  131. package/src/media/properties.ts +96 -0
  132. package/src/meeting/brbState.ts +11 -2
  133. package/src/meeting/in-meeting-actions.ts +32 -0
  134. package/src/meeting/index.ts +449 -95
  135. package/src/meeting/locusMediaRequest.ts +27 -22
  136. package/src/meeting/muteState.ts +4 -4
  137. package/src/meeting/request.ts +36 -1
  138. package/src/meeting/request.type.ts +7 -0
  139. package/src/meeting/util.ts +11 -2
  140. package/src/meeting-info/meeting-info-v2.ts +254 -8
  141. package/src/meeting-info/utilv2.ts +5 -0
  142. package/src/meetings/index.ts +148 -1
  143. package/src/meetings/util.ts +18 -0
  144. package/src/member/index.ts +68 -22
  145. package/src/member/types.ts +82 -16
  146. package/src/member/util.ts +357 -350
  147. package/src/members/collection.ts +4 -3
  148. package/src/members/index.ts +137 -18
  149. package/src/members/request.ts +44 -0
  150. package/src/members/util.ts +43 -1
  151. package/src/metrics/constants.ts +10 -0
  152. package/src/multistream/remoteMediaManager.ts +32 -10
  153. package/src/reachability/clusterReachability.ts +73 -26
  154. package/src/reachability/index.ts +70 -1
  155. package/src/reachability/reachability.types.ts +6 -0
  156. package/src/reachability/request.ts +7 -0
  157. package/src/reconnection-manager/index.ts +2 -2
  158. package/src/recording-controller/util.ts +17 -13
  159. package/src/roap/index.ts +3 -7
  160. package/src/roap/turnDiscovery.ts +34 -39
  161. package/src/roap/types.ts +23 -0
  162. package/src/webinar/index.ts +1 -1
  163. package/test/unit/spec/breakouts/index.ts +167 -95
  164. package/test/unit/spec/controls-options-manager/util.js +120 -0
  165. package/test/unit/spec/interpretation/index.ts +39 -1
  166. package/test/unit/spec/locus-info/controlsUtils.js +139 -9
  167. package/test/unit/spec/locus-info/index.js +195 -73
  168. package/test/unit/spec/locus-info/selfUtils.js +98 -24
  169. package/test/unit/spec/media/index.ts +150 -18
  170. package/test/unit/spec/media/properties.ts +130 -0
  171. package/test/unit/spec/meeting/brbState.ts +40 -2
  172. package/test/unit/spec/meeting/in-meeting-actions.ts +19 -4
  173. package/test/unit/spec/meeting/index.js +754 -139
  174. package/test/unit/spec/meeting/locusMediaRequest.ts +95 -87
  175. package/test/unit/spec/meeting/muteState.js +73 -2
  176. package/test/unit/spec/meeting/request.js +32 -1
  177. package/test/unit/spec/meeting/utils.js +119 -18
  178. package/test/unit/spec/meeting-info/meetinginfov2.js +484 -114
  179. package/test/unit/spec/meeting-info/utilv2.js +19 -0
  180. package/test/unit/spec/meetings/index.js +146 -2
  181. package/test/unit/spec/member/index.js +7 -0
  182. package/test/unit/spec/member/util.js +24 -0
  183. package/test/unit/spec/members/index.js +304 -78
  184. package/test/unit/spec/members/request.js +68 -22
  185. package/test/unit/spec/members/utils.js +75 -0
  186. package/test/unit/spec/multistream/remoteMediaManager.ts +397 -118
  187. package/test/unit/spec/reachability/clusterReachability.ts +88 -56
  188. package/test/unit/spec/reachability/index.ts +101 -0
  189. package/test/unit/spec/reachability/request.js +47 -2
  190. package/test/unit/spec/reconnection-manager/index.js +4 -4
  191. package/test/unit/spec/roap/turnDiscovery.ts +110 -28
  192. package/test/unit/spec/webinar/index.ts +5 -0
  193. package/dist/annotation/annotation.types.d.ts +0 -42
  194. package/dist/annotation/constants.d.ts +0 -31
  195. package/dist/annotation/index.d.ts +0 -117
  196. package/dist/breakouts/breakout.d.ts +0 -8
  197. package/dist/breakouts/collection.d.ts +0 -5
  198. package/dist/breakouts/edit-lock-error.d.ts +0 -15
  199. package/dist/breakouts/events.d.ts +0 -8
  200. package/dist/breakouts/index.d.ts +0 -5
  201. package/dist/breakouts/request.d.ts +0 -22
  202. package/dist/breakouts/utils.d.ts +0 -15
  203. package/dist/common/browser-detection.d.ts +0 -9
  204. package/dist/common/collection.d.ts +0 -48
  205. package/dist/common/config.d.ts +0 -2
  206. package/dist/common/errors/captcha-error.d.ts +0 -15
  207. package/dist/common/errors/intent-to-join.d.ts +0 -16
  208. package/dist/common/errors/join-meeting.d.ts +0 -17
  209. package/dist/common/errors/media.d.ts +0 -15
  210. package/dist/common/errors/no-meeting-info.d.ts +0 -14
  211. package/dist/common/errors/parameter.d.ts +0 -15
  212. package/dist/common/errors/password-error.d.ts +0 -15
  213. package/dist/common/errors/permission.d.ts +0 -14
  214. package/dist/common/errors/reclaim-host-role-error.js +0 -149
  215. package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
  216. package/dist/common/errors/reclaim-host-role-errors.d.ts +0 -60
  217. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  218. package/dist/common/errors/reconnection-in-progress.js +0 -33
  219. package/dist/common/errors/reconnection-in-progress.js.map +0 -1
  220. package/dist/common/errors/reconnection.d.ts +0 -15
  221. package/dist/common/errors/stats.d.ts +0 -15
  222. package/dist/common/errors/webex-errors.d.ts +0 -93
  223. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  224. package/dist/common/events/events-scope.d.ts +0 -17
  225. package/dist/common/events/events.d.ts +0 -12
  226. package/dist/common/events/trigger-proxy.d.ts +0 -2
  227. package/dist/common/events/util.d.ts +0 -2
  228. package/dist/common/logs/logger-config.d.ts +0 -2
  229. package/dist/common/logs/logger-proxy.d.ts +0 -2
  230. package/dist/common/logs/request.d.ts +0 -36
  231. package/dist/common/queue.d.ts +0 -34
  232. package/dist/config.d.ts +0 -72
  233. package/dist/constants.d.ts +0 -1088
  234. package/dist/controls-options-manager/constants.d.ts +0 -4
  235. package/dist/controls-options-manager/enums.d.ts +0 -15
  236. package/dist/controls-options-manager/index.d.ts +0 -136
  237. package/dist/controls-options-manager/types.d.ts +0 -43
  238. package/dist/controls-options-manager/util.d.ts +0 -1
  239. package/dist/index.d.ts +0 -7
  240. package/dist/interceptors/index.d.ts +0 -2
  241. package/dist/interceptors/locusRetry.d.ts +0 -27
  242. package/dist/interpretation/collection.d.ts +0 -5
  243. package/dist/interpretation/index.d.ts +0 -5
  244. package/dist/interpretation/siLanguage.d.ts +0 -5
  245. package/dist/locus-info/controlsUtils.d.ts +0 -2
  246. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  247. package/dist/locus-info/fullState.d.ts +0 -2
  248. package/dist/locus-info/hostUtils.d.ts +0 -2
  249. package/dist/locus-info/index.d.ts +0 -322
  250. package/dist/locus-info/infoUtils.d.ts +0 -2
  251. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  252. package/dist/locus-info/parser.d.ts +0 -272
  253. package/dist/locus-info/selfUtils.d.ts +0 -2
  254. package/dist/media/index.d.ts +0 -34
  255. package/dist/media/properties.d.ts +0 -93
  256. package/dist/media/util.d.ts +0 -2
  257. package/dist/mediaQualityMetrics/config.d.ts +0 -241
  258. package/dist/mediaQualityMetrics/config.js +0 -502
  259. package/dist/mediaQualityMetrics/config.js.map +0 -1
  260. package/dist/meeting/effectsState.js +0 -260
  261. package/dist/meeting/effectsState.js.map +0 -1
  262. package/dist/meeting/in-meeting-actions.d.ts +0 -167
  263. package/dist/meeting/index.d.ts +0 -1825
  264. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  265. package/dist/meeting/muteState.d.ts +0 -178
  266. package/dist/meeting/request.d.ts +0 -295
  267. package/dist/meeting/request.type.d.ts +0 -11
  268. package/dist/meeting/state.d.ts +0 -9
  269. package/dist/meeting/util.d.ts +0 -119
  270. package/dist/meeting/voicea-meeting.d.ts +0 -16
  271. package/dist/meeting-info/collection.d.ts +0 -20
  272. package/dist/meeting-info/index.d.ts +0 -69
  273. package/dist/meeting-info/meeting-info-v2.d.ts +0 -123
  274. package/dist/meeting-info/request.d.ts +0 -22
  275. package/dist/meeting-info/util.d.ts +0 -2
  276. package/dist/meeting-info/utilv2.d.ts +0 -2
  277. package/dist/meetings/collection.d.ts +0 -40
  278. package/dist/meetings/index.d.ts +0 -390
  279. package/dist/meetings/meetings.types.d.ts +0 -4
  280. package/dist/meetings/request.d.ts +0 -27
  281. package/dist/meetings/util.d.ts +0 -18
  282. package/dist/member/index.d.ts +0 -160
  283. package/dist/member/member.types.js +0 -17
  284. package/dist/member/member.types.js.map +0 -1
  285. package/dist/member/types.d.ts +0 -32
  286. package/dist/member/util.d.ts +0 -2
  287. package/dist/members/collection.d.ts +0 -29
  288. package/dist/members/index.d.ts +0 -353
  289. package/dist/members/request.d.ts +0 -114
  290. package/dist/members/types.d.ts +0 -25
  291. package/dist/members/util.d.ts +0 -215
  292. package/dist/metrics/config.js +0 -276
  293. package/dist/metrics/config.js.map +0 -1
  294. package/dist/metrics/constants.d.ts +0 -70
  295. package/dist/metrics/index.d.ts +0 -45
  296. package/dist/multistream/mediaRequestManager.d.ts +0 -119
  297. package/dist/multistream/receiveSlot.d.ts +0 -68
  298. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  299. package/dist/multistream/remoteMedia.d.ts +0 -72
  300. package/dist/multistream/remoteMediaGroup.d.ts +0 -49
  301. package/dist/multistream/remoteMediaManager.d.ts +0 -300
  302. package/dist/multistream/sendSlotManager.d.ts +0 -69
  303. package/dist/networkQualityMonitor/index.d.ts +0 -70
  304. package/dist/networkQualityMonitor/index.js +0 -221
  305. package/dist/networkQualityMonitor/index.js.map +0 -1
  306. package/dist/peer-connection-manager/index.js +0 -671
  307. package/dist/peer-connection-manager/index.js.map +0 -1
  308. package/dist/peer-connection-manager/util.js +0 -109
  309. package/dist/peer-connection-manager/util.js.map +0 -1
  310. package/dist/personal-meeting-room/index.d.ts +0 -47
  311. package/dist/personal-meeting-room/request.d.ts +0 -14
  312. package/dist/personal-meeting-room/util.d.ts +0 -2
  313. package/dist/reachability/clusterReachability.d.ts +0 -109
  314. package/dist/reachability/index.d.ts +0 -105
  315. package/dist/reachability/request.d.ts +0 -39
  316. package/dist/reachability/util.d.ts +0 -8
  317. package/dist/reactions/constants.d.ts +0 -3
  318. package/dist/reactions/reactions.d.ts +0 -4
  319. package/dist/reactions/reactions.type.d.ts +0 -52
  320. package/dist/reconnection-manager/index.d.ts +0 -136
  321. package/dist/recording-controller/enums.d.ts +0 -7
  322. package/dist/recording-controller/index.d.ts +0 -207
  323. package/dist/recording-controller/util.d.ts +0 -14
  324. package/dist/roap/collection.js +0 -62
  325. package/dist/roap/collection.js.map +0 -1
  326. package/dist/roap/handler.js +0 -275
  327. package/dist/roap/handler.js.map +0 -1
  328. package/dist/roap/index.d.ts +0 -86
  329. package/dist/roap/request.d.ts +0 -39
  330. package/dist/roap/state.js +0 -126
  331. package/dist/roap/state.js.map +0 -1
  332. package/dist/roap/turnDiscovery.d.ts +0 -155
  333. package/dist/roap/util.js +0 -75
  334. package/dist/roap/util.js.map +0 -1
  335. package/dist/rtcMetrics/constants.d.ts +0 -4
  336. package/dist/rtcMetrics/constants.js +0 -11
  337. package/dist/rtcMetrics/constants.js.map +0 -1
  338. package/dist/rtcMetrics/index.d.ts +0 -61
  339. package/dist/rtcMetrics/index.js +0 -197
  340. package/dist/rtcMetrics/index.js.map +0 -1
  341. package/dist/statsAnalyzer/global.d.ts +0 -36
  342. package/dist/statsAnalyzer/global.js +0 -126
  343. package/dist/statsAnalyzer/global.js.map +0 -1
  344. package/dist/statsAnalyzer/index.d.ts +0 -217
  345. package/dist/statsAnalyzer/index.js +0 -1013
  346. package/dist/statsAnalyzer/index.js.map +0 -1
  347. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -48
  348. package/dist/statsAnalyzer/mqaUtil.js +0 -179
  349. package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
  350. package/dist/transcription/index.d.ts +0 -64
  351. package/dist/types/common/errors/reconnection-in-progress.d.ts +0 -9
  352. package/dist/types/mediaQualityMetrics/config.d.ts +0 -241
  353. package/dist/types/networkQualityMonitor/index.d.ts +0 -70
  354. package/dist/types/rtcMetrics/constants.d.ts +0 -4
  355. package/dist/types/rtcMetrics/index.d.ts +0 -71
  356. package/dist/types/statsAnalyzer/global.d.ts +0 -36
  357. package/dist/types/statsAnalyzer/index.d.ts +0 -217
  358. package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
  359. package/dist/webinar/collection.d.ts +0 -16
  360. package/dist/webinar/index.d.ts +0 -5
@@ -22,16 +22,54 @@ describe('plugin-meetings', () => {
22
22
  });
23
23
 
24
24
  describe('#initialize', () => {
25
+ beforeEach(() => {
26
+ interpretation.querySupportLanguages = sinon.stub();
27
+ interpretation.set({
28
+ canManageInterpreters: undefined,
29
+ hostSIEnabled: undefined,
30
+ locusUrl: undefined
31
+ });
32
+ });
33
+
34
+ afterEach(() => {
35
+ interpretation.querySupportLanguages.reset();
36
+ });
37
+
25
38
  it('creates SimultaneousInterpretation as expected', () => {
26
39
  assert.equal(interpretation.namespace, 'Meetings');
27
40
  });
28
41
  it('call querySupportLanguages correctly when meet the conditions', () => {
29
- interpretation.querySupportLanguages = sinon.stub();
30
42
  interpretation.set({
31
43
  canManageInterpreters: true,
44
+ hostSIEnabled: true,
45
+ locusUrl: "MOCK_LOCUS_URL"
32
46
  });
33
47
  assert.called(interpretation.querySupportLanguages);
34
48
  });
49
+
50
+ it('does not call querySupportLanguages when canManageInterpreters is not set', () => {
51
+ interpretation.set({
52
+ hostSIEnabled: true,
53
+ locusUrl: "MOCK_LOCUS_URL"
54
+ });
55
+ assert.notCalled(interpretation.querySupportLanguages);
56
+ });
57
+
58
+ it('does not call querySupportLanguages when hostSIEnabled is not set', () => {
59
+ interpretation.set({
60
+ canManageInterpreters: true,
61
+ locusUrl: "MOCK_LOCUS_URL"
62
+ });
63
+ assert.notCalled(interpretation.querySupportLanguages);
64
+ });
65
+
66
+ it('does not call querySupportLanguages when locusUrl is not set', () => {
67
+ interpretation.set({
68
+ canManageInterpreters: true,
69
+ hostSIEnabled: true,
70
+ });
71
+ assert.notCalled(interpretation.querySupportLanguages);
72
+ });
35
73
  });
36
74
 
37
75
  describe('#cleanUp', () => {
@@ -1,6 +1,10 @@
1
1
  import {assert} from '@webex/test-helper-chai';
2
2
  import ControlsUtils from '@webex/plugin-meetings/src/locus-info/controlsUtils';
3
3
  import controlsUtils from "@webex/plugin-meetings/src/locus-info/controlsUtils";
4
+ import {
5
+ MEETING_STATE,
6
+ BREAKOUTS,
7
+ } from '../../../../src/constants';
4
8
 
5
9
  const defaultControls = {
6
10
  entryExitTone: {
@@ -140,7 +144,25 @@ describe('plugin-meetings', () => {
140
144
  assert.equal(parsedControls.videoLayout.overrideDefault, newControls.videoLayout.overrideDefault);
141
145
  assert.equal(parsedControls.videoLayout.lockAttendeeViewOnStageOnly, newControls.videoLayout.lockAttendeeViewOnStageOnly);
142
146
  assert.equal(parsedControls.videoLayout.stageParameters, newControls.videoLayout.stageParameters);
147
+ });
148
+
149
+ it('should parse the annotationControl control', () => {
150
+ const newControls = {annotationControl: {enabled: true}};
151
+
152
+ const parsedControls = ControlsUtils.parse(newControls);
143
153
 
154
+ assert.equal(
155
+ parsedControls.annotationControl.enabled,
156
+ newControls.annotationControl.enabled
157
+ );
158
+ });
159
+
160
+ it('should parse the rdcControl control', () => {
161
+ const newControls = {rdcControl: {enabled: true}};
162
+
163
+ const parsedControls = ControlsUtils.parse(newControls);
164
+
165
+ assert.equal(parsedControls.rdcControl.enabled, newControls.rdcControl.enabled);
144
166
  });
145
167
 
146
168
  describe('videoEnabled', () => {
@@ -269,6 +291,14 @@ describe('plugin-meetings', () => {
269
291
  assert.equal(updates.hasPracticeSessionEnabledChanged, true);
270
292
  });
271
293
 
294
+ it('returns hasPracticeSessionEnabledChanged = false when enabled is false and previous state is false', () => {
295
+ const newControls = {practiceSession: {enabled: false}};
296
+
297
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
298
+
299
+ assert.equal(updates.hasPracticeSessionEnabledChanged, false);
300
+ });
301
+
272
302
  it('returns hasEntryExitToneChanged = true when mode changed', () => {
273
303
  const newControls = {
274
304
  entryExitTone: {
@@ -365,6 +395,58 @@ describe('plugin-meetings', () => {
365
395
  assert.equal(updates.hasManualCaptionChanged, false);
366
396
  });
367
397
 
398
+ it('returns hasAnnotationControlChanged = true when changed', () => {
399
+ const newControls = {annotationControl: {enabled: true}};
400
+
401
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
402
+
403
+ assert.equal(updates.hasAnnotationControlChanged, true);
404
+ });
405
+
406
+ it('returns hasRemoteDesktopControlChanged = true when changed', () => {
407
+ const newControls = {rdcControl: {enabled: true}};
408
+
409
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
410
+
411
+ assert.equal(updates.hasRemoteDesktopControlChanged, true);
412
+ });
413
+
414
+ it('returns false when previous spoken language is undefined and current is a invalid value', () => {
415
+ const previous = { transcribe: undefined };
416
+ const current = { transcribe: { spokenLanguage: null } };
417
+
418
+ const {updates} = ControlsUtils.getControls(previous, current);
419
+
420
+ assert.equal(updates.hasTranscribeSpokenLanguageChanged, false);
421
+ });
422
+
423
+ it('detects spoken language change when previous is undefined and current is a valid value', () => {
424
+ const previous = { transcribe: undefined };
425
+ const current = { transcribe: { spokenLanguage: 'en-US' } };
426
+
427
+ const {updates} = ControlsUtils.getControls(previous, current);
428
+
429
+ assert.equal(updates.hasTranscribeSpokenLanguageChanged, true);
430
+ });
431
+
432
+ it('returns false when spoken language changes to a same value', () => {
433
+ const previous = { transcribe: {caption: true, spokenLanguage: 'en-US' } };
434
+ const current = { transcribe: {caption: true, spokenLanguage: 'en-US' } };
435
+
436
+ const {updates} = ControlsUtils.getControls(previous, current);
437
+
438
+ assert.equal(updates.hasTranscribeSpokenLanguageChanged, false);
439
+ });
440
+
441
+ it('returns true when spoken language changes to a different value', () => {
442
+ const previous = { transcribe: {caption: true, spokenLanguage: 'en-US' } };
443
+ const current = { transcribe: {caption: true, spokenLanguage: 'fr-FR' } };
444
+
445
+ const {updates} = ControlsUtils.getControls(previous, current);
446
+
447
+ assert.equal(updates.hasTranscribeSpokenLanguageChanged, true);
448
+ });
449
+
368
450
  describe('videoEnabled', () => {
369
451
  const testVideoEnabled = (oldControls, newControls, updatedProperty) => {
370
452
  const result = ControlsUtils.getControls(oldControls, newControls);
@@ -424,28 +506,76 @@ describe('plugin-meetings', () => {
424
506
 
425
507
  describe('getSessionSwitchStatus', () => {
426
508
  it('if no breakout control, return switch status both false', () => {
427
- const oldControls = {};
428
- const newControls = {};
429
- assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldControls, newControls), {
509
+ const oldLocus = {};
510
+ const newLocus = {};
511
+ assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldLocus, newLocus), {
430
512
  isReturnToMain: false, isJoinToBreakout: false
431
513
  });
432
514
  });
433
515
 
434
516
  it('if switch session from breakout to main, return isReturnToMain as true', () => {
435
- const oldControls = {breakout: {sessionType: 'BREAKOUT'}};
436
- const newControls = {breakout: {sessionType: 'MAIN'}};
437
- assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldControls, newControls), {
517
+ const oldLocus = {controls: {breakout: {sessionType: 'BREAKOUT'}}};
518
+ const newLocus = {controls: {breakout: {sessionType: 'MAIN'}}};
519
+ assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldLocus, newLocus), {
438
520
  isReturnToMain: true, isJoinToBreakout: false
439
521
  });
440
522
  });
441
523
 
442
524
  it('if switch session from main to breakout, return isJoinToBreakout as true', () => {
443
- const oldControls = {breakout: {sessionType: 'MAIN'}};
444
- const newControls = {breakout: {sessionType: 'BREAKOUT'}};
445
- assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldControls, newControls), {
525
+ const oldLocus = {controls: {breakout: {sessionType: 'MAIN'}}};
526
+ const newLocus = {controls: {breakout: {sessionType: 'BREAKOUT'}}};
527
+ assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldLocus, newLocus), {
446
528
  isReturnToMain: false, isJoinToBreakout: true
447
529
  });
448
530
  });
531
+
532
+ it('if needUseCache conditions are met, return isJoinToBreakout as true', () => {
533
+ const oldLocus = {
534
+ self: { isCreator: true },
535
+ controls: { breakout: { sessionType: BREAKOUTS.SESSION_TYPES.MAIN} },
536
+ };
537
+
538
+ const newLocus = {
539
+ participants: [
540
+ { isCreator: true, state: MEETING_STATE.STATES.JOINED },
541
+ ],
542
+ controls: {
543
+ breakout: {
544
+ sessionType: BREAKOUTS.SESSION_TYPES.MAIN,
545
+ groups: [{ id: 'group1' }]
546
+ },
547
+ },
548
+ };
549
+
550
+ assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldLocus, newLocus), {
551
+ isReturnToMain: true,
552
+ isJoinToBreakout: false
553
+ });
554
+ });
555
+
556
+ it('if needUseCache conditions are not met, return newLocus and isReturnToMain as false', () => {
557
+ const oldLocus = {
558
+ self: { isCreator: false },
559
+ controls: { breakout: { sessionType: BREAKOUTS.SESSION_TYPES.BREAKOUT} },
560
+ };
561
+
562
+ const newLocus = {
563
+ participants: [
564
+ { isCreator: true, state: MEETING_STATE.STATES.JOINED },
565
+ ],
566
+ controls: {
567
+ breakout: {
568
+ sessionType: BREAKOUTS.SESSION_TYPES.BREAKOUT,
569
+ groups: []
570
+ },
571
+ },
572
+ };
573
+
574
+ assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldLocus, newLocus), {
575
+ isReturnToMain: false,
576
+ isJoinToBreakout: false
577
+ });
578
+ });
449
579
  });
450
580
 
451
581
  describe('#isMainSessionDTO', () => {