@webex/plugin-meetings 3.0.0-beta.26 → 3.0.0-beta.261

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 (361) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +114 -14
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/edit-lock-error.js +52 -0
  11. package/dist/breakouts/edit-lock-error.js.map +1 -0
  12. package/dist/breakouts/events.js +45 -0
  13. package/dist/breakouts/events.js.map +1 -0
  14. package/dist/breakouts/index.js +841 -19
  15. package/dist/breakouts/index.js.map +1 -1
  16. package/dist/breakouts/request.js +78 -0
  17. package/dist/breakouts/request.js.map +1 -0
  18. package/dist/breakouts/utils.js +67 -0
  19. package/dist/breakouts/utils.js.map +1 -0
  20. package/dist/common/errors/webex-errors.js +28 -7
  21. package/dist/common/errors/webex-errors.js.map +1 -1
  22. package/dist/common/logs/logger-proxy.js +1 -1
  23. package/dist/common/logs/logger-proxy.js.map +1 -1
  24. package/dist/common/queue.js +24 -9
  25. package/dist/common/queue.js.map +1 -1
  26. package/dist/config.js +5 -10
  27. package/dist/config.js.map +1 -1
  28. package/dist/constants.js +196 -28
  29. package/dist/constants.js.map +1 -1
  30. package/dist/controls-options-manager/enums.js +14 -2
  31. package/dist/controls-options-manager/enums.js.map +1 -1
  32. package/dist/controls-options-manager/index.js +109 -15
  33. package/dist/controls-options-manager/index.js.map +1 -1
  34. package/dist/controls-options-manager/types.js +7 -0
  35. package/dist/controls-options-manager/types.js.map +1 -0
  36. package/dist/controls-options-manager/util.js +309 -18
  37. package/dist/controls-options-manager/util.js.map +1 -1
  38. package/dist/index.js +112 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/interpretation/collection.js +23 -0
  41. package/dist/interpretation/collection.js.map +1 -0
  42. package/dist/interpretation/index.js +366 -0
  43. package/dist/interpretation/index.js.map +1 -0
  44. package/dist/interpretation/siLanguage.js +25 -0
  45. package/dist/interpretation/siLanguage.js.map +1 -0
  46. package/dist/locus-info/controlsUtils.js +91 -2
  47. package/dist/locus-info/controlsUtils.js.map +1 -1
  48. package/dist/locus-info/index.js +381 -62
  49. package/dist/locus-info/index.js.map +1 -1
  50. package/dist/locus-info/infoUtils.js +7 -1
  51. package/dist/locus-info/infoUtils.js.map +1 -1
  52. package/dist/locus-info/mediaSharesUtils.js +43 -1
  53. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  54. package/dist/locus-info/parser.js +224 -63
  55. package/dist/locus-info/parser.js.map +1 -1
  56. package/dist/locus-info/selfUtils.js +89 -14
  57. package/dist/locus-info/selfUtils.js.map +1 -1
  58. package/dist/media/index.js +58 -116
  59. package/dist/media/index.js.map +1 -1
  60. package/dist/media/properties.js +60 -121
  61. package/dist/media/properties.js.map +1 -1
  62. package/dist/meeting/in-meeting-actions.js +82 -2
  63. package/dist/meeting/in-meeting-actions.js.map +1 -1
  64. package/dist/meeting/index.js +3022 -2795
  65. package/dist/meeting/index.js.map +1 -1
  66. package/dist/meeting/locusMediaRequest.js +292 -0
  67. package/dist/meeting/locusMediaRequest.js.map +1 -0
  68. package/dist/meeting/muteState.js +230 -124
  69. package/dist/meeting/muteState.js.map +1 -1
  70. package/dist/meeting/request.js +256 -196
  71. package/dist/meeting/request.js.map +1 -1
  72. package/dist/meeting/util.js +601 -417
  73. package/dist/meeting/util.js.map +1 -1
  74. package/dist/meeting-info/index.js +70 -7
  75. package/dist/meeting-info/index.js.map +1 -1
  76. package/dist/meeting-info/meeting-info-v2.js +189 -51
  77. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  78. package/dist/meeting-info/util.js +1 -1
  79. package/dist/meeting-info/util.js.map +1 -1
  80. package/dist/meeting-info/utilv2.js +36 -36
  81. package/dist/meeting-info/utilv2.js.map +1 -1
  82. package/dist/meetings/collection.js +22 -0
  83. package/dist/meetings/collection.js.map +1 -1
  84. package/dist/meetings/index.js +372 -90
  85. package/dist/meetings/index.js.map +1 -1
  86. package/dist/meetings/meetings.types.js +7 -0
  87. package/dist/meetings/meetings.types.js.map +1 -0
  88. package/dist/meetings/request.js +2 -0
  89. package/dist/meetings/request.js.map +1 -1
  90. package/dist/meetings/util.js +88 -1
  91. package/dist/meetings/util.js.map +1 -1
  92. package/dist/member/index.js +49 -0
  93. package/dist/member/index.js.map +1 -1
  94. package/dist/member/types.js +25 -0
  95. package/dist/member/types.js.map +1 -0
  96. package/dist/member/util.js +121 -25
  97. package/dist/member/util.js.map +1 -1
  98. package/dist/members/collection.js +10 -0
  99. package/dist/members/collection.js.map +1 -1
  100. package/dist/members/index.js +86 -5
  101. package/dist/members/index.js.map +1 -1
  102. package/dist/members/request.js +106 -38
  103. package/dist/members/request.js.map +1 -1
  104. package/dist/members/types.js +15 -0
  105. package/dist/members/types.js.map +1 -0
  106. package/dist/members/util.js +316 -233
  107. package/dist/members/util.js.map +1 -1
  108. package/dist/metrics/constants.js +10 -5
  109. package/dist/metrics/constants.js.map +1 -1
  110. package/dist/metrics/index.js +1 -468
  111. package/dist/metrics/index.js.map +1 -1
  112. package/dist/multistream/mediaRequestManager.js +238 -49
  113. package/dist/multistream/mediaRequestManager.js.map +1 -1
  114. package/dist/multistream/receiveSlot.js +49 -16
  115. package/dist/multistream/receiveSlot.js.map +1 -1
  116. package/dist/multistream/receiveSlotManager.js +52 -34
  117. package/dist/multistream/receiveSlotManager.js.map +1 -1
  118. package/dist/multistream/remoteMedia.js +44 -18
  119. package/dist/multistream/remoteMedia.js.map +1 -1
  120. package/dist/multistream/remoteMediaGroup.js +60 -3
  121. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  122. package/dist/multistream/remoteMediaManager.js +209 -59
  123. package/dist/multistream/remoteMediaManager.js.map +1 -1
  124. package/dist/multistream/sendSlotManager.js +233 -0
  125. package/dist/multistream/sendSlotManager.js.map +1 -0
  126. package/dist/reachability/index.js +161 -57
  127. package/dist/reachability/index.js.map +1 -1
  128. package/dist/reachability/request.js +17 -8
  129. package/dist/reachability/request.js.map +1 -1
  130. package/dist/reconnection-manager/index.js +199 -154
  131. package/dist/reconnection-manager/index.js.map +1 -1
  132. package/dist/recording-controller/index.js +21 -2
  133. package/dist/recording-controller/index.js.map +1 -1
  134. package/dist/recording-controller/util.js +9 -8
  135. package/dist/recording-controller/util.js.map +1 -1
  136. package/dist/roap/index.js +23 -29
  137. package/dist/roap/index.js.map +1 -1
  138. package/dist/roap/request.js +112 -97
  139. package/dist/roap/request.js.map +1 -1
  140. package/dist/roap/turnDiscovery.js +96 -36
  141. package/dist/roap/turnDiscovery.js.map +1 -1
  142. package/dist/rtcMetrics/constants.js +12 -0
  143. package/dist/rtcMetrics/constants.js.map +1 -0
  144. package/dist/rtcMetrics/index.js +117 -0
  145. package/dist/rtcMetrics/index.js.map +1 -0
  146. package/dist/statsAnalyzer/index.js +51 -34
  147. package/dist/statsAnalyzer/index.js.map +1 -1
  148. package/dist/statsAnalyzer/mqaUtil.js +6 -6
  149. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  150. package/dist/types/annotation/annotation.types.d.ts +42 -0
  151. package/dist/types/annotation/constants.d.ts +31 -0
  152. package/dist/types/annotation/index.d.ts +117 -0
  153. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  154. package/dist/types/breakouts/events.d.ts +8 -0
  155. package/dist/types/breakouts/request.d.ts +22 -0
  156. package/dist/types/breakouts/utils.d.ts +15 -0
  157. package/dist/types/common/errors/webex-errors.d.ts +13 -1
  158. package/dist/types/common/queue.d.ts +9 -7
  159. package/dist/types/config.d.ts +1 -6
  160. package/dist/types/constants.d.ts +155 -21
  161. package/dist/types/controls-options-manager/enums.d.ts +11 -1
  162. package/dist/types/controls-options-manager/index.d.ts +17 -1
  163. package/dist/types/controls-options-manager/types.d.ts +43 -0
  164. package/dist/types/controls-options-manager/util.d.ts +1 -7
  165. package/dist/types/index.d.ts +6 -4
  166. package/dist/types/interpretation/collection.d.ts +5 -0
  167. package/dist/types/interpretation/index.d.ts +5 -0
  168. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  169. package/dist/types/locus-info/index.d.ts +57 -4
  170. package/dist/types/locus-info/parser.d.ts +65 -6
  171. package/dist/types/media/index.d.ts +2 -0
  172. package/dist/types/media/properties.d.ts +34 -48
  173. package/dist/types/meeting/in-meeting-actions.d.ts +82 -2
  174. package/dist/types/meeting/index.d.ts +344 -506
  175. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  176. package/dist/types/meeting/muteState.d.ts +99 -23
  177. package/dist/types/meeting/request.d.ts +72 -43
  178. package/dist/types/meeting/util.d.ts +101 -1
  179. package/dist/types/meeting-info/index.d.ts +13 -1
  180. package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
  181. package/dist/types/meetings/collection.d.ts +8 -0
  182. package/dist/types/meetings/index.d.ts +86 -12
  183. package/dist/types/meetings/meetings.types.d.ts +4 -0
  184. package/dist/types/member/index.d.ts +13 -0
  185. package/dist/types/member/types.d.ts +32 -0
  186. package/dist/types/members/collection.d.ts +5 -0
  187. package/dist/types/members/index.d.ts +35 -2
  188. package/dist/types/members/request.d.ts +73 -9
  189. package/dist/types/members/types.d.ts +24 -0
  190. package/dist/types/members/util.d.ts +209 -1
  191. package/dist/types/metrics/constants.d.ts +9 -4
  192. package/dist/types/metrics/index.d.ts +4 -119
  193. package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
  194. package/dist/types/multistream/receiveSlot.d.ts +16 -12
  195. package/dist/types/multistream/receiveSlotManager.d.ts +19 -4
  196. package/dist/types/multistream/remoteMedia.d.ts +8 -29
  197. package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
  198. package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
  199. package/dist/types/multistream/sendSlotManager.d.ts +61 -0
  200. package/dist/types/reachability/index.d.ts +44 -7
  201. package/dist/types/reachability/request.d.ts +7 -3
  202. package/dist/types/reconnection-manager/index.d.ts +9 -0
  203. package/dist/types/recording-controller/index.d.ts +15 -1
  204. package/dist/types/recording-controller/util.d.ts +5 -4
  205. package/dist/types/roap/request.d.ts +15 -11
  206. package/dist/types/roap/turnDiscovery.d.ts +18 -1
  207. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  208. package/dist/types/rtcMetrics/index.d.ts +47 -0
  209. package/dist/types/statsAnalyzer/index.d.ts +6 -1
  210. package/package.json +23 -20
  211. package/src/annotation/annotation.types.ts +50 -0
  212. package/src/annotation/constants.ts +36 -0
  213. package/src/annotation/index.ts +328 -0
  214. package/src/breakouts/README.md +44 -14
  215. package/src/breakouts/breakout.ts +87 -9
  216. package/src/breakouts/edit-lock-error.ts +25 -0
  217. package/src/breakouts/events.ts +56 -0
  218. package/src/breakouts/index.ts +710 -10
  219. package/src/breakouts/request.ts +55 -0
  220. package/src/breakouts/utils.ts +57 -0
  221. package/src/common/errors/webex-errors.ts +27 -2
  222. package/src/common/logs/logger-proxy.ts +1 -1
  223. package/src/common/queue.ts +22 -8
  224. package/src/config.ts +4 -9
  225. package/src/constants.ts +178 -18
  226. package/src/controls-options-manager/enums.ts +12 -0
  227. package/src/controls-options-manager/index.ts +116 -21
  228. package/src/controls-options-manager/types.ts +59 -0
  229. package/src/controls-options-manager/util.ts +294 -14
  230. package/src/index.ts +40 -0
  231. package/src/interpretation/README.md +60 -0
  232. package/src/interpretation/collection.ts +19 -0
  233. package/src/interpretation/index.ts +332 -0
  234. package/src/interpretation/siLanguage.ts +18 -0
  235. package/src/locus-info/controlsUtils.ts +108 -0
  236. package/src/locus-info/index.ts +412 -59
  237. package/src/locus-info/infoUtils.ts +10 -2
  238. package/src/locus-info/mediaSharesUtils.ts +48 -0
  239. package/src/locus-info/parser.ts +231 -39
  240. package/src/locus-info/selfUtils.ts +81 -5
  241. package/src/media/index.ts +100 -122
  242. package/src/media/properties.ts +70 -108
  243. package/src/meeting/in-meeting-actions.ts +163 -3
  244. package/src/meeting/index.ts +2471 -2306
  245. package/src/meeting/locusMediaRequest.ts +313 -0
  246. package/src/meeting/muteState.ts +229 -131
  247. package/src/meeting/request.ts +172 -121
  248. package/src/meeting/util.ts +588 -394
  249. package/src/meeting-info/index.ts +79 -8
  250. package/src/meeting-info/meeting-info-v2.ts +168 -14
  251. package/src/meeting-info/util.ts +1 -1
  252. package/src/meeting-info/utilv2.ts +23 -23
  253. package/src/meetings/collection.ts +20 -0
  254. package/src/meetings/index.ts +414 -108
  255. package/src/meetings/meetings.types.ts +12 -0
  256. package/src/meetings/request.ts +2 -0
  257. package/src/meetings/util.ts +103 -4
  258. package/src/member/index.ts +49 -0
  259. package/src/member/types.ts +38 -0
  260. package/src/member/util.ts +127 -25
  261. package/src/members/collection.ts +8 -0
  262. package/src/members/index.ts +107 -6
  263. package/src/members/request.ts +97 -17
  264. package/src/members/types.ts +28 -0
  265. package/src/members/util.ts +319 -240
  266. package/src/metrics/constants.ts +9 -4
  267. package/src/metrics/index.ts +1 -490
  268. package/src/multistream/mediaRequestManager.ts +289 -79
  269. package/src/multistream/receiveSlot.ts +55 -18
  270. package/src/multistream/receiveSlotManager.ts +46 -24
  271. package/src/multistream/remoteMedia.ts +27 -2
  272. package/src/multistream/remoteMediaGroup.ts +59 -0
  273. package/src/multistream/remoteMediaManager.ts +148 -30
  274. package/src/multistream/sendSlotManager.ts +170 -0
  275. package/src/reachability/index.ts +165 -37
  276. package/src/reachability/request.ts +17 -8
  277. package/src/reconnection-manager/index.ts +81 -54
  278. package/src/recording-controller/index.ts +20 -3
  279. package/src/recording-controller/util.ts +26 -9
  280. package/src/roap/index.ts +23 -30
  281. package/src/roap/request.ts +100 -104
  282. package/src/roap/turnDiscovery.ts +51 -25
  283. package/src/rtcMetrics/constants.ts +3 -0
  284. package/src/rtcMetrics/index.ts +100 -0
  285. package/src/statsAnalyzer/index.ts +73 -35
  286. package/src/statsAnalyzer/mqaUtil.ts +8 -10
  287. package/test/integration/spec/converged-space-meetings.js +233 -0
  288. package/test/integration/spec/journey.js +320 -261
  289. package/test/integration/spec/space-meeting.js +76 -3
  290. package/test/unit/spec/annotation/index.ts +418 -0
  291. package/test/unit/spec/breakouts/breakout.ts +142 -24
  292. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  293. package/test/unit/spec/breakouts/events.ts +89 -0
  294. package/test/unit/spec/breakouts/index.ts +1545 -48
  295. package/test/unit/spec/breakouts/request.ts +104 -0
  296. package/test/unit/spec/breakouts/utils.js +72 -0
  297. package/test/unit/spec/common/queue.js +31 -2
  298. package/test/unit/spec/controls-options-manager/index.js +163 -0
  299. package/test/unit/spec/controls-options-manager/util.js +576 -60
  300. package/test/unit/spec/fixture/locus.js +1 -0
  301. package/test/unit/spec/interpretation/collection.ts +15 -0
  302. package/test/unit/spec/interpretation/index.ts +589 -0
  303. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  304. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  305. package/test/unit/spec/locus-info/index.js +1283 -33
  306. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  307. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  308. package/test/unit/spec/locus-info/parser.js +62 -22
  309. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  310. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  311. package/test/unit/spec/media/index.ts +104 -37
  312. package/test/unit/spec/meeting/in-meeting-actions.ts +81 -3
  313. package/test/unit/spec/meeting/index.js +4095 -1913
  314. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  315. package/test/unit/spec/meeting/muteState.js +408 -208
  316. package/test/unit/spec/meeting/request.js +440 -45
  317. package/test/unit/spec/meeting/utils.js +679 -64
  318. package/test/unit/spec/meeting-info/index.js +293 -0
  319. package/test/unit/spec/meeting-info/meetinginfov2.js +517 -5
  320. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  321. package/test/unit/spec/meetings/collection.js +14 -0
  322. package/test/unit/spec/meetings/index.js +941 -151
  323. package/test/unit/spec/meetings/utils.js +206 -2
  324. package/test/unit/spec/member/index.js +58 -4
  325. package/test/unit/spec/member/util.js +479 -35
  326. package/test/unit/spec/members/index.js +319 -1
  327. package/test/unit/spec/members/request.js +206 -27
  328. package/test/unit/spec/members/utils.js +184 -0
  329. package/test/unit/spec/metrics/index.js +1 -50
  330. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  331. package/test/unit/spec/multistream/receiveSlot.ts +72 -13
  332. package/test/unit/spec/multistream/receiveSlotManager.ts +58 -28
  333. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  334. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  335. package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
  336. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  337. package/test/unit/spec/reachability/index.ts +343 -9
  338. package/test/unit/spec/reachability/request.js +68 -0
  339. package/test/unit/spec/reconnection-manager/index.js +84 -9
  340. package/test/unit/spec/recording-controller/index.js +294 -218
  341. package/test/unit/spec/recording-controller/util.js +223 -96
  342. package/test/unit/spec/roap/index.ts +31 -51
  343. package/test/unit/spec/roap/request.ts +203 -85
  344. package/test/unit/spec/roap/turnDiscovery.ts +48 -13
  345. package/test/unit/spec/rtcMetrics/index.ts +68 -0
  346. package/test/unit/spec/stats-analyzer/index.js +29 -2
  347. package/test/utils/constants.js +9 -0
  348. package/test/utils/integrationTestUtils.js +46 -0
  349. package/test/utils/testUtils.js +0 -45
  350. package/test/utils/webex-config.js +4 -0
  351. package/test/utils/webex-test-users.js +6 -3
  352. package/dist/meeting/effectsState.js +0 -262
  353. package/dist/meeting/effectsState.js.map +0 -1
  354. package/dist/metrics/config.js +0 -299
  355. package/dist/metrics/config.js.map +0 -1
  356. package/dist/types/meeting/effectsState.d.ts +0 -42
  357. package/dist/types/metrics/config.d.ts +0 -178
  358. package/src/index.js +0 -16
  359. package/src/meeting/effectsState.ts +0 -211
  360. package/src/metrics/config.ts +0 -495
  361. package/test/unit/spec/meeting/effectsState.js +0 -285
