@webex/calling 3.0.0-next.2 → 3.0.0-next.4

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 (283) hide show
  1. package/CHANGELOG.md +1403 -0
  2. package/README.md +74 -74
  3. package/dist/module/CallHistory/CallHistory.js +81 -81
  4. package/dist/module/CallHistory/callHistoryFixtures.js +307 -307
  5. package/dist/module/CallHistory/constants.js +9 -9
  6. package/dist/module/CallHistory/types.js +1 -1
  7. package/dist/module/CallSettings/CallSettings.js +65 -65
  8. package/dist/module/CallSettings/UcmBackendConnector.js +100 -100
  9. package/dist/module/CallSettings/WxCallBackendConnector.js +287 -287
  10. package/dist/module/CallSettings/constants.js +11 -11
  11. package/dist/module/CallSettings/testFixtures.js +62 -62
  12. package/dist/module/CallSettings/types.js +1 -1
  13. package/dist/module/CallingClient/CallingClient.js +248 -248
  14. package/dist/module/CallingClient/callRecordFixtures.js +93 -93
  15. package/dist/module/CallingClient/calling/CallerId/index.js +169 -169
  16. package/dist/module/CallingClient/calling/CallerId/types.js +1 -1
  17. package/dist/module/CallingClient/calling/call.js +1658 -1658
  18. package/dist/module/CallingClient/calling/callManager.js +284 -284
  19. package/dist/module/CallingClient/calling/index.js +2 -2
  20. package/dist/module/CallingClient/calling/types.js +53 -53
  21. package/dist/module/CallingClient/callingClientFixtures.js +38 -38
  22. package/dist/module/CallingClient/constants.js +122 -122
  23. package/dist/module/CallingClient/line/index.js +158 -158
  24. package/dist/module/CallingClient/line/types.js +15 -15
  25. package/dist/module/CallingClient/registration/index.js +1 -1
  26. package/dist/module/CallingClient/registration/register.js +507 -507
  27. package/dist/module/CallingClient/registration/registerFixtures.js +28 -28
  28. package/dist/module/CallingClient/registration/types.js +1 -1
  29. package/dist/module/CallingClient/types.js +1 -1
  30. package/dist/module/Contacts/ContactsClient.js +484 -484
  31. package/dist/module/Contacts/constants.js +20 -20
  32. package/dist/module/Contacts/contactFixtures.js +284 -284
  33. package/dist/module/Contacts/types.js +10 -10
  34. package/dist/module/Errors/catalog/CallError.js +26 -26
  35. package/dist/module/Errors/catalog/CallingDeviceError.js +18 -18
  36. package/dist/module/Errors/catalog/ExtendedError.js +10 -10
  37. package/dist/module/Errors/catalog/LineError.js +24 -24
  38. package/dist/module/Errors/index.js +2 -2
  39. package/dist/module/Errors/types.js +48 -48
  40. package/dist/module/Events/impl/index.js +19 -19
  41. package/dist/module/Events/types.js +83 -83
  42. package/dist/module/Logger/index.js +114 -114
  43. package/dist/module/Logger/types.js +25 -25
  44. package/dist/module/Metrics/index.js +232 -232
  45. package/dist/module/Metrics/types.js +37 -37
  46. package/dist/module/SDKConnector/index.js +39 -39
  47. package/dist/module/SDKConnector/types.js +1 -1
  48. package/dist/module/SDKConnector/utils.js +12 -12
  49. package/dist/module/Voicemail/BroadworksBackendConnector.js +291 -291
  50. package/dist/module/Voicemail/UcmBackendConnector.js +279 -279
  51. package/dist/module/Voicemail/Voicemail.js +110 -110
  52. package/dist/module/Voicemail/WxCallBackendConnector.js +279 -279
  53. package/dist/module/Voicemail/constants.js +29 -29
  54. package/dist/module/Voicemail/types.js +1 -1
  55. package/dist/module/Voicemail/voicemailFixture.js +510 -510
  56. package/dist/module/api.js +6 -6
  57. package/dist/module/common/Utils.js +802 -802
  58. package/dist/module/common/constants.js +41 -41
  59. package/dist/module/common/index.js +1 -1
  60. package/dist/module/common/testUtil.js +938 -938
  61. package/dist/module/common/types.js +57 -57
  62. package/dist/module/index.js +8 -8
  63. package/dist/types/CallHistory/CallHistory.d.ts +17 -17
  64. package/dist/types/CallHistory/callHistoryFixtures.d.ts +94 -94
  65. package/dist/types/CallHistory/constants.d.ts +9 -9
  66. package/dist/types/CallHistory/types.d.ts +18 -18
  67. package/dist/types/CallSettings/CallSettings.d.ts +19 -19
  68. package/dist/types/CallSettings/UcmBackendConnector.d.ts +19 -19
  69. package/dist/types/CallSettings/WxCallBackendConnector.d.ts +21 -21
  70. package/dist/types/CallSettings/constants.d.ts +11 -11
  71. package/dist/types/CallSettings/testFixtures.d.ts +15 -15
  72. package/dist/types/CallSettings/types.d.ts +107 -107
  73. package/dist/types/CallingClient/CallingClient.d.ts +35 -35
  74. package/dist/types/CallingClient/callRecordFixtures.d.ts +3 -3
  75. package/dist/types/CallingClient/calling/CallerId/index.d.ts +17 -17
  76. package/dist/types/CallingClient/calling/CallerId/types.d.ts +41 -41
  77. package/dist/types/CallingClient/calling/call.d.ts +96 -96
  78. package/dist/types/CallingClient/calling/callManager.d.ts +25 -25
  79. package/dist/types/CallingClient/calling/index.d.ts +2 -2
  80. package/dist/types/CallingClient/calling/types.d.ts +206 -206
  81. package/dist/types/CallingClient/callingClientFixtures.d.ts +18 -18
  82. package/dist/types/CallingClient/constants.d.ts +122 -122
  83. package/dist/types/CallingClient/line/index.d.ts +43 -43
  84. package/dist/types/CallingClient/line/types.d.ts +55 -55
  85. package/dist/types/CallingClient/registration/index.d.ts +1 -1
  86. package/dist/types/CallingClient/registration/register.d.ts +64 -64
  87. package/dist/types/CallingClient/registration/registerFixtures.d.ts +28 -28
  88. package/dist/types/CallingClient/registration/types.d.ts +20 -20
  89. package/dist/types/CallingClient/types.d.ts +29 -29
  90. package/dist/types/Contacts/ContactsClient.d.ts +26 -26
  91. package/dist/types/Contacts/constants.d.ts +19 -19
  92. package/dist/types/Contacts/contactFixtures.d.ts +280 -280
  93. package/dist/types/Contacts/types.d.ts +72 -72
  94. package/dist/types/Errors/catalog/CallError.d.ts +11 -11
  95. package/dist/types/Errors/catalog/CallingDeviceError.d.ts +10 -10
  96. package/dist/types/Errors/catalog/ExtendedError.d.ts +6 -6
  97. package/dist/types/Errors/catalog/LineError.d.ts +10 -10
  98. package/dist/types/Errors/index.d.ts +2 -2
  99. package/dist/types/Errors/types.d.ts +60 -60
  100. package/dist/types/Events/impl/index.d.ts +8 -8
  101. package/dist/types/Events/types.d.ts +288 -288
  102. package/dist/types/Logger/index.d.ts +12 -12
  103. package/dist/types/Logger/types.d.ts +25 -25
  104. package/dist/types/Metrics/index.d.ts +5 -5
  105. package/dist/types/Metrics/types.d.ts +42 -42
  106. package/dist/types/SDKConnector/index.d.ts +12 -12
  107. package/dist/types/SDKConnector/types.d.ts +128 -128
  108. package/dist/types/SDKConnector/utils.d.ts +5 -5
  109. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts +27 -27
  110. package/dist/types/Voicemail/UcmBackendConnector.d.ts +34 -34
  111. package/dist/types/Voicemail/Voicemail.d.ts +27 -27
  112. package/dist/types/Voicemail/WxCallBackendConnector.d.ts +23 -23
  113. package/dist/types/Voicemail/constants.d.ts +29 -29
  114. package/dist/types/Voicemail/types.d.ts +133 -133
  115. package/dist/types/Voicemail/voicemailFixture.d.ts +417 -417
  116. package/dist/types/api.d.ts +16 -16
  117. package/dist/types/common/Utils.d.ts +34 -34
  118. package/dist/types/common/constants.d.ts +41 -41
  119. package/dist/types/common/index.d.ts +1 -1
  120. package/dist/types/common/testUtil.d.ts +3611 -3611
  121. package/dist/types/common/types.d.ts +191 -191
  122. package/dist/types/index.d.ts +8 -8
  123. package/package.json +4 -4
  124. package/dist/CallHistory/CallHistory.js +0 -203
  125. package/dist/CallHistory/CallHistory.js.map +0 -1
  126. package/dist/CallHistory/CallHistory.test.js +0 -133
  127. package/dist/CallHistory/CallHistory.test.js.map +0 -1
  128. package/dist/CallHistory/callHistoryFixtures.js +0 -310
  129. package/dist/CallHistory/callHistoryFixtures.js.map +0 -1
  130. package/dist/CallHistory/constants.js +0 -26
  131. package/dist/CallHistory/constants.js.map +0 -1
  132. package/dist/CallHistory/types.js +0 -7
  133. package/dist/CallHistory/types.js.map +0 -1
  134. package/dist/CallSettings/CallSettings.js +0 -276
  135. package/dist/CallSettings/CallSettings.js.map +0 -1
  136. package/dist/CallSettings/CallSettings.test.js +0 -122
  137. package/dist/CallSettings/CallSettings.test.js.map +0 -1
  138. package/dist/CallSettings/UcmBackendConnector.js +0 -217
  139. package/dist/CallSettings/UcmBackendConnector.js.map +0 -1
  140. package/dist/CallSettings/UcmBackendConnector.test.js +0 -227
  141. package/dist/CallSettings/UcmBackendConnector.test.js.map +0 -1
  142. package/dist/CallSettings/WxCallBackendConnector.js +0 -541
  143. package/dist/CallSettings/WxCallBackendConnector.js.map +0 -1
  144. package/dist/CallSettings/WxCallBackendConnector.test.js +0 -802
  145. package/dist/CallSettings/WxCallBackendConnector.test.js.map +0 -1
  146. package/dist/CallSettings/constants.js +0 -30
  147. package/dist/CallSettings/constants.js.map +0 -1
  148. package/dist/CallSettings/testFixtures.js +0 -72
  149. package/dist/CallSettings/testFixtures.js.map +0 -1
  150. package/dist/CallSettings/types.js +0 -7
  151. package/dist/CallSettings/types.js.map +0 -1
  152. package/dist/CallingClient/CallingClient.js +0 -572
  153. package/dist/CallingClient/CallingClient.js.map +0 -1
  154. package/dist/CallingClient/CallingClient.test.js +0 -931
  155. package/dist/CallingClient/CallingClient.test.js.map +0 -1
  156. package/dist/CallingClient/callRecordFixtures.js +0 -103
  157. package/dist/CallingClient/callRecordFixtures.js.map +0 -1
  158. package/dist/CallingClient/calling/CallerId/index.js +0 -287
  159. package/dist/CallingClient/calling/CallerId/index.js.map +0 -1
  160. package/dist/CallingClient/calling/CallerId/index.test.js +0 -274
  161. package/dist/CallingClient/calling/CallerId/index.test.js.map +0 -1
  162. package/dist/CallingClient/calling/CallerId/types.js +0 -7
  163. package/dist/CallingClient/calling/CallerId/types.js.map +0 -1
  164. package/dist/CallingClient/calling/call.js +0 -2995
  165. package/dist/CallingClient/calling/call.js.map +0 -1
  166. package/dist/CallingClient/calling/call.test.js +0 -2614
  167. package/dist/CallingClient/calling/call.test.js.map +0 -1
  168. package/dist/CallingClient/calling/callManager.js +0 -443
  169. package/dist/CallingClient/calling/callManager.js.map +0 -1
  170. package/dist/CallingClient/calling/callManager.test.js +0 -683
  171. package/dist/CallingClient/calling/callManager.test.js.map +0 -1
  172. package/dist/CallingClient/calling/index.js +0 -30
  173. package/dist/CallingClient/calling/index.js.map +0 -1
  174. package/dist/CallingClient/calling/types.js +0 -71
  175. package/dist/CallingClient/calling/types.js.map +0 -1
  176. package/dist/CallingClient/callingClientFixtures.js +0 -53
  177. package/dist/CallingClient/callingClientFixtures.js.map +0 -1
  178. package/dist/CallingClient/constants.js +0 -226
  179. package/dist/CallingClient/constants.js.map +0 -1
  180. package/dist/CallingClient/line/index.js +0 -312
  181. package/dist/CallingClient/line/index.js.map +0 -1
  182. package/dist/CallingClient/line/line.test.js +0 -270
  183. package/dist/CallingClient/line/line.test.js.map +0 -1
  184. package/dist/CallingClient/line/types.js +0 -25
  185. package/dist/CallingClient/line/types.js.map +0 -1
  186. package/dist/CallingClient/registration/index.js +0 -19
  187. package/dist/CallingClient/registration/index.js.map +0 -1
  188. package/dist/CallingClient/registration/register.js +0 -1295
  189. package/dist/CallingClient/registration/register.js.map +0 -1
  190. package/dist/CallingClient/registration/register.test.js +0 -838
  191. package/dist/CallingClient/registration/register.test.js.map +0 -1
  192. package/dist/CallingClient/registration/registerFixtures.js +0 -41
  193. package/dist/CallingClient/registration/registerFixtures.js.map +0 -1
  194. package/dist/CallingClient/registration/types.js +0 -7
  195. package/dist/CallingClient/registration/types.js.map +0 -1
  196. package/dist/CallingClient/types.js +0 -7
  197. package/dist/CallingClient/types.js.map +0 -1
  198. package/dist/Contacts/ContactsClient.js +0 -1139
  199. package/dist/Contacts/ContactsClient.js.map +0 -1
  200. package/dist/Contacts/ContactsClient.test.js +0 -725
  201. package/dist/Contacts/ContactsClient.test.js.map +0 -1
  202. package/dist/Contacts/constants.js +0 -36
  203. package/dist/Contacts/constants.js.map +0 -1
  204. package/dist/Contacts/contactFixtures.js +0 -340
  205. package/dist/Contacts/contactFixtures.js.map +0 -1
  206. package/dist/Contacts/types.js +0 -20
  207. package/dist/Contacts/types.js.map +0 -1
  208. package/dist/Errors/catalog/CallError.js +0 -94
  209. package/dist/Errors/catalog/CallError.js.map +0 -1
  210. package/dist/Errors/catalog/CallingDeviceError.js +0 -88
  211. package/dist/Errors/catalog/CallingDeviceError.js.map +0 -1
  212. package/dist/Errors/catalog/ExtendedError.js +0 -45
  213. package/dist/Errors/catalog/ExtendedError.js.map +0 -1
  214. package/dist/Errors/catalog/LineError.js +0 -90
  215. package/dist/Errors/catalog/LineError.js.map +0 -1
  216. package/dist/Errors/index.js +0 -21
  217. package/dist/Errors/index.js.map +0 -1
  218. package/dist/Errors/types.js +0 -62
  219. package/dist/Errors/types.js.map +0 -1
  220. package/dist/Events/impl/index.js +0 -82
  221. package/dist/Events/impl/index.js.map +0 -1
  222. package/dist/Events/types.js +0 -111
  223. package/dist/Events/types.js.map +0 -1
  224. package/dist/Logger/index.js +0 -221
  225. package/dist/Logger/index.js.map +0 -1
  226. package/dist/Logger/index.test.js +0 -62
  227. package/dist/Logger/index.test.js.map +0 -1
  228. package/dist/Logger/types.js +0 -37
  229. package/dist/Logger/types.js.map +0 -1
  230. package/dist/Metrics/index.js +0 -329
  231. package/dist/Metrics/index.js.map +0 -1
  232. package/dist/Metrics/index.test.js +0 -291
  233. package/dist/Metrics/index.test.js.map +0 -1
  234. package/dist/Metrics/types.js +0 -50
  235. package/dist/Metrics/types.js.map +0 -1
  236. package/dist/SDKConnector/index.js +0 -105
  237. package/dist/SDKConnector/index.js.map +0 -1
  238. package/dist/SDKConnector/index.test.js +0 -9
  239. package/dist/SDKConnector/index.test.js.map +0 -1
  240. package/dist/SDKConnector/types.js +0 -7
  241. package/dist/SDKConnector/types.js.map +0 -1
  242. package/dist/SDKConnector/utils.js +0 -40
  243. package/dist/SDKConnector/utils.js.map +0 -1
  244. package/dist/SDKConnector/utils.test.js +0 -9
  245. package/dist/SDKConnector/utils.test.js.map +0 -1
  246. package/dist/Voicemail/BroadworksBackendConnector.js +0 -632
  247. package/dist/Voicemail/BroadworksBackendConnector.js.map +0 -1
  248. package/dist/Voicemail/BroadworksBackendConnector.test.js +0 -733
  249. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +0 -1
  250. package/dist/Voicemail/UcmBackendConnector.js +0 -566
  251. package/dist/Voicemail/UcmBackendConnector.js.map +0 -1
  252. package/dist/Voicemail/UcmBackendConnector.test.js +0 -628
  253. package/dist/Voicemail/UcmBackendConnector.test.js.map +0 -1
  254. package/dist/Voicemail/Voicemail.js +0 -378
  255. package/dist/Voicemail/Voicemail.js.map +0 -1
  256. package/dist/Voicemail/Voicemail.test.js +0 -226
  257. package/dist/Voicemail/Voicemail.test.js.map +0 -1
  258. package/dist/Voicemail/WxCallBackendConnector.js +0 -540
  259. package/dist/Voicemail/WxCallBackendConnector.js.map +0 -1
  260. package/dist/Voicemail/WxCallBackendConnector.test.js +0 -942
  261. package/dist/Voicemail/WxCallBackendConnector.test.js.map +0 -1
  262. package/dist/Voicemail/constants.js +0 -66
  263. package/dist/Voicemail/constants.js.map +0 -1
  264. package/dist/Voicemail/types.js +0 -7
  265. package/dist/Voicemail/types.js.map +0 -1
  266. package/dist/Voicemail/voicemailFixture.js +0 -559
  267. package/dist/Voicemail/voicemailFixture.js.map +0 -1
  268. package/dist/api.js +0 -134
  269. package/dist/api.js.map +0 -1
  270. package/dist/common/Utils.js +0 -1264
  271. package/dist/common/Utils.js.map +0 -1
  272. package/dist/common/Utils.test.js +0 -1227
  273. package/dist/common/Utils.test.js.map +0 -1
  274. package/dist/common/constants.js +0 -90
  275. package/dist/common/constants.js.map +0 -1
  276. package/dist/common/index.js +0 -19
  277. package/dist/common/index.js.map +0 -1
  278. package/dist/common/testUtil.js +0 -968
  279. package/dist/common/testUtil.js.map +0 -1
  280. package/dist/common/types.js +0 -75
  281. package/dist/common/types.js.map +0 -1
  282. package/dist/index.js +0 -63
  283. package/dist/index.js.map +0 -1
@@ -1,838 +0,0 @@
1
- "use strict";
2
-
3
- var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
4
- var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
5
- var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
- var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
7
- var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
8
- var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
9
- var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
10
- var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
11
- var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
12
- var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
13
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
15
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
16
- var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
17
- var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
18
- var _asyncMutex = require("async-mutex");
19
- var _register = require("./register");
20
- var _testUtil = require("../../common/testUtil");
21
- var _types = require("../../common/types");
22
- var utils = _interopRequireWildcard(require("../../common/Utils"));
23
- var _Logger = _interopRequireDefault(require("../../Logger"));
24
- var _types2 = require("../../Logger/types");
25
- var _registerFixtures = require("./registerFixtures");
26
- var _common = require("../../common");
27
- var _types3 = require("../../Errors/types");
28
- var _constants = require("../constants");
29
- var _types4 = require("../line/types");
30
- var _LineError = require("../../Errors/catalog/LineError");
31
- function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
32
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
- function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
34
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
35
- var webex = (0, _testUtil.getTestUtilsWebex)();
36
- var MockServiceData = {
37
- indicator: _types.ServiceIndicator.CALLING,
38
- domain: ''
39
- };
40
- var logSpy = jest.spyOn(_Logger.default, 'info');
41
- var warnSpy = jest.spyOn(_Logger.default, 'warn');
42
- var handleErrorSpy = jest.spyOn(utils, 'handleRegistrationErrors');
43
- describe('Registration Tests', function () {
44
- var originalProcessNextTick = process.nextTick;
45
- function flushPromises() {
46
- return new _promise.default(function (resolve) {
47
- originalProcessNextTick(resolve);
48
- });
49
- }
50
- var lineEmitter = jest.fn();
51
- var mobiusUris = (0, _common.filterMobiusUris)((0, _testUtil.getMobiusDiscoveryResponse)(), _registerFixtures.URL);
52
- var mockResponse = _objectSpread(_objectSpread({}, (0, _testUtil.getMockRequestTemplate)()), {}, {
53
- uri: "".concat(mobiusUris.primary[0], "device"),
54
- body: {
55
- userId: webex.internal.device.userId,
56
- clientDeviceUri: webex.internal.device.url,
57
- serviceData: {
58
- domain: '',
59
- indicator: 'calling'
60
- }
61
- }
62
- });
63
- var failurePayload = {
64
- statusCode: 500,
65
- body: _registerFixtures.mockPostResponse
66
- };
67
- var failurePayload429 = {
68
- statusCode: 429,
69
- body: _registerFixtures.mockPostResponse
70
- };
71
- var successPayload = {
72
- statusCode: 200,
73
- body: _registerFixtures.mockPostResponse
74
- };
75
- var reg;
76
- var restartSpy;
77
- var failbackRetry429Spy;
78
- var restoreSpy;
79
- var postRegistrationSpy;
80
- beforeEach(function () {
81
- var mutex = new _asyncMutex.Mutex();
82
- reg = (0, _register.createRegistration)(webex, MockServiceData, mutex, lineEmitter, _types2.LOGGER.INFO);
83
- reg.setMobiusServers(mobiusUris.primary, mobiusUris.backup);
84
- jest.clearAllMocks();
85
- restartSpy = jest.spyOn(reg, 'restartRegistration');
86
- failbackRetry429Spy = jest.spyOn(reg, _constants.FAILBACK_429_RETRY_UTIL);
87
- restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');
88
- postRegistrationSpy = jest.spyOn(reg, 'postRegistration');
89
- });
90
- afterEach(function () {
91
- webex.request = jest.fn();
92
- jest.clearAllTimers();
93
- jest.clearAllMocks();
94
- jest.useRealTimers();
95
- });
96
- it('verify successful registration', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
97
- return _regenerator.default.wrap(function _callee$(_context) {
98
- while (1) switch (_context.prev = _context.next) {
99
- case 0:
100
- webex.request.mockReturnValueOnce({
101
- body: _registerFixtures.mockPostResponse
102
- });
103
- _context.next = 3;
104
- return reg.triggerRegistration();
105
- case 3:
106
- expect(webex.request).toBeCalledOnceWith(_objectSpread(_objectSpread({}, mockResponse), {}, {
107
- method: 'POST'
108
- }));
109
- expect(reg.getStatus()).toEqual(_types.MobiusStatus.ACTIVE);
110
- expect(lineEmitter).toBeCalledTimes(2);
111
- expect(lineEmitter).toBeCalledWith(_types4.LINE_EVENTS.CONNECTING);
112
- expect(lineEmitter).toBeCalledWith(_types4.LINE_EVENTS.REGISTERED, _registerFixtures.mockPostResponse);
113
- case 8:
114
- case "end":
115
- return _context.stop();
116
- }
117
- }, _callee);
118
- })));
119
- it('verify failure registration', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
120
- var error;
121
- return _regenerator.default.wrap(function _callee2$(_context2) {
122
- while (1) switch (_context2.prev = _context2.next) {
123
- case 0:
124
- webex.request.mockRejectedValue({
125
- body: _registerFixtures.mockPostResponse,
126
- statusCode: 401
127
- });
128
- _context2.next = 3;
129
- return reg.triggerRegistration();
130
- case 3:
131
- expect(webex.request).toBeCalledOnceWith(_objectSpread(_objectSpread({}, mockResponse), {}, {
132
- method: 'POST'
133
- }));
134
- error = (0, _LineError.createLineError)('User is unauthorized due to an expired token. Sign out, then sign back in.', {}, _types3.ERROR_TYPE.TOKEN_ERROR, _types4.LineStatus.INACTIVE);
135
- expect(reg.getStatus()).toEqual(_types.MobiusStatus.DEFAULT);
136
- expect(lineEmitter).toBeCalledTimes(2);
137
- expect(lineEmitter).nthCalledWith(1, _types4.LINE_EVENTS.CONNECTING);
138
- expect(lineEmitter).nthCalledWith(2, _types4.LINE_EVENTS.ERROR, undefined, error);
139
- case 9:
140
- case "end":
141
- return _context2.stop();
142
- }
143
- }, _callee2);
144
- })));
145
- it('verify failure registration 403-101', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
146
- return _regenerator.default.wrap(function _callee3$(_context3) {
147
- while (1) switch (_context3.prev = _context3.next) {
148
- case 0:
149
- webex.request.mockRejectedValueOnce({
150
- body: {
151
- userId: _registerFixtures.mockPostResponse.userId,
152
- errorCode: 101,
153
- devices: [_registerFixtures.mockPostResponse.device]
154
- },
155
- statusCode: 403
156
- }).mockResolvedValueOnce({
157
- statusCode: 200,
158
- body: _registerFixtures.mockPostResponse
159
- });
160
- global.fetch = jest.fn(function () {
161
- return _promise.default.resolve({
162
- json: function json() {
163
- return _registerFixtures.mockDeleteResponse;
164
- }
165
- });
166
- });
167
- expect(reg.getStatus()).toEqual(_types.MobiusStatus.DEFAULT);
168
- _context3.next = 5;
169
- return reg.triggerRegistration();
170
- case 5:
171
- expect(webex.request).toBeCalledTimes(2);
172
- expect(webex.request).toBeCalledWith(_objectSpread(_objectSpread({}, mockResponse), {}, {
173
- method: 'POST'
174
- }));
175
- expect(global.fetch).toBeCalledOnceWith(_registerFixtures.mockPostResponse.device.uri, {
176
- method: 'DELETE',
177
- headers: expect.anything()
178
- });
179
- expect(warnSpy).toBeCalledWith('User device limit exceeded', expect.anything());
180
- expect(logSpy).toBeCalledWith('Registration restoration in progress.', expect.anything());
181
- expect(logSpy).toBeCalledWith('Registration restored successfully.', expect.anything());
182
- expect(reg.getStatus()).toEqual(_types.MobiusStatus.ACTIVE);
183
- expect(lineEmitter).toBeCalledTimes(4);
184
- expect(lineEmitter).nthCalledWith(1, _types4.LINE_EVENTS.CONNECTING);
185
- expect(lineEmitter).nthCalledWith(2, _types4.LINE_EVENTS.UNREGISTERED);
186
- expect(lineEmitter).nthCalledWith(3, _types4.LINE_EVENTS.CONNECTING);
187
- expect(lineEmitter).nthCalledWith(4, _types4.LINE_EVENTS.REGISTERED, _registerFixtures.mockPostResponse);
188
- case 17:
189
- case "end":
190
- return _context3.stop();
191
- }
192
- }, _callee3);
193
- })));
194
- describe('Registration failover tests', function () {
195
- it('verify unreachable primary with reachable backup servers', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
196
- return _regenerator.default.wrap(function _callee4$(_context4) {
197
- while (1) switch (_context4.prev = _context4.next) {
198
- case 0:
199
- jest.useFakeTimers();
200
- // try the primary twice and register successfully with backup servers
201
- webex.request.mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockResolvedValueOnce(successPayload);
202
- expect(reg.getStatus()).toEqual(_types.MobiusStatus.DEFAULT);
203
- _context4.next = 5;
204
- return reg.triggerRegistration();
205
- case 5:
206
- jest.advanceTimersByTime(_constants.REG_TRY_BACKUP_TIMER_VAL_IN_SEC * _constants.SEC_TO_MSEC_MFACTOR);
207
- _context4.next = 8;
208
- return flushPromises();
209
- case 8:
210
- expect(webex.request).toBeCalledTimes(3);
211
- expect(webex.request).toBeCalledWith(_objectSpread(_objectSpread({}, mockResponse), {}, {
212
- method: 'POST',
213
- uri: "".concat(mobiusUris.primary[0], "device")
214
- }));
215
- expect(webex.request).toBeCalledWith(_objectSpread(_objectSpread({}, mockResponse), {}, {
216
- method: 'POST',
217
- uri: "".concat(mobiusUris.backup[0], "device")
218
- }));
219
- expect(reg.getStatus()).toEqual(_types.MobiusStatus.ACTIVE);
220
- /* Active Url must match with the backup url as per the test */
221
- expect(reg.getActiveMobiusUrl()).toEqual(mobiusUris.backup[0]);
222
- case 13:
223
- case "end":
224
- return _context4.stop();
225
- }
226
- }, _callee4);
227
- })));
228
- it('verify unreachable primary and backup servers', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
229
- return _regenerator.default.wrap(function _callee5$(_context5) {
230
- while (1) switch (_context5.prev = _context5.next) {
231
- case 0:
232
- jest.useFakeTimers();
233
- // try the primary twice and register successfully with backup servers
234
- webex.request.mockRejectedValue(failurePayload);
235
- expect(reg.getStatus()).toEqual(_types.MobiusStatus.DEFAULT);
236
- _context5.next = 5;
237
- return reg.triggerRegistration();
238
- case 5:
239
- jest.advanceTimersByTime(_constants.REG_TRY_BACKUP_TIMER_VAL_IN_SEC * _constants.SEC_TO_MSEC_MFACTOR);
240
- _context5.next = 8;
241
- return flushPromises();
242
- case 8:
243
- jest.advanceTimersByTime(_constants.REG_TRY_BACKUP_TIMER_VAL_IN_SEC * _constants.SEC_TO_MSEC_MFACTOR);
244
- _context5.next = 11;
245
- return flushPromises();
246
- case 11:
247
- /*
248
- * 2 calls for primary -> initial and after timer expiry.
249
- * 2 calls for each backup entry -> 2 * 2 = 4.
250
- * So a total of 6 calls to webex.request and handleErrors
251
- */
252
- expect(webex.request).toBeCalledTimes(6);
253
- expect(handleErrorSpy).toBeCalledTimes(6);
254
- expect(webex.request).toBeCalledWith(_objectSpread(_objectSpread({}, mockResponse), {}, {
255
- method: 'POST',
256
- uri: "".concat(mobiusUris.primary[0], "device")
257
- }));
258
- expect(webex.request).toBeCalledWith(_objectSpread(_objectSpread({}, mockResponse), {}, {
259
- method: 'POST',
260
- uri: "".concat(mobiusUris.backup[0], "device")
261
- }));
262
- expect(webex.request).toBeCalledWith(_objectSpread(_objectSpread({}, mockResponse), {}, {
263
- method: 'POST',
264
- uri: "".concat(mobiusUris.backup[1], "device")
265
- }));
266
- expect(reg.getStatus()).toEqual(_types.MobiusStatus.DEFAULT);
267
- case 17:
268
- case "end":
269
- return _context5.stop();
270
- }
271
- }, _callee5);
272
- })));
273
- });
274
- describe('Registration failback tests', function () {
275
- beforeEach( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
276
- return _regenerator.default.wrap(function _callee6$(_context6) {
277
- while (1) switch (_context6.prev = _context6.next) {
278
- case 0:
279
- /* keep keepalive as active so that it wont interfere with the failback tests */
280
- jest.spyOn(reg, 'postKeepAlive').mockResolvedValue(successPayload);
281
- jest.useFakeTimers();
282
- postRegistrationSpy.mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockResolvedValueOnce(successPayload);
283
- _context6.next = 5;
284
- return reg.triggerRegistration();
285
- case 5:
286
- jest.advanceTimersByTime(_constants.REG_TRY_BACKUP_TIMER_VAL_IN_SEC * _constants.SEC_TO_MSEC_MFACTOR);
287
- _context6.next = 8;
288
- return flushPromises();
289
- case 8:
290
- reg.rehomingIntervalMin = _constants.DEFAULT_REHOMING_INTERVAL_MIN;
291
- reg.rehomingIntervalMax = _constants.DEFAULT_REHOMING_INTERVAL_MAX;
292
-
293
- /* These 2 calls to handleErrorSpy are for primary after which it fails over to backup */
294
- expect(handleErrorSpy).toBeCalledTimes(2);
295
-
296
- /* Active Url must match with the backup url as per the test */
297
- expect(reg.getActiveMobiusUrl()).toStrictEqual(mobiusUris.backup[0]);
298
- expect(reg.getStatus()).toEqual(_types.MobiusStatus.ACTIVE);
299
- case 13:
300
- case "end":
301
- return _context6.stop();
302
- }
303
- }, _callee6);
304
- })));
305
- afterEach(function () {
306
- jest.clearAllTimers();
307
- jest.clearAllMocks();
308
- });
309
- it('verify 429 error with failback to primary after initial registration with backup: Restore failure', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
310
- return _regenerator.default.wrap(function _callee7$(_context7) {
311
- while (1) switch (_context7.prev = _context7.next) {
312
- case 0:
313
- // delete should be successful
314
- global.fetch = jest.fn(function () {
315
- return _promise.default.resolve({
316
- json: function json() {
317
- return _registerFixtures.mockDeleteResponse;
318
- }
319
- });
320
- });
321
- postRegistrationSpy.mockRejectedValue(failurePayload429);
322
-
323
- /* Wait for failback to be triggered. */
324
- jest.advanceTimersByTime(reg.rehomingIntervalMax * _constants.MINUTES_TO_SEC_MFACTOR * _constants.SEC_TO_MSEC_MFACTOR);
325
- _context7.next = 5;
326
- return flushPromises();
327
- case 5:
328
- expect(logSpy).toBeCalledWith("Attempting failback to primary.", {
329
- method: 'executeFailback',
330
- file: _constants.REGISTRATION_FILE
331
- });
332
- expect(failbackRetry429Spy).toBeCalledOnceWith();
333
- expect(reg.failback429RetryAttempts).toBe(0);
334
- expect(reg.getStatus()).toBe(_types.MobiusStatus.DEFAULT);
335
- expect(restoreSpy).toBeCalledOnceWith(_constants.FAILBACK_429_RETRY_UTIL);
336
- expect(restartSpy).toBeCalledOnceWith(_constants.FAILBACK_429_RETRY_UTIL);
337
- expect(reg.failbackTimer).toBe(undefined);
338
- expect(reg.rehomingIntervalMin).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MIN);
339
- expect(reg.rehomingIntervalMax).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MAX);
340
- case 14:
341
- case "end":
342
- return _context7.stop();
343
- }
344
- }, _callee7);
345
- })));
346
- it('verify unsuccessful failback to primary after initial registration with backup: Restore failure', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
347
- return _regenerator.default.wrap(function _callee8$(_context8) {
348
- while (1) switch (_context8.prev = _context8.next) {
349
- case 0:
350
- postRegistrationSpy.mockRejectedValue(failurePayload);
351
-
352
- /* Wait for failback to be triggered. */
353
- jest.advanceTimersByTime(reg.rehomingIntervalMax * _constants.MINUTES_TO_SEC_MFACTOR * _constants.SEC_TO_MSEC_MFACTOR);
354
- _context8.next = 4;
355
- return flushPromises();
356
- case 4:
357
- expect(logSpy).toBeCalledWith("Attempting failback to primary.", {
358
- method: 'executeFailback',
359
- file: _constants.REGISTRATION_FILE
360
- });
361
- expect(reg.getStatus()).toBe(_types.MobiusStatus.DEFAULT);
362
- expect(restoreSpy).toBeCalledOnceWith(_constants.FAILBACK_UTIL);
363
- expect(restartSpy).toBeCalledOnceWith(_constants.FAILBACK_UTIL);
364
- expect(reg.rehomingIntervalMin).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MIN);
365
- expect(reg.rehomingIntervalMax).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MAX);
366
- case 10:
367
- case "end":
368
- return _context8.stop();
369
- }
370
- }, _callee8);
371
- })));
372
- it('verify unsuccessful failback to primary after initial registration with backup: Restore failure with final error', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
373
- var finalErrorPayload;
374
- return _regenerator.default.wrap(function _callee9$(_context9) {
375
- while (1) switch (_context9.prev = _context9.next) {
376
- case 0:
377
- finalErrorPayload = {
378
- statusCode: 401,
379
- body: _registerFixtures.mockPostResponse
380
- };
381
- postRegistrationSpy.mockClear();
382
- postRegistrationSpy.mockRejectedValue(finalErrorPayload).mockRejectedValueOnce(failurePayload);
383
- /* Wait for failback to be triggered. */
384
- jest.advanceTimersByTime(reg.rehomingIntervalMax * _constants.MINUTES_TO_SEC_MFACTOR * _constants.SEC_TO_MSEC_MFACTOR);
385
- _context9.next = 6;
386
- return flushPromises();
387
- case 6:
388
- expect(logSpy).toBeCalledWith("Attempting failback to primary.", {
389
- method: 'executeFailback',
390
- file: _constants.REGISTRATION_FILE
391
- });
392
- expect(reg.getStatus()).toBe(_types.MobiusStatus.DEFAULT);
393
- expect(restoreSpy).toBeCalledOnceWith(_constants.FAILBACK_UTIL);
394
- expect(restartSpy).not.toBeCalled();
395
- expect(reg.failbackTimer).toBe(undefined);
396
- expect(reg.rehomingIntervalMin).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MIN);
397
- expect(reg.rehomingIntervalMax).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MAX);
398
- case 13:
399
- case "end":
400
- return _context9.stop();
401
- }
402
- }, _callee9);
403
- })));
404
- it('verify unsuccessful failback to primary after initial registration with backup: Restore success', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {
405
- return _regenerator.default.wrap(function _callee10$(_context10) {
406
- while (1) switch (_context10.prev = _context10.next) {
407
- case 0:
408
- postRegistrationSpy.mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);
409
-
410
- /* Wait for failback to be triggered. */
411
- jest.advanceTimersByTime(reg.rehomingIntervalMax * _constants.MINUTES_TO_SEC_MFACTOR * _constants.SEC_TO_MSEC_MFACTOR);
412
- _context10.next = 4;
413
- return flushPromises();
414
- case 4:
415
- expect(logSpy).toBeCalledWith("Attempting failback to primary.", {
416
- method: 'executeFailback',
417
- file: _constants.REGISTRATION_FILE
418
- });
419
- /* Active Url should still match backup url */
420
- expect(reg.getActiveMobiusUrl()).toStrictEqual(mobiusUris.backup[0]);
421
- expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
422
- expect(restoreSpy).toBeCalledOnceWith(_constants.FAILBACK_UTIL);
423
- expect(restartSpy).not.toBeCalled();
424
- expect(reg.rehomingIntervalMin).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MIN);
425
- expect(reg.rehomingIntervalMax).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MAX);
426
- case 11:
427
- case "end":
428
- return _context10.stop();
429
- }
430
- }, _callee10);
431
- })));
432
- it('verify successful failback to primary after initial registration with backup', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11() {
433
- return _regenerator.default.wrap(function _callee11$(_context11) {
434
- while (1) switch (_context11.prev = _context11.next) {
435
- case 0:
436
- postRegistrationSpy.mockResolvedValue(successPayload);
437
-
438
- /* Wait for failback to be triggered. */
439
- jest.advanceTimersByTime(reg.rehomingIntervalMax * _constants.MINUTES_TO_SEC_MFACTOR * _constants.SEC_TO_MSEC_MFACTOR);
440
- _context11.next = 4;
441
- return flushPromises();
442
- case 4:
443
- expect(logSpy).toBeCalledWith("Attempting failback to primary.", {
444
- method: 'executeFailback',
445
- file: _constants.REGISTRATION_FILE
446
- });
447
-
448
- /* Active Url must now match with the primary url */
449
- expect(reg.getActiveMobiusUrl()).toStrictEqual(mobiusUris.primary[0]);
450
- expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
451
- expect(reg.failbackTimer).toBe(undefined);
452
- expect(restoreSpy).not.toBeCalled();
453
- expect(reg.rehomingIntervalMin).toBe(_registerFixtures.mockPostResponse.rehomingIntervalMin);
454
- expect(reg.rehomingIntervalMax).toBe(_registerFixtures.mockPostResponse.rehomingIntervalMax);
455
- case 11:
456
- case "end":
457
- return _context11.stop();
458
- }
459
- }, _callee11);
460
- })));
461
- it('verify unsuccessful failback attempt due to active call', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() {
462
- return _regenerator.default.wrap(function _callee12$(_context12) {
463
- while (1) switch (_context12.prev = _context12.next) {
464
- case 0:
465
- /** create a new call */
466
- reg.callManager.createCall();
467
- expect((0, _keys.default)(reg.callManager.getActiveCalls()).length).toBe(1);
468
- postRegistrationSpy.mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);
469
-
470
- /* Wait for failback to be triggered. */
471
- jest.advanceTimersByTime(reg.rehomingIntervalMax * _constants.MINUTES_TO_SEC_MFACTOR * _constants.SEC_TO_MSEC_MFACTOR);
472
- _context12.next = 6;
473
- return flushPromises();
474
- case 6:
475
- expect(logSpy).toBeCalledWith("Active calls present, deferring failback to next cycle.", {
476
- method: 'executeFailback',
477
- file: _constants.REGISTRATION_FILE
478
- });
479
-
480
- /* Active Url should still match backup url */
481
- expect(reg.getActiveMobiusUrl()).toStrictEqual(mobiusUris.backup[0]);
482
- expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
483
- expect(restoreSpy).not.toBeCalled();
484
- expect(restartSpy).not.toBeCalled();
485
- expect(logSpy).toBeCalledWith('Active calls present, deferring failback to next cycle.', {
486
- file: _constants.REGISTRATION_FILE,
487
- method: _constants.FAILBACK_UTIL
488
- });
489
- expect(reg.rehomingIntervalMin).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MIN);
490
- expect(reg.rehomingIntervalMax).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MAX);
491
- case 14:
492
- case "end":
493
- return _context12.stop();
494
- }
495
- }, _callee12);
496
- })));
497
- });
498
-
499
- // Keep-alive related test cases
500
- describe('Keep-alive Tests', function () {
501
- var logObj = {
502
- file: _constants.REGISTRATION_FILE,
503
- method: 'startKeepaliveTimer'
504
- };
505
- var mockKeepAliveBody = {
506
- device: _registerFixtures.mockPostResponse.device
507
- };
508
- beforeEach( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13() {
509
- return _regenerator.default.wrap(function _callee13$(_context13) {
510
- while (1) switch (_context13.prev = _context13.next) {
511
- case 0:
512
- postRegistrationSpy.mockResolvedValueOnce(successPayload);
513
- jest.useFakeTimers();
514
- _context13.next = 4;
515
- return reg.triggerRegistration();
516
- case 4:
517
- expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
518
- case 5:
519
- case "end":
520
- return _context13.stop();
521
- }
522
- }, _callee13);
523
- })));
524
- afterEach(function () {
525
- jest.clearAllTimers();
526
- jest.clearAllMocks();
527
- if (reg.keepaliveTimer) {
528
- clearInterval(reg.keepaliveTimer);
529
- reg.keepaliveTimer = undefined;
530
- }
531
- reg.reconnectPending = false;
532
- var calls = (0, _values.default)(reg.callManager.getActiveCalls());
533
- calls.forEach(function (call) {
534
- call.end();
535
- });
536
- });
537
- it('verify successful keep-alive cases', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14() {
538
- var keepAlivePayload, funcSpy;
539
- return _regenerator.default.wrap(function _callee14$(_context14) {
540
- while (1) switch (_context14.prev = _context14.next) {
541
- case 0:
542
- keepAlivePayload = {
543
- statusCode: 200,
544
- body: mockKeepAliveBody
545
- };
546
- webex.request.mockReturnValue(keepAlivePayload);
547
- funcSpy = jest.spyOn(reg, 'postKeepAlive');
548
- jest.advanceTimersByTime(2 * _registerFixtures.mockPostResponse.keepaliveInterval * _constants.SEC_TO_MSEC_MFACTOR);
549
- _context14.next = 6;
550
- return flushPromises();
551
- case 6:
552
- expect(funcSpy).toBeCalledTimes(2); // should be called 2 times: first try and after the interval.
553
- expect(logSpy).lastCalledWith('Sent Keepalive, status: 200', logObj);
554
- case 8:
555
- case "end":
556
- return _context14.stop();
557
- }
558
- }, _callee14);
559
- })));
560
- it('verify failure keep-alive cases: Retry Success', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() {
561
- var failurePayload, successPayload, timer;
562
- return _regenerator.default.wrap(function _callee15$(_context15) {
563
- while (1) switch (_context15.prev = _context15.next) {
564
- case 0:
565
- failurePayload = {
566
- statusCode: 503,
567
- body: mockKeepAliveBody
568
- };
569
- successPayload = {
570
- statusCode: 200,
571
- body: mockKeepAliveBody
572
- };
573
- timer = reg.keepaliveTimer;
574
- lineEmitter.mockClear();
575
- webex.request.mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);
576
- jest.advanceTimersByTime(2 * _registerFixtures.mockPostResponse.keepaliveInterval * _constants.SEC_TO_MSEC_MFACTOR);
577
- _context15.next = 8;
578
- return flushPromises();
579
- case 8:
580
- expect(handleErrorSpy).toBeCalledOnceWith(failurePayload, expect.anything(), {
581
- method: 'startKeepaliveTimer',
582
- file: _constants.REGISTRATION_FILE
583
- });
584
- expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
585
- expect(reg.keepaliveTimer).toBe(timer);
586
- expect(lineEmitter).nthCalledWith(1, _types4.LINE_EVENTS.RECONNECTING);
587
- expect(lineEmitter).nthCalledWith(2, _types4.LINE_EVENTS.RECONNECTED);
588
- expect(lineEmitter).toBeCalledTimes(2);
589
- case 14:
590
- case "end":
591
- return _context15.stop();
592
- }
593
- }, _callee15);
594
- })));
595
- it('verify failure keep-alive cases: Restore failure', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
596
- var restoreSpy, restartRegSpy, reconnectSpy, failurePayload, clearIntervalSpy, timer;
597
- return _regenerator.default.wrap(function _callee16$(_context16) {
598
- while (1) switch (_context16.prev = _context16.next) {
599
- case 0:
600
- restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');
601
- restartRegSpy = jest.spyOn(reg, 'restartRegistration');
602
- reconnectSpy = jest.spyOn(reg, 'reconnectOnFailure');
603
- failurePayload = {
604
- statusCode: 503,
605
- body: mockKeepAliveBody
606
- };
607
- clearIntervalSpy = jest.spyOn(global, 'clearInterval');
608
- lineEmitter.mockClear();
609
- webex.request.mockRejectedValue(failurePayload);
610
- expect(reg.getStatus()).toEqual(_types.MobiusStatus.ACTIVE);
611
- timer = reg.keepaliveTimer;
612
- jest.advanceTimersByTime(5 * _registerFixtures.mockPostResponse.keepaliveInterval * _constants.SEC_TO_MSEC_MFACTOR);
613
- _context16.next = 12;
614
- return flushPromises();
615
- case 12:
616
- expect(clearIntervalSpy).toBeCalledOnceWith(timer);
617
-
618
- // sendKeepAlive tries to retry 5 times before accepting failure
619
- // later 2 attempts to register with primary server
620
- expect(handleErrorSpy).toBeCalledTimes(7);
621
- expect(reg.getStatus()).toEqual(_types.MobiusStatus.DEFAULT);
622
- expect(reg.reconnectPending).toStrictEqual(false);
623
- expect(reconnectSpy).toBeCalledOnceWith(_constants.KEEPALIVE_UTIL);
624
- expect(restoreSpy).toBeCalledOnceWith(_constants.KEEPALIVE_UTIL);
625
- expect(restartRegSpy).toBeCalledOnceWith(_constants.KEEPALIVE_UTIL);
626
- expect(webex.request).toBeCalledTimes(7);
627
- expect(reg.keepaliveTimer).toBe(undefined);
628
- expect(lineEmitter).nthCalledWith(1, _types4.LINE_EVENTS.RECONNECTING);
629
- expect(lineEmitter).nthCalledWith(4, _types4.LINE_EVENTS.RECONNECTING);
630
- expect(lineEmitter).nthCalledWith(5, _types4.LINE_EVENTS.UNREGISTERED);
631
-
632
- /** there will be 2 registration attempts */
633
- expect(lineEmitter).nthCalledWith(6, _types4.LINE_EVENTS.CONNECTING);
634
- expect(lineEmitter).nthCalledWith(7, _types4.LINE_EVENTS.UNREGISTERED);
635
- expect(lineEmitter).nthCalledWith(8, _types4.LINE_EVENTS.CONNECTING);
636
- expect(lineEmitter).nthCalledWith(9, _types4.LINE_EVENTS.UNREGISTERED);
637
- expect(lineEmitter).toBeCalledTimes(9);
638
- case 29:
639
- case "end":
640
- return _context16.stop();
641
- }
642
- }, _callee16);
643
- })));
644
- it('verify failure keep-alive cases: Restore Success', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17() {
645
- var restoreSpy, restartRegSpy, reconnectSpy, failurePayload, successPayload, clearIntervalSpy, url, timer;
646
- return _regenerator.default.wrap(function _callee17$(_context17) {
647
- while (1) switch (_context17.prev = _context17.next) {
648
- case 0:
649
- restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');
650
- restartRegSpy = jest.spyOn(reg, 'restartRegistration');
651
- reconnectSpy = jest.spyOn(reg, 'reconnectOnFailure');
652
- failurePayload = {
653
- statusCode: 503,
654
- body: mockKeepAliveBody
655
- };
656
- successPayload = {
657
- statusCode: 200,
658
- body: mockKeepAliveBody
659
- };
660
- clearIntervalSpy = jest.spyOn(global, 'clearInterval');
661
- webex.request.mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);
662
-
663
- /* successful registration */
664
- // webex.request.mockResolvedValue(successPayload);
665
-
666
- expect(reg.getStatus()).toEqual(_types.MobiusStatus.ACTIVE);
667
- url = 'https://mobius.asydm-m-1.prod.infra.webex.com/api/v1';
668
- /* set active Url and expect the registration to restore to this url */
669
- reg.setActiveMobiusUrl(url);
670
- timer = reg.keepaliveTimer;
671
- jest.advanceTimersByTime(5 * _registerFixtures.mockPostResponse.keepaliveInterval * _constants.SEC_TO_MSEC_MFACTOR);
672
- _context17.next = 14;
673
- return flushPromises();
674
- case 14:
675
- expect(clearIntervalSpy).toBeCalledOnceWith(timer);
676
- expect(handleErrorSpy).toBeCalledTimes(5);
677
- expect(reg.getStatus()).toEqual(_types.MobiusStatus.ACTIVE);
678
- expect(reconnectSpy).toBeCalledOnceWith(_constants.KEEPALIVE_UTIL);
679
- expect(restoreSpy).toBeCalledOnceWith(_constants.KEEPALIVE_UTIL);
680
- expect(restartRegSpy).not.toBeCalled();
681
- expect(reg.getActiveMobiusUrl()).toStrictEqual(url);
682
- expect(reg.reconnectPending).toStrictEqual(false);
683
- expect(reg.keepaliveTimer).toBeTruthy();
684
- expect(reg.keepaliveTimer).not.toBe(timer);
685
- case 24:
686
- case "end":
687
- return _context17.stop();
688
- }
689
- }, _callee17);
690
- })));
691
- it('verify failure followed by recovery of keepalive', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18() {
692
- var failurePayload, successPayload, clearIntervalSpy, timer;
693
- return _regenerator.default.wrap(function _callee18$(_context18) {
694
- while (1) switch (_context18.prev = _context18.next) {
695
- case 0:
696
- failurePayload = {
697
- statusCode: 503,
698
- body: mockKeepAliveBody
699
- };
700
- successPayload = {
701
- statusCode: 200,
702
- body: mockKeepAliveBody
703
- };
704
- clearIntervalSpy = jest.spyOn(global, 'clearInterval');
705
- webex.request.mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);
706
- expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
707
- timer = reg.keepaliveTimer; // sendKeepAlive tries to retry 3 times and receiving success on third time
708
- jest.advanceTimersByTime(3 * _registerFixtures.mockPostResponse.keepaliveInterval * _constants.SEC_TO_MSEC_MFACTOR);
709
- _context18.next = 9;
710
- return flushPromises();
711
- case 9:
712
- expect(webex.request).toBeCalledTimes(3);
713
- expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
714
- expect(handleErrorSpy).toBeCalledTimes(2);
715
- expect(clearIntervalSpy).not.toBeCalled();
716
- expect(reg.keepaliveTimer).toBe(timer);
717
- case 14:
718
- case "end":
719
- return _context18.stop();
720
- }
721
- }, _callee18);
722
- })));
723
- it('verify final error for keep-alive', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
724
- var restoreSpy, restartRegSpy, reconnectSpy, failurePayload, clearIntervalSpy;
725
- return _regenerator.default.wrap(function _callee19$(_context19) {
726
- while (1) switch (_context19.prev = _context19.next) {
727
- case 0:
728
- restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');
729
- restartRegSpy = jest.spyOn(reg, 'restartRegistration');
730
- reconnectSpy = jest.spyOn(reg, 'reconnectOnFailure');
731
- failurePayload = {
732
- statusCode: 404,
733
- body: mockKeepAliveBody
734
- };
735
- clearIntervalSpy = jest.spyOn(global, 'clearInterval');
736
- webex.request.mockRejectedValue(failurePayload);
737
- expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
738
-
739
- /* send one keepalive */
740
- jest.advanceTimersByTime(_registerFixtures.mockPostResponse.keepaliveInterval * _constants.SEC_TO_MSEC_MFACTOR);
741
- _context19.next = 10;
742
- return flushPromises();
743
- case 10:
744
- expect(clearIntervalSpy).toBeCalledTimes(1);
745
- expect(reg.getStatus()).toBe(_types.MobiusStatus.DEFAULT);
746
- expect(reconnectSpy).not.toBeCalled();
747
- expect(restoreSpy).not.toBeCalled();
748
- expect(restartRegSpy).not.toBeCalled();
749
- expect(reg.reconnectPending).toStrictEqual(false);
750
- expect(webex.request).toBeCalledOnceWith({
751
- headers: mockResponse.headers,
752
- uri: "".concat(mockKeepAliveBody.device.uri, "/status"),
753
- method: 'POST',
754
- service: mockResponse.service
755
- });
756
- expect(reg.keepaliveTimer).toBe(undefined);
757
- expect(handleErrorSpy).toBeCalledOnceWith(failurePayload, expect.anything(), {
758
- file: _constants.REGISTRATION_FILE,
759
- method: _constants.KEEPALIVE_UTIL
760
- });
761
- case 19:
762
- case "end":
763
- return _context19.stop();
764
- }
765
- }, _callee19);
766
- })));
767
- it('verify failure keep-alive case with active call present: Restore Success after call ends', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
768
- var restoreSpy, restartRegSpy, reconnectSpy, failurePayload, successPayload, clearIntervalSpy, url, timer, call;
769
- return _regenerator.default.wrap(function _callee20$(_context20) {
770
- while (1) switch (_context20.prev = _context20.next) {
771
- case 0:
772
- restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');
773
- restartRegSpy = jest.spyOn(reg, 'restartRegistration');
774
- reconnectSpy = jest.spyOn(reg, 'reconnectOnFailure');
775
- failurePayload = {
776
- statusCode: 503,
777
- body: mockKeepAliveBody
778
- };
779
- successPayload = {
780
- statusCode: 200,
781
- body: mockKeepAliveBody
782
- };
783
- clearIntervalSpy = jest.spyOn(global, 'clearInterval');
784
- webex.request.mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);
785
-
786
- // jest.spyOn(callingClient['registration'], 'createDevice').mockResolvedValue(successPayload);
787
- url = 'https://mobius.asydm-m-1.prod.infra.webex.com/api/v1';
788
- reg.setActiveMobiusUrl(url);
789
- expect(reg.reconnectPending).toStrictEqual(false);
790
- timer = reg.keepaliveTimer;
791
- /* add a call to the callManager */
792
- call = reg.callManager.createCall();
793
- expect((0, _keys.default)(reg.callManager.getActiveCalls()).length).toBe(1);
794
-
795
- /* send one keepalive */
796
- jest.advanceTimersByTime(5 * _registerFixtures.mockPostResponse.keepaliveInterval * _constants.SEC_TO_MSEC_MFACTOR);
797
- _context20.next = 16;
798
- return flushPromises();
799
- case 16:
800
- expect(clearIntervalSpy).toBeCalledOnceWith(timer);
801
- expect(handleErrorSpy).toBeCalledTimes(5);
802
- expect(reg.keepaliveTimer).toStrictEqual(undefined);
803
- expect(reg.failbackTimer).toStrictEqual(undefined);
804
- expect(reg.getStatus()).toBe(_types.MobiusStatus.DEFAULT);
805
- expect(lineEmitter).lastCalledWith(_types4.LINE_EVENTS.UNREGISTERED);
806
- expect(reconnectSpy).toBeCalledOnceWith(_constants.KEEPALIVE_UTIL);
807
- expect(restoreSpy).not.toBeCalled();
808
- expect(restartRegSpy).not.toBeCalled();
809
- expect(reg.reconnectPending).toStrictEqual(true);
810
- expect(logSpy).toBeCalledWith('Active call(s) present, deferred reconnect till call cleanup.', {
811
- file: _constants.REGISTRATION_FILE,
812
- method: expect.any(String)
813
- });
814
- reconnectSpy.mockClear();
815
-
816
- /* simulate call disconnect and Calling client will trigger reconnect upon receiving disconnect event from CallManager */
817
- reg.callManager.callCollection = {};
818
- _context20.next = 31;
819
- return reg.reconnectOnFailure(_constants.CALLS_CLEARED_HANDLER_UTIL);
820
- case 31:
821
- expect((0, _keys.default)(reg.callManager.getActiveCalls()).length).toBe(0);
822
- expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
823
- expect(reconnectSpy).toBeCalledOnceWith(_constants.CALLS_CLEARED_HANDLER_UTIL);
824
- expect(restoreSpy).toBeCalledOnceWith(_constants.CALLS_CLEARED_HANDLER_UTIL);
825
- expect(restartRegSpy).not.toBeCalled();
826
- expect(reg.reconnectPending).toStrictEqual(false);
827
- expect(reg.getActiveMobiusUrl()).toStrictEqual(url);
828
- expect(reg.keepaliveTimer).toBeTruthy();
829
- expect(reg.keepaliveTimer).not.toBe(timer);
830
- case 40:
831
- case "end":
832
- return _context20.stop();
833
- }
834
- }, _callee20);
835
- })));
836
- });
837
- });
838
- //# sourceMappingURL=register.test.js.map