@@ -1,231 +1,307 @@
1
1
  import RecordingController from '@webex/plugin-meetings/src/recording-controller';
2
2
  import sinon from 'sinon';
3
3
  import {assert} from '@webex/test-helper-chai';
4
- import { HTTP_VERBS } from '@webex/plugin-meetings/src/constants';
4
+ import {HTTP_VERBS, SELF_POLICY} from '@webex/plugin-meetings/src/constants';
5
+
5
6
 
6
7
  describe('plugin-meetings', () => {
7
- describe('recording-controller tests', () => {
8
- describe('index', () => {
9
- let request;
10
-
11
- describe('class tests', () => {
12
- it('can set and extract new values later on', () => {
13
- const controller = new RecordingController({});
14
- assert.isUndefined(controller.getServiceUrl());
15
- assert.isUndefined(controller.getSessionId());
16
- assert.isUndefined(controller.getLocusUrl());
17
- assert.isUndefined(controller.getLocusId());
18
- controller.set({
19
- serviceUrl: 'test',
20
- sessionId: 'testId',
21
- locusUrl: 'test/id',
22
- displayHints: [],
23
- })
24
- assert(controller.getServiceUrl(), 'test');
25
- assert(controller.getSessionId(), 'testId');
26
- assert(controller.getLocusUrl(), 'test/id');
27
- assert(controller.getLocusId(), 'id');
28
- });
8
+ describe('recording-controller tests', () => {
9
+ describe('index', () => {
10
+ let request;
11
+
12
+ describe('class tests', () => {
13
+ it('can set and extract new values later on', () => {
14
+ const controller = new RecordingController({});
15
+ assert.isUndefined(controller.getServiceUrl());
16
+ assert.isUndefined(controller.getSessionId());
17
+ assert.isUndefined(controller.getLocusUrl());
18
+ assert.isUndefined(controller.getLocusId());
19
+ controller.set({
20
+ serviceUrl: 'test',
21
+ sessionId: 'testId',
22
+ locusUrl: 'test/id',
23
+ displayHints: [],
24
+ });
25
+ assert(controller.getServiceUrl(), 'test');
26
+ assert(controller.getSessionId(), 'testId');
27
+ assert(controller.getLocusUrl(), 'test/id');
28
+ assert(controller.getLocusId(), 'id');
29
+ });
30
+ });
31
+
32
+ describe('legacy locus style recording', () => {
33
+ const locusUrl = 'locusUrl';
34
+ let controller;
35
+
36
+ beforeEach(() => {
37
+ request = {
38
+ request: sinon.stub().returns(Promise.resolve()),
39
+ };
40
+
41
+ controller = new RecordingController(request);
42
+
43
+ controller.set({
44
+ locusUrl,
45
+ displayHints: [],
46
+ });
47
+ });
48
+
49
+ describe('startRecording', () => {
50
+ it('rejects when correct display hint is not present', () => {
51
+ const result = controller.startRecording();
52
+
53
+ assert.notCalled(request.request);
54
+
55
+ assert.isRejected(result);
56
+ });
57
+
58
+ it('rejects when correct display hint is present but the policy is false', () => {
59
+ controller.setDisplayHints(['RECORDING_CONTROL_START']);
60
+ controller.setUserPolicy({[SELF_POLICY.SUPPORT_NETWORK_BASED_RECORD]: false});
61
+ const result = controller.startRecording();
62
+
63
+ assert.notCalled(request.request);
64
+
65
+ assert.isRejected(result);
66
+ });
67
+
68
+ it('can start recording when the correct display hint is present', () => {
69
+ controller.setDisplayHints(['RECORDING_CONTROL_START']);
70
+
71
+ const result = controller.startRecording();
72
+
73
+ assert.calledWith(request.request, {
74
+ uri: `${locusUrl}/controls`,
75
+ body: {record: {recording: true, paused: false}},
76
+ method: HTTP_VERBS.PATCH,
29
77
  });
30
78
 
79
+ assert.deepEqual(result, request.request.firstCall.returnValue);
80
+ });
81
+ });
82
+
83
+ describe('stopRecording', () => {
84
+ it('rejects when correct display hint is not present', () => {
85
+ const result = controller.stopRecording();
31
86
 
32
- describe('legacy locus style recording', () => {
33
- const locusUrl = 'locusUrl';
34
- let controller;
35
-
36
- beforeEach(() => {
37
- request = {
38
- request: sinon.stub().returns(Promise.resolve()),
39
- };
40
-
41
- controller = new RecordingController(request);
42
-
43
- controller.set({
44
- locusUrl,
45
- displayHints: [],
46
- })
47
-
48
- });
49
-
50
- describe('startRecording', () => {
51
- it('rejects when correct display hint is not present', () => {
52
- const result = controller.startRecording();
53
-
54
- assert.notCalled(request.request);
55
-
56
- assert.isRejected(result);
57
- });
58
-
59
- it('can start recording when the correct display hint is present', () => {
60
- controller.setDisplayHints(['RECORDING_CONTROL_START']);
61
-
62
- const result = controller.startRecording();
63
-
64
- assert.calledWith(request.request, {uri: `${locusUrl}/controls`, body: {record: {recording: true, paused: false}}, method: HTTP_VERBS.PATCH});
65
-
66
- assert.deepEqual(result, request.request.firstCall.returnValue);
67
- });
68
- });
69
-
70
- describe('stopRecording', () => {
71
- it('rejects when correct display hint is not present', () => {
72
- const result = controller.stopRecording();
73
-
74
- assert.notCalled(request.request);
75
-
76
- assert.isRejected(result);
77
- });
78
-
79
- it('can stop recording when the correct display hint is present', () => {
80
- controller.setDisplayHints(['RECORDING_CONTROL_STOP']);
81
-
82
- const result = controller.stopRecording();
83
-
84
- assert.calledWith(request.request, {uri: `${locusUrl}/controls`, body: {record: {recording: false, paused: false}}, method: HTTP_VERBS.PATCH});
85
-
86
- assert.deepEqual(result, request.request.firstCall.returnValue);
87
- });
88
- });
89
-
90
- describe('pauseRecording', () => {
91
- it('rejects when correct display hint is not present', () => {
92
- const result = controller.pauseRecording();
93
-
94
- assert.notCalled(request.request);
95
-
96
- assert.isRejected(result);
97
- });
98
-
99
- it('can pause recording when the correct display hint is present', () => {
100
- controller.setDisplayHints(['RECORDING_CONTROL_PAUSE']);
101
-
102
- const result = controller.pauseRecording();
103
-
104
- assert.calledWith(request.request, {uri: `${locusUrl}/controls`, body: {record: {recording: true, paused: true}}, method: HTTP_VERBS.PATCH});
105
-
106
- assert.deepEqual(result, request.request.firstCall.returnValue);
107
- });
108
- });
109
-
110
- describe('resumeRecording', () => {
111
- it('rejects when correct display hint is not present', () => {
112
- const result = controller.pauseRecording();
113
-
114
- assert.notCalled(request.request);
115
-
116
- assert.isRejected(result);
117
- });
118
-
119
- it('can resume recording when the correct display hint is present', () => {
120
- controller.setDisplayHints(['RECORDING_CONTROL_RESUME']);
121
-
122
- const result = controller.resumeRecording();
123
-
124
- assert.calledWith(request.request, {uri: `${locusUrl}/controls`, body: {record: {recording: true, paused: false}}, method: HTTP_VERBS.PATCH});
125
-
126
- assert.deepEqual(result, request.request.firstCall.returnValue);
127
- });
128
- });
87
+ assert.notCalled(request.request);
88
+
89
+ assert.isRejected(result);
90
+ });
91
+
92
+ it('rejects when correct display hint is present but the policy is false', () => {
93
+ controller.setDisplayHints(['RECORDING_CONTROL_STOP']);
94
+ controller.setUserPolicy({[SELF_POLICY.SUPPORT_NETWORK_BASED_RECORD]: false})
95
+ const result = controller.stopRecording();
96
+
97
+ assert.notCalled(request.request);
98
+
99
+ assert.isRejected(result);
100
+ });
101
+
102
+ it('can stop recording when the correct display hint is present', () => {
103
+ controller.setDisplayHints(['RECORDING_CONTROL_STOP']);
104
+
105
+ const result = controller.stopRecording();
106
+
107
+ assert.calledWith(request.request, {
108
+ uri: `${locusUrl}/controls`,
109
+ body: {record: {recording: false, paused: false}},
110
+ method: HTTP_VERBS.PATCH,
111
+ });
112
+
113
+ assert.deepEqual(result, request.request.firstCall.returnValue);
114
+ });
115
+ });
116
+
117
+ describe('pauseRecording', () => {
118
+ it('rejects when correct display hint is not present', () => {
119
+ const result = controller.pauseRecording();
120
+
121
+ assert.notCalled(request.request);
122
+
123
+ assert.isRejected(result);
124
+ });
125
+
126
+ it('rejects when correct display hint is present but the policy is false', () => {
127
+ controller.setDisplayHints(['RECORDING_CONTROL_PAUSE']);
128
+ controller.setUserPolicy({
129
+ [SELF_POLICY.SUPPORT_NETWORK_BASED_RECORD]: false,
130
+ });
131
+ const result = controller.pauseRecording();
132
+
133
+ assert.notCalled(request.request);
134
+
135
+ assert.isRejected(result);
136
+ });
137
+
138
+ it('can pause recording when the correct display hint is present', () => {
139
+ controller.setDisplayHints(['RECORDING_CONTROL_PAUSE']);
140
+
141
+ const result = controller.pauseRecording();
142
+
143
+ assert.calledWith(request.request, {
144
+ uri: `${locusUrl}/controls`,
145
+ body: {record: {recording: true, paused: true}},
146
+ method: HTTP_VERBS.PATCH,
129
147
  });
130
148
 
131
- describe('recording streaming service style tests', () => {
132
- let controller;
133
-
134
- beforeEach(() => {
135
- request = {
136
- request: sinon.stub().returns(Promise.resolve()),
137
- };
138
-
139
- controller = new RecordingController(request);
140
-
141
- controller.set({
142
- serviceUrl: 'test',
143
- sessionId: 'testId',
144
- locusUrl: 'test/id',
145
- displayHints: [],
146
- })
147
- });
148
-
149
- describe('startRecording', () => {
150
- it('rejects when correct display hint is not present', () => {
151
- const result = controller.startRecording();
152
-
153
- assert.notCalled(request.request);
154
-
155
- assert.isRejected(result);
156
- });
157
-
158
- it('can start recording when the correct display hint is present', () => {
159
- controller.setDisplayHints(['RECORDING_CONTROL_START']);
160
-
161
- const result = controller.startRecording();
162
-
163
- assert.calledWith(request.request, {uri: `test/loci/id/recording`, body: {meetingInfo: {locusSessionId: 'testId'}, recording: {action: 'start'}}, method: HTTP_VERBS.PUT});
164
-
165
- assert.deepEqual(result, request.request.firstCall.returnValue);
166
- });
167
- });
168
-
169
- describe('stopRecording', () => {
170
- it('rejects when correct display hint is not present', () => {
171
- const result = controller.pauseRecording();
172
-
173
- assert.notCalled(request.request);
174
-
175
- assert.isRejected(result);
176
- });
177
-
178
- it('can start recording when the correct display hint is present', () => {
179
- controller.setDisplayHints(['RECORDING_CONTROL_STOP']);
180
-
181
- const result = controller.stopRecording();
182
-
183
- assert.calledWith(request.request, {uri: `test/loci/id/recording`, body: {meetingInfo: {locusSessionId: 'testId'}, recording: {action: 'stop'}}, method: HTTP_VERBS.PUT});
184
-
185
- assert.deepEqual(result, request.request.firstCall.returnValue);
186
- });
187
- });
188
-
189
- describe('pauseRecording', () => {
190
- it('rejects when correct display hint is not present', () => {
191
- const result = controller.pauseRecording();
192
-
193
- assert.notCalled(request.request);
194
-
195
- assert.isRejected(result);
196
- });
197
-
198
- it('can pause recording when the correct display hint is present', () => {
199
- controller.setDisplayHints(['RECORDING_CONTROL_PAUSE']);
200
-
201
- const result = controller.pauseRecording();
202
-
203
- assert.calledWith(request.request, {uri: `test/loci/id/recording`, body: {meetingInfo: {locusSessionId: 'testId'}, recording: {action: 'pause'}}, method: HTTP_VERBS.PUT});
204
-
205
- assert.deepEqual(result, request.request.firstCall.returnValue);
206
- });
207
- });
208
-
209
- describe('resumeRecording', () => {
210
- it('rejects when correct display hint is not present', () => {
211
- const result = controller.resumeRecording();
212
-
213
- assert.notCalled(request.request);
214
-
215
- assert.isRejected(result);
216
- });
217
-
218
- it('can resume recording when the correct display hint is present', () => {
219
- controller.setDisplayHints(['RECORDING_CONTROL_RESUME']);
220
-
221
- const result = controller.resumeRecording();
222
-
223
- assert.calledWith(request.request, {uri: `test/loci/id/recording`, body: {meetingInfo: {locusSessionId: 'testId'}, recording: {action: 'resume'}}, method: HTTP_VERBS.PUT});
224
-
225
- assert.deepEqual(result, request.request.firstCall.returnValue);
226
- });
227
- });
149
+ assert.deepEqual(result, request.request.firstCall.returnValue);
150
+ });
151
+ });
152
+
153
+ describe('resumeRecording', () => {
154
+ it('rejects when correct display hint is not present', () => {
155
+ const result = controller.pauseRecording();
156
+
157
+ assert.notCalled(request.request);
158
+
159
+ assert.isRejected(result);
160
+ });
161
+
162
+ it('rejects when correct display hint is present but the policy is false', () => {
163
+ controller.setDisplayHints(['RECORDING_CONTROL_RESUME']);
164
+ controller.setUserPolicy({
165
+ [SELF_POLICY.SUPPORT_NETWORK_BASED_RECORD]: false,
228
166
  });
167
+ const result = controller.pauseRecording();
168
+
169
+ assert.notCalled(request.request);
170
+
171
+ assert.isRejected(result);
172
+ });
173
+
174
+
175
+ it('can resume recording when the correct display hint is present', () => {
176
+ controller.setDisplayHints(['RECORDING_CONTROL_RESUME']);
177
+
178
+ const result = controller.resumeRecording();
179
+
180
+ assert.calledWith(request.request, {
181
+ uri: `${locusUrl}/controls`,
182
+ body: {record: {recording: true, paused: false}},
183
+ method: HTTP_VERBS.PATCH,
184
+ });
185
+
186
+ assert.deepEqual(result, request.request.firstCall.returnValue);
187
+ });
188
+ });
189
+ });
190
+
191
+ describe('recording streaming service style tests', () => {
192
+ let controller;
193
+
194
+ beforeEach(() => {
195
+ request = {
196
+ request: sinon.stub().returns(Promise.resolve()),
197
+ };
198
+
199
+ controller = new RecordingController(request);
200
+
201
+ controller.set({
202
+ serviceUrl: 'test',
203
+ sessionId: 'testId',
204
+ locusUrl: 'test/id',
205
+ displayHints: [],
206
+ });
207
+ });
208
+
209
+ describe('startRecording', () => {
210
+ it('rejects when correct display hint is not present', () => {
211
+ const result = controller.startRecording();
212
+
213
+ assert.notCalled(request.request);
214
+
215
+ assert.isRejected(result);
216
+ });
217
+
218
+ it('can start recording when the correct display hint is present', () => {
219
+ controller.setDisplayHints(['RECORDING_CONTROL_START']);
220
+
221
+ const result = controller.startRecording();
222
+
223
+ assert.calledWith(request.request, {
224
+ uri: `test/loci/id/recording`,
225
+ body: {meetingInfo: {locusSessionId: 'testId'}, recording: {action: 'start'}},
226
+ method: HTTP_VERBS.PUT,
227
+ });
228
+
229
+ assert.deepEqual(result, request.request.firstCall.returnValue);
230
+ });
231
+ });
232
+
233
+ describe('stopRecording', () => {
234
+ it('rejects when correct display hint is not present', () => {
235
+ const result = controller.pauseRecording();
236
+
237
+ assert.notCalled(request.request);
238
+
239
+ assert.isRejected(result);
240
+ });
241
+
242
+ it('can start recording when the correct display hint is present', () => {
243
+ controller.setDisplayHints(['RECORDING_CONTROL_STOP']);
244
+
245
+ const result = controller.stopRecording();
246
+
247
+ assert.calledWith(request.request, {
248
+ uri: `test/loci/id/recording`,
249
+ body: {meetingInfo: {locusSessionId: 'testId'}, recording: {action: 'stop'}},
250
+ method: HTTP_VERBS.PUT,
251
+ });
252
+
253
+ assert.deepEqual(result, request.request.firstCall.returnValue);
254
+ });
255
+ });
256
+
257
+ describe('pauseRecording', () => {
258
+ it('rejects when correct display hint is not present', () => {
259
+ const result = controller.pauseRecording();
260
+
261
+ assert.notCalled(request.request);
262
+
263
+ assert.isRejected(result);
264
+ });
265
+
266
+ it('can pause recording when the correct display hint is present', () => {
267
+ controller.setDisplayHints(['RECORDING_CONTROL_PAUSE']);
268
+
269
+ const result = controller.pauseRecording();
270
+
271
+ assert.calledWith(request.request, {
272
+ uri: `test/loci/id/recording`,
273
+ body: {meetingInfo: {locusSessionId: 'testId'}, recording: {action: 'pause'}},
274
+ method: HTTP_VERBS.PUT,
275
+ });
276
+
277
+ assert.deepEqual(result, request.request.firstCall.returnValue);
278
+ });
279
+ });
280
+
281
+ describe('resumeRecording', () => {
282
+ it('rejects when correct display hint is not present', () => {
283
+ const result = controller.resumeRecording();
284
+
285
+ assert.notCalled(request.request);
286
+
287
+ assert.isRejected(result);
288
+ });
289
+
290
+ it('can resume recording when the correct display hint is present', () => {
291
+ controller.setDisplayHints(['RECORDING_CONTROL_RESUME']);
292
+
293
+ const result = controller.resumeRecording();
294
+
295
+ assert.calledWith(request.request, {
296
+ uri: `test/loci/id/recording`,
297
+ body: {meetingInfo: {locusSessionId: 'testId'}, recording: {action: 'resume'}},
298
+ method: HTTP_VERBS.PUT,
299
+ });
300
+
301
+ assert.deepEqual(result, request.request.firstCall.returnValue);
229
302
  });
303
+ });
304
+ });
230
305
  });
231
- });
306
+ });
307
+ });