@webex/calling 3.0.0-next.8 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/dist/CallHistory/CallHistory.js +49 -49
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +9 -0
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallHistory/callHistoryFixtures.js +63 -7
  6. package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
  7. package/dist/CallHistory/constants.js +9 -18
  8. package/dist/CallHistory/constants.js.map +1 -1
  9. package/dist/CallHistory/types.js.map +1 -1
  10. package/dist/CallSettings/CallSettings.js +18 -13
  11. package/dist/CallSettings/CallSettings.js.map +1 -1
  12. package/dist/CallSettings/CallSettings.test.js.map +1 -1
  13. package/dist/CallSettings/UcmBackendConnector.js +7 -8
  14. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  15. package/dist/CallSettings/UcmBackendConnector.test.js +69 -37
  16. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  17. package/dist/CallSettings/WxCallBackendConnector.js +19 -13
  18. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  19. package/dist/CallSettings/WxCallBackendConnector.test.js +2 -2
  20. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  21. package/dist/CallSettings/constants.js +11 -22
  22. package/dist/CallSettings/constants.js.map +1 -1
  23. package/dist/CallSettings/testFixtures.js +4 -8
  24. package/dist/CallSettings/testFixtures.js.map +1 -1
  25. package/dist/CallSettings/types.js.map +1 -1
  26. package/dist/CallingClient/CallingClient.js +134 -75
  27. package/dist/CallingClient/CallingClient.js.map +1 -1
  28. package/dist/CallingClient/CallingClient.test.js +170 -109
  29. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  30. package/dist/CallingClient/callRecordFixtures.js +2 -4
  31. package/dist/CallingClient/callRecordFixtures.js.map +1 -1
  32. package/dist/CallingClient/calling/CallerId/index.js +9 -29
  33. package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
  34. package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -1
  35. package/dist/CallingClient/calling/CallerId/types.js.map +1 -1
  36. package/dist/CallingClient/calling/call.js +140 -80
  37. package/dist/CallingClient/calling/call.js.map +1 -1
  38. package/dist/CallingClient/calling/call.test.js +651 -409
  39. package/dist/CallingClient/calling/call.test.js.map +1 -1
  40. package/dist/CallingClient/calling/callManager.js +3 -14
  41. package/dist/CallingClient/calling/callManager.js.map +1 -1
  42. package/dist/CallingClient/calling/callManager.test.js +1 -1
  43. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  44. package/dist/CallingClient/calling/types.js +31 -33
  45. package/dist/CallingClient/calling/types.js.map +1 -1
  46. package/dist/CallingClient/callingClientFixtures.js +107 -17
  47. package/dist/CallingClient/callingClientFixtures.js.map +1 -1
  48. package/dist/CallingClient/constants.js +101 -193
  49. package/dist/CallingClient/constants.js.map +1 -1
  50. package/dist/CallingClient/line/index.js +20 -18
  51. package/dist/CallingClient/line/index.js.map +1 -1
  52. package/dist/CallingClient/line/line.test.js +13 -13
  53. package/dist/CallingClient/line/line.test.js.map +1 -1
  54. package/dist/CallingClient/line/types.js +7 -11
  55. package/dist/CallingClient/line/types.js.map +1 -1
  56. package/dist/CallingClient/registration/register.js +102 -111
  57. package/dist/CallingClient/registration/register.js.map +1 -1
  58. package/dist/CallingClient/registration/register.test.js +33 -32
  59. package/dist/CallingClient/registration/register.test.js.map +1 -1
  60. package/dist/CallingClient/registration/registerFixtures.js +5 -10
  61. package/dist/CallingClient/registration/registerFixtures.js.map +1 -1
  62. package/dist/CallingClient/registration/types.js.map +1 -1
  63. package/dist/CallingClient/types.js.map +1 -1
  64. package/dist/Contacts/ContactsClient.js +30 -19
  65. package/dist/Contacts/ContactsClient.js.map +1 -1
  66. package/dist/Contacts/ContactsClient.test.js +4 -4
  67. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  68. package/dist/Contacts/constants.js +10 -18
  69. package/dist/Contacts/constants.js.map +1 -1
  70. package/dist/Contacts/contactFixtures.js +26 -52
  71. package/dist/Contacts/contactFixtures.js.map +1 -1
  72. package/dist/Contacts/types.js +29 -9
  73. package/dist/Contacts/types.js.map +1 -1
  74. package/dist/Errors/catalog/CallError.js +3 -5
  75. package/dist/Errors/catalog/CallError.js.map +1 -1
  76. package/dist/Errors/catalog/CallingDeviceError.js +4 -6
  77. package/dist/Errors/catalog/CallingDeviceError.js.map +1 -1
  78. package/dist/Errors/catalog/ExtendedError.js +2 -3
  79. package/dist/Errors/catalog/ExtendedError.js.map +1 -1
  80. package/dist/Errors/catalog/LineError.js +5 -7
  81. package/dist/Errors/catalog/LineError.js.map +1 -1
  82. package/dist/Errors/index.js +7 -0
  83. package/dist/Errors/index.js.map +1 -1
  84. package/dist/Errors/types.js +15 -20
  85. package/dist/Errors/types.js.map +1 -1
  86. package/dist/Events/impl/index.js +2 -3
  87. package/dist/Events/impl/index.js.map +1 -1
  88. package/dist/Events/types.js +44 -52
  89. package/dist/Events/types.js.map +1 -1
  90. package/dist/Logger/index.js +1 -2
  91. package/dist/Logger/index.js.map +1 -1
  92. package/dist/Logger/index.test.js.map +1 -1
  93. package/dist/Logger/types.js +9 -12
  94. package/dist/Logger/types.js.map +1 -1
  95. package/dist/Metrics/index.js +2 -4
  96. package/dist/Metrics/index.js.map +1 -1
  97. package/dist/Metrics/index.test.js +3 -3
  98. package/dist/Metrics/index.test.js.map +1 -1
  99. package/dist/Metrics/types.js +15 -20
  100. package/dist/Metrics/types.js.map +1 -1
  101. package/dist/SDKConnector/index.js +1 -2
  102. package/dist/SDKConnector/index.js.map +1 -1
  103. package/dist/SDKConnector/types.js.map +1 -1
  104. package/dist/SDKConnector/utils.js +1 -2
  105. package/dist/SDKConnector/utils.js.map +1 -1
  106. package/dist/Voicemail/BroadworksBackendConnector.js +21 -12
  107. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  108. package/dist/Voicemail/BroadworksBackendConnector.test.js +2 -2
  109. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  110. package/dist/Voicemail/UcmBackendConnector.js +19 -11
  111. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  112. package/dist/Voicemail/UcmBackendConnector.test.js +5 -4
  113. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  114. package/dist/Voicemail/Voicemail.js +35 -33
  115. package/dist/Voicemail/Voicemail.js.map +1 -1
  116. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  117. package/dist/Voicemail/WxCallBackendConnector.js +18 -11
  118. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  119. package/dist/Voicemail/WxCallBackendConnector.test.js +4 -4
  120. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  121. package/dist/Voicemail/constants.js +29 -58
  122. package/dist/Voicemail/constants.js.map +1 -1
  123. package/dist/Voicemail/types.js.map +1 -1
  124. package/dist/Voicemail/voicemailFixture.js +35 -70
  125. package/dist/Voicemail/voicemailFixture.js.map +1 -1
  126. package/dist/api.js +13 -20
  127. package/dist/api.js.map +1 -1
  128. package/dist/common/Utils.js +18 -25
  129. package/dist/common/Utils.js.map +1 -1
  130. package/dist/common/Utils.test.js +3 -3
  131. package/dist/common/Utils.test.js.map +1 -1
  132. package/dist/common/constants.js +41 -82
  133. package/dist/common/constants.js.map +1 -1
  134. package/dist/common/testUtil.js +12 -21
  135. package/dist/common/testUtil.js.map +1 -1
  136. package/dist/common/types.js +34 -43
  137. package/dist/common/types.js.map +1 -1
  138. package/dist/index.js +246 -0
  139. package/dist/index.js.map +1 -1
  140. package/dist/module/CallHistory/CallHistory.js +7 -5
  141. package/dist/module/CallHistory/callHistoryFixtures.js +59 -0
  142. package/dist/module/CallSettings/UcmBackendConnector.js +4 -4
  143. package/dist/module/CallingClient/CallingClient.js +59 -42
  144. package/dist/module/CallingClient/calling/CallerId/index.js +3 -23
  145. package/dist/module/CallingClient/calling/call.js +69 -26
  146. package/dist/module/CallingClient/calling/callManager.js +0 -6
  147. package/dist/module/CallingClient/callingClientFixtures.js +119 -1
  148. package/dist/module/CallingClient/constants.js +8 -4
  149. package/dist/module/CallingClient/line/index.js +9 -12
  150. package/dist/module/CallingClient/line/types.js +0 -5
  151. package/dist/module/CallingClient/registration/register.js +28 -20
  152. package/dist/module/Errors/catalog/CallingDeviceError.js +2 -2
  153. package/dist/module/Errors/catalog/LineError.js +2 -2
  154. package/dist/module/Errors/index.js +1 -0
  155. package/dist/module/Events/types.js +2 -0
  156. package/dist/module/common/Utils.js +14 -19
  157. package/dist/module/common/testUtil.js +2 -1
  158. package/dist/module/common/types.js +6 -5
  159. package/dist/module/index.js +9 -0
  160. package/dist/types/CallHistory/CallHistory.d.ts +2 -1
  161. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  162. package/dist/types/CallHistory/callHistoryFixtures.d.ts +1 -0
  163. package/dist/types/CallHistory/callHistoryFixtures.d.ts.map +1 -1
  164. package/dist/types/CallSettings/UcmBackendConnector.d.ts +1 -1
  165. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  166. package/dist/types/CallSettings/types.d.ts +1 -0
  167. package/dist/types/CallSettings/types.d.ts.map +1 -1
  168. package/dist/types/CallingClient/CallingClient.d.ts +2 -0
  169. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  170. package/dist/types/CallingClient/calling/CallerId/index.d.ts.map +1 -1
  171. package/dist/types/CallingClient/calling/CallerId/types.d.ts.map +1 -1
  172. package/dist/types/CallingClient/calling/call.d.ts +2 -0
  173. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  174. package/dist/types/CallingClient/calling/callManager.d.ts +0 -1
  175. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  176. package/dist/types/CallingClient/calling/types.d.ts +30 -30
  177. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  178. package/dist/types/CallingClient/callingClientFixtures.d.ts +69 -1
  179. package/dist/types/CallingClient/callingClientFixtures.d.ts.map +1 -1
  180. package/dist/types/CallingClient/constants.d.ts +7 -3
  181. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  182. package/dist/types/CallingClient/line/index.d.ts +6 -6
  183. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  184. package/dist/types/CallingClient/line/types.d.ts +11 -23
  185. package/dist/types/CallingClient/line/types.d.ts.map +1 -1
  186. package/dist/types/CallingClient/registration/register.d.ts +3 -3
  187. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  188. package/dist/types/CallingClient/registration/types.d.ts +14 -14
  189. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  190. package/dist/types/CallingClient/types.d.ts +6 -4
  191. package/dist/types/CallingClient/types.d.ts.map +1 -1
  192. package/dist/types/Contacts/ContactsClient.d.ts +1 -1
  193. package/dist/types/Errors/catalog/CallingDeviceError.d.ts +4 -4
  194. package/dist/types/Errors/catalog/CallingDeviceError.d.ts.map +1 -1
  195. package/dist/types/Errors/catalog/LineError.d.ts +4 -4
  196. package/dist/types/Errors/catalog/LineError.d.ts.map +1 -1
  197. package/dist/types/Errors/index.d.ts +1 -0
  198. package/dist/types/Errors/index.d.ts.map +1 -1
  199. package/dist/types/Errors/types.d.ts +2 -3
  200. package/dist/types/Errors/types.d.ts.map +1 -1
  201. package/dist/types/Events/types.d.ts +28 -5
  202. package/dist/types/Events/types.d.ts.map +1 -1
  203. package/dist/types/SDKConnector/types.d.ts +2 -1
  204. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  205. package/dist/types/Voicemail/UcmBackendConnector.d.ts +1 -1
  206. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
  207. package/dist/types/Voicemail/WxCallBackendConnector.d.ts +1 -1
  208. package/dist/types/Voicemail/types.d.ts +10 -10
  209. package/dist/types/Voicemail/types.d.ts.map +1 -1
  210. package/dist/types/api.d.ts +4 -5
  211. package/dist/types/api.d.ts.map +1 -1
  212. package/dist/types/common/Utils.d.ts.map +1 -1
  213. package/dist/types/common/testUtil.d.ts +1 -0
  214. package/dist/types/common/testUtil.d.ts.map +1 -1
  215. package/dist/types/common/types.d.ts +3 -2
  216. package/dist/types/common/types.d.ts.map +1 -1
  217. package/dist/types/index.d.ts +13 -0
  218. package/dist/types/index.d.ts.map +1 -1
  219. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"names":["_asyncMutex","require","_register","_testUtil","_types","utils","_interopRequireWildcard","_Logger","_interopRequireDefault","_types2","_registerFixtures","_common","_types3","_constants","_types4","_LineError","_getRequireWildcardCache","nodeInterop","_WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","_Object$defineProperty","_Object$getOwnPropertyDescriptor","key","Object","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","_Object$keys2","_Object$getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","webex","getTestUtilsWebex","MockServiceData","indicator","ServiceIndicator","CALLING","domain","logSpy","jest","spyOn","log","warnSpy","handleErrorSpy","describe","originalProcessNextTick","process","nextTick","flushPromises","_promise","resolve","lineEmitter","fn","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","URL","mockResponse","getMockRequestTemplate","uri","concat","primary","body","userId","internal","device","clientDeviceUri","url","serviceData","failurePayload","statusCode","mockPostResponse","failurePayload429","successPayload","reg","restartSpy","failbackRetry429Spy","restoreSpy","postRegistrationSpy","beforeEach","mutex","Mutex","createRegistration","LOGGER","INFO","setMobiusServers","backup","clearAllMocks","FAILBACK_429_RETRY_UTIL","afterEach","request","clearAllTimers","useRealTimers","it","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","mockReturnValueOnce","triggerRegistration","expect","toBeCalledOnceWith","method","getStatus","toEqual","MobiusStatus","ACTIVE","toBeCalledTimes","toBeCalledWith","LINE_EVENTS","CONNECTING","REGISTERED","stop","_callee2","error","_callee2$","_context2","mockRejectedValue","createLineError","ERROR_TYPE","TOKEN_ERROR","LineStatus","INACTIVE","DEFAULT","nthCalledWith","ERROR","undefined","_callee3","_callee3$","_context3","mockRejectedValueOnce","errorCode","devices","mockResolvedValueOnce","global","fetch","json","mockDeleteResponse","headers","anything","UNREGISTERED","_callee4","_callee4$","_context4","useFakeTimers","advanceTimersByTime","REG_TRY_BACKUP_TIMER_VAL_IN_SEC","SEC_TO_MSEC_MFACTOR","getActiveMobiusUrl","_callee5","_callee5$","_context5","_callee6","_callee6$","_context6","mockResolvedValue","rehomingIntervalMin","DEFAULT_REHOMING_INTERVAL_MIN","rehomingIntervalMax","DEFAULT_REHOMING_INTERVAL_MAX","toStrictEqual","_callee7","_callee7$","_context7","MINUTES_TO_SEC_MFACTOR","file","REGISTRATION_FILE","failback429RetryAttempts","toBe","failbackTimer","_callee8","_callee8$","_context8","FAILBACK_UTIL","_callee9","finalErrorPayload","_callee9$","_context9","mockClear","not","toBeCalled","_callee10","_callee10$","_context10","_callee11","_callee11$","_context11","_callee12","_callee12$","_context12","callManager","createCall","_keys","getActiveCalls","logObj","mockKeepAliveBody","_callee13","_callee13$","_context13","keepaliveTimer","clearInterval","reconnectPending","calls","_values","end","_callee14","keepAlivePayload","funcSpy","_callee14$","_context14","mockReturnValue","keepaliveInterval","lastCalledWith","_callee15","timer","_callee15$","_context15","RECONNECTING","RECONNECTED","_callee16","restartRegSpy","reconnectSpy","clearIntervalSpy","_callee16$","_context16","KEEPALIVE_UTIL","_callee17","_callee17$","_context17","setActiveMobiusUrl","toBeTruthy","_callee18","_callee18$","_context18","_callee19","_callee19$","_context19","service","_callee20","_callee20$","_context20","any","String","callCollection","reconnectOnFailure","CALLS_CLEARED_HANDLER_UTIL"],"sources":["register.test.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-shadow */\nimport {Mutex} from 'async-mutex';\nimport {createRegistration} from './register';\nimport {\n getMobiusDiscoveryResponse,\n getMockRequestTemplate,\n getTestUtilsWebex,\n} from '../../common/testUtil';\nimport {MobiusStatus, ServiceIndicator, WebexRequestPayload} from '../../common/types';\nimport * as utils from '../../common/Utils';\nimport log from '../../Logger';\nimport {LOGGER} from '../../Logger/types';\nimport {URL, mockDeleteResponse, mockPostResponse} from './registerFixtures';\nimport {filterMobiusUris} from '../../common';\nimport {ERROR_TYPE} from '../../Errors/types';\nimport {\n CALLS_CLEARED_HANDLER_UTIL,\n DEFAULT_REHOMING_INTERVAL_MAX,\n DEFAULT_REHOMING_INTERVAL_MIN,\n FAILBACK_429_RETRY_UTIL,\n FAILBACK_UTIL,\n KEEPALIVE_UTIL,\n MINUTES_TO_SEC_MFACTOR,\n REGISTRATION_FILE,\n REG_TRY_BACKUP_TIMER_VAL_IN_SEC,\n SEC_TO_MSEC_MFACTOR,\n} from '../constants';\nimport {ICall} from '../calling/types';\nimport {LINE_EVENTS, LineStatus} from '../line/types';\nimport {createLineError} from '../../Errors/catalog/LineError';\nimport {IRegistration} from './types';\n\nconst webex = getTestUtilsWebex();\nconst MockServiceData = {\n indicator: ServiceIndicator.CALLING,\n domain: '',\n};\nconst logSpy = jest.spyOn(log, 'info');\nconst warnSpy = jest.spyOn(log, 'warn');\nconst handleErrorSpy = jest.spyOn(utils, 'handleRegistrationErrors');\n\ndescribe('Registration Tests', () => {\n const originalProcessNextTick = process.nextTick;\n function flushPromises() {\n return new Promise((resolve) => {\n originalProcessNextTick(resolve);\n });\n }\n\n const lineEmitter = jest.fn();\n\n const mobiusUris = filterMobiusUris(getMobiusDiscoveryResponse(), URL);\n\n const mockResponse = {\n ...getMockRequestTemplate(),\n uri: `${mobiusUris.primary[0]}device`,\n body: {\n userId: webex.internal.device.userId,\n clientDeviceUri: webex.internal.device.url,\n serviceData: {\n domain: '',\n indicator: 'calling',\n },\n },\n };\n\n const failurePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 500,\n body: mockPostResponse,\n });\n\n const failurePayload429 = <WebexRequestPayload>(<unknown>{\n statusCode: 429,\n body: mockPostResponse,\n });\n\n const successPayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: mockPostResponse,\n });\n\n let reg: IRegistration;\n let restartSpy;\n let failbackRetry429Spy;\n let restoreSpy;\n let postRegistrationSpy;\n\n beforeEach(() => {\n const mutex = new Mutex();\n reg = createRegistration(webex, MockServiceData, mutex, lineEmitter, LOGGER.INFO);\n reg.setMobiusServers(mobiusUris.primary, mobiusUris.backup);\n jest.clearAllMocks();\n restartSpy = jest.spyOn(reg, 'restartRegistration');\n failbackRetry429Spy = jest.spyOn(reg, FAILBACK_429_RETRY_UTIL);\n restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n postRegistrationSpy = jest.spyOn(reg, 'postRegistration');\n });\n\n afterEach(() => {\n webex.request = jest.fn();\n jest.clearAllTimers();\n jest.clearAllMocks();\n jest.useRealTimers();\n });\n\n it('verify successful registration', async () => {\n webex.request.mockReturnValueOnce({\n body: mockPostResponse,\n });\n\n await reg.triggerRegistration();\n\n expect(webex.request).toBeCalledOnceWith({\n ...mockResponse,\n method: 'POST',\n });\n\n expect(reg.getStatus()).toEqual(MobiusStatus.ACTIVE);\n expect(lineEmitter).toBeCalledTimes(2);\n expect(lineEmitter).toBeCalledWith(LINE_EVENTS.CONNECTING);\n expect(lineEmitter).toBeCalledWith(LINE_EVENTS.REGISTERED, mockPostResponse);\n });\n\n it('verify failure registration', async () => {\n webex.request.mockRejectedValue({\n body: mockPostResponse,\n statusCode: 401,\n });\n\n await reg.triggerRegistration();\n\n expect(webex.request).toBeCalledOnceWith({\n ...mockResponse,\n method: 'POST',\n });\n\n const error = createLineError(\n 'User is unauthorized due to an expired token. Sign out, then sign back in.',\n {},\n ERROR_TYPE.TOKEN_ERROR,\n LineStatus.INACTIVE\n );\n\n expect(reg.getStatus()).toEqual(MobiusStatus.DEFAULT);\n expect(lineEmitter).toBeCalledTimes(2);\n expect(lineEmitter).nthCalledWith(1, LINE_EVENTS.CONNECTING);\n expect(lineEmitter).nthCalledWith(2, LINE_EVENTS.ERROR, undefined, error);\n });\n\n it('verify failure registration 403-101', async () => {\n webex.request\n .mockRejectedValueOnce({\n body: {\n userId: mockPostResponse.userId,\n errorCode: 101,\n devices: [mockPostResponse.device],\n },\n statusCode: 403,\n })\n .mockResolvedValueOnce({\n statusCode: 200,\n body: mockPostResponse,\n });\n\n global.fetch = jest.fn(() => Promise.resolve({json: () => mockDeleteResponse})) as jest.Mock;\n\n expect(reg.getStatus()).toEqual(MobiusStatus.DEFAULT);\n await reg.triggerRegistration();\n expect(webex.request).toBeCalledTimes(2);\n expect(webex.request).toBeCalledWith({\n ...mockResponse,\n method: 'POST',\n });\n expect(global.fetch).toBeCalledOnceWith(mockPostResponse.device.uri, {\n method: 'DELETE',\n headers: expect.anything(),\n });\n\n expect(warnSpy).toBeCalledWith('User device limit exceeded', expect.anything());\n expect(logSpy).toBeCalledWith('Registration restoration in progress.', expect.anything());\n expect(logSpy).toBeCalledWith('Registration restored successfully.', expect.anything());\n\n expect(reg.getStatus()).toEqual(MobiusStatus.ACTIVE);\n expect(lineEmitter).toBeCalledTimes(4);\n expect(lineEmitter).nthCalledWith(1, LINE_EVENTS.CONNECTING);\n expect(lineEmitter).nthCalledWith(2, LINE_EVENTS.UNREGISTERED);\n expect(lineEmitter).nthCalledWith(3, LINE_EVENTS.CONNECTING);\n expect(lineEmitter).nthCalledWith(4, LINE_EVENTS.REGISTERED, mockPostResponse);\n });\n\n describe('Registration failover tests', () => {\n it('verify unreachable primary with reachable backup servers', async () => {\n jest.useFakeTimers();\n // try the primary twice and register successfully with backup servers\n webex.request\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockResolvedValueOnce(successPayload);\n\n expect(reg.getStatus()).toEqual(MobiusStatus.DEFAULT);\n await reg.triggerRegistration();\n jest.advanceTimersByTime(REG_TRY_BACKUP_TIMER_VAL_IN_SEC * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n\n expect(webex.request).toBeCalledTimes(3);\n expect(webex.request).toBeCalledWith({\n ...mockResponse,\n method: 'POST',\n uri: `${mobiusUris.primary[0]}device`,\n });\n expect(webex.request).toBeCalledWith({\n ...mockResponse,\n method: 'POST',\n uri: `${mobiusUris.backup[0]}device`,\n });\n expect(reg.getStatus()).toEqual(MobiusStatus.ACTIVE);\n /* Active Url must match with the backup url as per the test */\n expect(reg.getActiveMobiusUrl()).toEqual(mobiusUris.backup[0]);\n });\n\n it('verify unreachable primary and backup servers', async () => {\n jest.useFakeTimers();\n // try the primary twice and register successfully with backup servers\n webex.request.mockRejectedValue(failurePayload);\n\n expect(reg.getStatus()).toEqual(MobiusStatus.DEFAULT);\n await reg.triggerRegistration();\n jest.advanceTimersByTime(REG_TRY_BACKUP_TIMER_VAL_IN_SEC * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n jest.advanceTimersByTime(REG_TRY_BACKUP_TIMER_VAL_IN_SEC * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n\n /*\n * 2 calls for primary -> initial and after timer expiry.\n * 2 calls for each backup entry -> 2 * 2 = 4.\n * So a total of 6 calls to webex.request and handleErrors\n */\n expect(webex.request).toBeCalledTimes(6);\n expect(handleErrorSpy).toBeCalledTimes(6);\n expect(webex.request).toBeCalledWith({\n ...mockResponse,\n method: 'POST',\n uri: `${mobiusUris.primary[0]}device`,\n });\n expect(webex.request).toBeCalledWith({\n ...mockResponse,\n method: 'POST',\n uri: `${mobiusUris.backup[0]}device`,\n });\n expect(webex.request).toBeCalledWith({\n ...mockResponse,\n method: 'POST',\n uri: `${mobiusUris.backup[1]}device`,\n });\n expect(reg.getStatus()).toEqual(MobiusStatus.DEFAULT);\n });\n });\n\n describe('Registration failback tests', () => {\n beforeEach(async () => {\n /* keep keepalive as active so that it wont interfere with the failback tests */\n jest.spyOn(reg, 'postKeepAlive').mockResolvedValue(successPayload);\n jest.useFakeTimers();\n postRegistrationSpy\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockResolvedValueOnce(successPayload);\n\n await reg.triggerRegistration();\n\n jest.advanceTimersByTime(REG_TRY_BACKUP_TIMER_VAL_IN_SEC * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n reg.rehomingIntervalMin = DEFAULT_REHOMING_INTERVAL_MIN;\n reg.rehomingIntervalMax = DEFAULT_REHOMING_INTERVAL_MAX;\n\n /* These 2 calls to handleErrorSpy are for primary after which it fails over to backup */\n expect(handleErrorSpy).toBeCalledTimes(2);\n\n /* Active Url must match with the backup url as per the test */\n expect(reg.getActiveMobiusUrl()).toStrictEqual(mobiusUris.backup[0]);\n expect(reg.getStatus()).toEqual(MobiusStatus.ACTIVE);\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n });\n\n it('verify 429 error with failback to primary after initial registration with backup: Restore failure', async () => {\n // delete should be successful\n global.fetch = jest.fn(() => Promise.resolve({json: () => mockDeleteResponse})) as jest.Mock;\n\n postRegistrationSpy.mockRejectedValue(failurePayload429);\n\n /* Wait for failback to be triggered. */\n jest.advanceTimersByTime(\n reg.rehomingIntervalMax * MINUTES_TO_SEC_MFACTOR * SEC_TO_MSEC_MFACTOR\n );\n await flushPromises();\n\n expect(logSpy).toBeCalledWith(`Attempting failback to primary.`, {\n method: 'executeFailback',\n file: REGISTRATION_FILE,\n });\n\n expect(failbackRetry429Spy).toBeCalledOnceWith();\n expect(reg.failback429RetryAttempts).toBe(0);\n expect(reg.getStatus()).toBe(MobiusStatus.DEFAULT);\n expect(restoreSpy).toBeCalledOnceWith(FAILBACK_429_RETRY_UTIL);\n expect(restartSpy).toBeCalledOnceWith(FAILBACK_429_RETRY_UTIL);\n expect(reg.failbackTimer).toBe(undefined);\n expect(reg.rehomingIntervalMin).toBe(DEFAULT_REHOMING_INTERVAL_MIN);\n expect(reg.rehomingIntervalMax).toBe(DEFAULT_REHOMING_INTERVAL_MAX);\n });\n\n it('verify unsuccessful failback to primary after initial registration with backup: Restore failure', async () => {\n postRegistrationSpy.mockRejectedValue(failurePayload);\n\n /* Wait for failback to be triggered. */\n jest.advanceTimersByTime(\n reg.rehomingIntervalMax * MINUTES_TO_SEC_MFACTOR * SEC_TO_MSEC_MFACTOR\n );\n await flushPromises();\n\n expect(logSpy).toBeCalledWith(`Attempting failback to primary.`, {\n method: 'executeFailback',\n file: REGISTRATION_FILE,\n });\n expect(reg.getStatus()).toBe(MobiusStatus.DEFAULT);\n expect(restoreSpy).toBeCalledOnceWith(FAILBACK_UTIL);\n expect(restartSpy).toBeCalledOnceWith(FAILBACK_UTIL);\n expect(reg.rehomingIntervalMin).toBe(DEFAULT_REHOMING_INTERVAL_MIN);\n expect(reg.rehomingIntervalMax).toBe(DEFAULT_REHOMING_INTERVAL_MAX);\n });\n\n it('verify unsuccessful failback to primary after initial registration with backup: Restore failure with final error', async () => {\n const finalErrorPayload = <WebexRequestPayload>(<unknown>{\n statusCode: 401,\n body: mockPostResponse,\n });\n postRegistrationSpy.mockClear();\n postRegistrationSpy\n .mockRejectedValue(finalErrorPayload)\n .mockRejectedValueOnce(failurePayload);\n /* Wait for failback to be triggered. */\n jest.advanceTimersByTime(\n reg.rehomingIntervalMax * MINUTES_TO_SEC_MFACTOR * SEC_TO_MSEC_MFACTOR\n );\n await flushPromises();\n\n expect(logSpy).toBeCalledWith(`Attempting failback to primary.`, {\n method: 'executeFailback',\n file: REGISTRATION_FILE,\n });\n expect(reg.getStatus()).toBe(MobiusStatus.DEFAULT);\n expect(restoreSpy).toBeCalledOnceWith(FAILBACK_UTIL);\n expect(restartSpy).not.toBeCalled();\n expect(reg.failbackTimer).toBe(undefined);\n expect(reg.rehomingIntervalMin).toBe(DEFAULT_REHOMING_INTERVAL_MIN);\n expect(reg.rehomingIntervalMax).toBe(DEFAULT_REHOMING_INTERVAL_MAX);\n });\n\n it('verify unsuccessful failback to primary after initial registration with backup: Restore success', async () => {\n postRegistrationSpy.mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);\n\n /* Wait for failback to be triggered. */\n jest.advanceTimersByTime(\n reg.rehomingIntervalMax * MINUTES_TO_SEC_MFACTOR * SEC_TO_MSEC_MFACTOR\n );\n await flushPromises();\n\n expect(logSpy).toBeCalledWith(`Attempting failback to primary.`, {\n method: 'executeFailback',\n file: REGISTRATION_FILE,\n });\n /* Active Url should still match backup url */\n expect(reg.getActiveMobiusUrl()).toStrictEqual(mobiusUris.backup[0]);\n expect(reg.getStatus()).toBe(MobiusStatus.ACTIVE);\n expect(restoreSpy).toBeCalledOnceWith(FAILBACK_UTIL);\n expect(restartSpy).not.toBeCalled();\n expect(reg.rehomingIntervalMin).toBe(DEFAULT_REHOMING_INTERVAL_MIN);\n expect(reg.rehomingIntervalMax).toBe(DEFAULT_REHOMING_INTERVAL_MAX);\n });\n\n it('verify successful failback to primary after initial registration with backup', async () => {\n postRegistrationSpy.mockResolvedValue(successPayload);\n\n /* Wait for failback to be triggered. */\n jest.advanceTimersByTime(\n reg.rehomingIntervalMax * MINUTES_TO_SEC_MFACTOR * SEC_TO_MSEC_MFACTOR\n );\n await flushPromises();\n\n expect(logSpy).toBeCalledWith(`Attempting failback to primary.`, {\n method: 'executeFailback',\n file: REGISTRATION_FILE,\n });\n\n /* Active Url must now match with the primary url */\n expect(reg.getActiveMobiusUrl()).toStrictEqual(mobiusUris.primary[0]);\n expect(reg.getStatus()).toBe(MobiusStatus.ACTIVE);\n expect(reg.failbackTimer).toBe(undefined);\n expect(restoreSpy).not.toBeCalled();\n expect(reg.rehomingIntervalMin).toBe(mockPostResponse.rehomingIntervalMin);\n expect(reg.rehomingIntervalMax).toBe(mockPostResponse.rehomingIntervalMax);\n });\n\n it('verify unsuccessful failback attempt due to active call', async () => {\n /** create a new call */\n reg.callManager.createCall();\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(1);\n\n postRegistrationSpy.mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);\n\n /* Wait for failback to be triggered. */\n jest.advanceTimersByTime(\n reg.rehomingIntervalMax * MINUTES_TO_SEC_MFACTOR * SEC_TO_MSEC_MFACTOR\n );\n await flushPromises();\n\n expect(logSpy).toBeCalledWith(`Active calls present, deferring failback to next cycle.`, {\n method: 'executeFailback',\n file: REGISTRATION_FILE,\n });\n\n /* Active Url should still match backup url */\n expect(reg.getActiveMobiusUrl()).toStrictEqual(mobiusUris.backup[0]);\n expect(reg.getStatus()).toBe(MobiusStatus.ACTIVE);\n expect(restoreSpy).not.toBeCalled();\n expect(restartSpy).not.toBeCalled();\n\n expect(logSpy).toBeCalledWith('Active calls present, deferring failback to next cycle.', {\n file: REGISTRATION_FILE,\n method: FAILBACK_UTIL,\n });\n expect(reg.rehomingIntervalMin).toBe(DEFAULT_REHOMING_INTERVAL_MIN);\n expect(reg.rehomingIntervalMax).toBe(DEFAULT_REHOMING_INTERVAL_MAX);\n });\n });\n\n // Keep-alive related test cases\n describe('Keep-alive Tests', () => {\n const logObj = {\n file: REGISTRATION_FILE,\n method: 'startKeepaliveTimer',\n };\n\n const mockKeepAliveBody = {device: mockPostResponse.device};\n\n beforeEach(async () => {\n postRegistrationSpy.mockResolvedValueOnce(successPayload);\n jest.useFakeTimers();\n await reg.triggerRegistration();\n expect(reg.getStatus()).toBe(MobiusStatus.ACTIVE);\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n\n if (reg.keepaliveTimer) {\n clearInterval(reg.keepaliveTimer);\n reg.keepaliveTimer = undefined;\n }\n reg.reconnectPending = false;\n const calls = Object.values(reg.callManager.getActiveCalls()) as ICall[];\n\n calls.forEach((call) => {\n call.end();\n });\n });\n\n it('verify successful keep-alive cases', async () => {\n const keepAlivePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: mockKeepAliveBody,\n });\n\n webex.request.mockReturnValue(keepAlivePayload);\n\n const funcSpy = jest.spyOn(reg, 'postKeepAlive');\n\n jest.advanceTimersByTime(2 * mockPostResponse.keepaliveInterval * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n expect(funcSpy).toBeCalledTimes(2); // should be called 2 times: first try and after the interval.\n expect(logSpy).lastCalledWith('Sent Keepalive, status: 200', logObj);\n });\n\n it('verify failure keep-alive cases: Retry Success', async () => {\n const failurePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 503,\n body: mockKeepAliveBody,\n });\n const successPayload = {\n statusCode: 200,\n body: mockKeepAliveBody,\n };\n\n const timer = reg.keepaliveTimer;\n\n lineEmitter.mockClear();\n webex.request.mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);\n\n jest.advanceTimersByTime(2 * mockPostResponse.keepaliveInterval * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n\n expect(handleErrorSpy).toBeCalledOnceWith(failurePayload, expect.anything(), {\n method: 'startKeepaliveTimer',\n file: REGISTRATION_FILE,\n });\n\n expect(reg.getStatus()).toBe(MobiusStatus.ACTIVE);\n expect(reg.keepaliveTimer).toBe(timer);\n expect(lineEmitter).nthCalledWith(1, LINE_EVENTS.RECONNECTING);\n expect(lineEmitter).nthCalledWith(2, LINE_EVENTS.RECONNECTED);\n expect(lineEmitter).toBeCalledTimes(2);\n });\n\n it('verify failure keep-alive cases: Restore failure', async () => {\n const restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n const restartRegSpy = jest.spyOn(reg, 'restartRegistration');\n const reconnectSpy = jest.spyOn(reg, 'reconnectOnFailure');\n\n const failurePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 503,\n body: mockKeepAliveBody,\n });\n\n const clearIntervalSpy = jest.spyOn(global, 'clearInterval');\n\n lineEmitter.mockClear();\n\n webex.request.mockRejectedValue(failurePayload);\n\n expect(reg.getStatus()).toEqual(MobiusStatus.ACTIVE);\n\n const timer = reg.keepaliveTimer;\n\n jest.advanceTimersByTime(5 * mockPostResponse.keepaliveInterval * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n\n expect(clearIntervalSpy).toBeCalledOnceWith(timer);\n\n // sendKeepAlive tries to retry 5 times before accepting failure\n // later 2 attempts to register with primary server\n expect(handleErrorSpy).toBeCalledTimes(7);\n expect(reg.getStatus()).toEqual(MobiusStatus.DEFAULT);\n expect(reg.reconnectPending).toStrictEqual(false);\n expect(reconnectSpy).toBeCalledOnceWith(KEEPALIVE_UTIL);\n expect(restoreSpy).toBeCalledOnceWith(KEEPALIVE_UTIL);\n expect(restartRegSpy).toBeCalledOnceWith(KEEPALIVE_UTIL);\n\n expect(webex.request).toBeCalledTimes(7);\n expect(reg.keepaliveTimer).toBe(undefined);\n expect(lineEmitter).nthCalledWith(1, LINE_EVENTS.RECONNECTING);\n expect(lineEmitter).nthCalledWith(4, LINE_EVENTS.RECONNECTING);\n expect(lineEmitter).nthCalledWith(5, LINE_EVENTS.UNREGISTERED);\n\n /** there will be 2 registration attempts */\n expect(lineEmitter).nthCalledWith(6, LINE_EVENTS.CONNECTING);\n expect(lineEmitter).nthCalledWith(7, LINE_EVENTS.UNREGISTERED);\n expect(lineEmitter).nthCalledWith(8, LINE_EVENTS.CONNECTING);\n expect(lineEmitter).nthCalledWith(9, LINE_EVENTS.UNREGISTERED);\n expect(lineEmitter).toBeCalledTimes(9);\n });\n\n it('verify failure keep-alive cases: Restore Success', async () => {\n const restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n const restartRegSpy = jest.spyOn(reg, 'restartRegistration');\n const reconnectSpy = jest.spyOn(reg, 'reconnectOnFailure');\n\n const failurePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 503,\n body: mockKeepAliveBody,\n });\n const successPayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: mockKeepAliveBody,\n });\n\n const clearIntervalSpy = jest.spyOn(global, 'clearInterval');\n\n webex.request\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockResolvedValue(successPayload);\n\n /* successful registration */\n // webex.request.mockResolvedValue(successPayload);\n\n expect(reg.getStatus()).toEqual(MobiusStatus.ACTIVE);\n\n const url = 'https://mobius.asydm-m-1.prod.infra.webex.com/api/v1';\n\n /* set active Url and expect the registration to restore to this url */\n reg.setActiveMobiusUrl(url);\n\n const timer = reg.keepaliveTimer;\n\n jest.advanceTimersByTime(5 * mockPostResponse.keepaliveInterval * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n\n expect(clearIntervalSpy).toBeCalledOnceWith(timer);\n expect(handleErrorSpy).toBeCalledTimes(5);\n expect(reg.getStatus()).toEqual(MobiusStatus.ACTIVE);\n expect(reconnectSpy).toBeCalledOnceWith(KEEPALIVE_UTIL);\n expect(restoreSpy).toBeCalledOnceWith(KEEPALIVE_UTIL);\n expect(restartRegSpy).not.toBeCalled();\n expect(reg.getActiveMobiusUrl()).toStrictEqual(url);\n expect(reg.reconnectPending).toStrictEqual(false);\n expect(reg.keepaliveTimer).toBeTruthy();\n expect(reg.keepaliveTimer).not.toBe(timer);\n });\n\n it('verify failure followed by recovery of keepalive', async () => {\n const failurePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 503,\n body: mockKeepAliveBody,\n });\n const successPayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: mockKeepAliveBody,\n });\n\n const clearIntervalSpy = jest.spyOn(global, 'clearInterval');\n\n webex.request\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockResolvedValue(successPayload);\n\n expect(reg.getStatus()).toBe(MobiusStatus.ACTIVE);\n\n const timer = reg.keepaliveTimer;\n\n // sendKeepAlive tries to retry 3 times and receiving success on third time\n jest.advanceTimersByTime(3 * mockPostResponse.keepaliveInterval * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n\n expect(webex.request).toBeCalledTimes(3);\n expect(reg.getStatus()).toBe(MobiusStatus.ACTIVE);\n expect(handleErrorSpy).toBeCalledTimes(2);\n expect(clearIntervalSpy).not.toBeCalled();\n expect(reg.keepaliveTimer).toBe(timer);\n });\n\n it('verify final error for keep-alive', async () => {\n const restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n const restartRegSpy = jest.spyOn(reg, 'restartRegistration');\n const reconnectSpy = jest.spyOn(reg, 'reconnectOnFailure');\n const failurePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 404,\n body: mockKeepAliveBody,\n });\n\n const clearIntervalSpy = jest.spyOn(global, 'clearInterval');\n\n webex.request.mockRejectedValue(failurePayload);\n\n expect(reg.getStatus()).toBe(MobiusStatus.ACTIVE);\n\n /* send one keepalive */\n jest.advanceTimersByTime(mockPostResponse.keepaliveInterval * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n\n expect(clearIntervalSpy).toBeCalledTimes(1);\n expect(reg.getStatus()).toBe(MobiusStatus.DEFAULT);\n expect(reconnectSpy).not.toBeCalled();\n expect(restoreSpy).not.toBeCalled();\n expect(restartRegSpy).not.toBeCalled();\n expect(reg.reconnectPending).toStrictEqual(false);\n expect(webex.request).toBeCalledOnceWith({\n headers: mockResponse.headers,\n uri: `${mockKeepAliveBody.device.uri}/status`,\n method: 'POST',\n service: mockResponse.service,\n });\n expect(reg.keepaliveTimer).toBe(undefined);\n expect(handleErrorSpy).toBeCalledOnceWith(failurePayload, expect.anything(), {\n file: REGISTRATION_FILE,\n method: KEEPALIVE_UTIL,\n });\n });\n\n it('verify failure keep-alive case with active call present: Restore Success after call ends', async () => {\n const restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n const restartRegSpy = jest.spyOn(reg, 'restartRegistration');\n const reconnectSpy = jest.spyOn(reg, 'reconnectOnFailure');\n const failurePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 503,\n body: mockKeepAliveBody,\n });\n\n const successPayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: mockKeepAliveBody,\n });\n\n const clearIntervalSpy = jest.spyOn(global, 'clearInterval');\n\n webex.request\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockResolvedValue(successPayload);\n\n // jest.spyOn(callingClient['registration'], 'createDevice').mockResolvedValue(successPayload);\n\n const url = 'https://mobius.asydm-m-1.prod.infra.webex.com/api/v1';\n\n reg.setActiveMobiusUrl(url);\n\n expect(reg.reconnectPending).toStrictEqual(false);\n\n const timer = reg.keepaliveTimer;\n\n /* add a call to the callManager */\n const call = reg.callManager.createCall();\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(1);\n\n /* send one keepalive */\n jest.advanceTimersByTime(5 * mockPostResponse.keepaliveInterval * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n\n expect(clearIntervalSpy).toBeCalledOnceWith(timer);\n expect(handleErrorSpy).toBeCalledTimes(5);\n expect(reg.keepaliveTimer).toStrictEqual(undefined);\n expect(reg.failbackTimer).toStrictEqual(undefined);\n expect(reg.getStatus()).toBe(MobiusStatus.DEFAULT);\n expect(lineEmitter).lastCalledWith(LINE_EVENTS.UNREGISTERED);\n expect(reconnectSpy).toBeCalledOnceWith(KEEPALIVE_UTIL);\n expect(restoreSpy).not.toBeCalled();\n expect(restartRegSpy).not.toBeCalled();\n expect(reg.reconnectPending).toStrictEqual(true);\n expect(logSpy).toBeCalledWith(\n 'Active call(s) present, deferred reconnect till call cleanup.',\n {file: REGISTRATION_FILE, method: expect.any(String)}\n );\n\n reconnectSpy.mockClear();\n\n /* simulate call disconnect and Calling client will trigger reconnect upon receiving disconnect event from CallManager */\n reg.callManager.callCollection = {};\n await reg.reconnectOnFailure(CALLS_CLEARED_HANDLER_UTIL);\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n\n expect(reg.getStatus()).toBe(MobiusStatus.ACTIVE);\n expect(reconnectSpy).toBeCalledOnceWith(CALLS_CLEARED_HANDLER_UTIL);\n expect(restoreSpy).toBeCalledOnceWith(CALLS_CLEARED_HANDLER_UTIL);\n expect(restartRegSpy).not.toBeCalled();\n expect(reg.reconnectPending).toStrictEqual(false);\n expect(reg.getActiveMobiusUrl()).toStrictEqual(url);\n expect(reg.keepaliveTimer).toBeTruthy();\n expect(reg.keepaliveTimer).not.toBe(timer);\n });\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_asyncMutex","require","_register","_testUtil","_types","utils","_interopRequireWildcard","_Logger","_interopRequireDefault","_types2","_registerFixtures","_common","_types3","_constants","_types4","_LineError","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","ownKeys","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","webex","getTestUtilsWebex","MockServiceData","indicator","ServiceIndicator","CALLING","domain","logSpy","jest","spyOn","log","warnSpy","handleErrorSpy","describe","originalProcessNextTick","process","nextTick","flushPromises","_promise","resolve","lineEmitter","fn","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","URL","mockResponse","getMockRequestTemplate","uri","concat","primary","body","userId","internal","device","clientDeviceUri","url","serviceData","failurePayload","statusCode","mockPostResponse","failurePayload429","successPayload","reg","restartSpy","failbackRetry429Spy","restoreSpy","postRegistrationSpy","beforeEach","mutex","Mutex","createRegistration","LOGGER","INFO","setMobiusServers","backup","clearAllMocks","FAILBACK_429_RETRY_UTIL","afterEach","request","clearAllTimers","useRealTimers","it","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","mockReturnValueOnce","triggerRegistration","expect","toBeCalledOnceWith","method","getStatus","toEqual","RegistrationStatus","ACTIVE","toBeCalledTimes","toBeCalledWith","LINE_EVENTS","CONNECTING","REGISTERED","stop","_callee2","error","_callee2$","_context2","mockRejectedValue","createLineError","ERROR_TYPE","TOKEN_ERROR","INACTIVE","nthCalledWith","ERROR","undefined","_callee3","_callee3$","_context3","mockRejectedValueOnce","errorCode","devices","mockResolvedValueOnce","global","fetch","json","mockDeleteResponse","IDLE","headers","anything","UNREGISTERED","_callee4","_callee4$","_context4","useFakeTimers","advanceTimersByTime","REG_TRY_BACKUP_TIMER_VAL_IN_SEC","SEC_TO_MSEC_MFACTOR","getActiveMobiusUrl","_callee5","_callee5$","_context5","_callee6","_callee6$","_context6","mockResolvedValue","rehomingIntervalMin","DEFAULT_REHOMING_INTERVAL_MIN","rehomingIntervalMax","DEFAULT_REHOMING_INTERVAL_MAX","toStrictEqual","_callee7","_callee7$","_context7","MINUTES_TO_SEC_MFACTOR","file","REGISTRATION_FILE","failback429RetryAttempts","toBe","failbackTimer","_callee8","_callee8$","_context8","FAILBACK_UTIL","_callee9","finalErrorPayload","_callee9$","_context9","mockClear","not","toBeCalled","_callee10","_callee10$","_context10","_callee11","_callee11$","_context11","_callee12","_callee12$","_context12","callManager","createCall","_keys","getActiveCalls","logObj","mockKeepAliveBody","_callee13","_callee13$","_context13","keepaliveTimer","clearInterval","reconnectPending","calls","_values","end","_callee14","keepAlivePayload","funcSpy","_callee14$","_context14","mockReturnValue","keepaliveInterval","lastCalledWith","_callee15","timer","_callee15$","_context15","RECONNECTING","RECONNECTED","_callee16","restartRegSpy","reconnectSpy","clearIntervalSpy","_callee16$","_context16","KEEPALIVE_UTIL","_callee17","_callee17$","_context17","setActiveMobiusUrl","toBeTruthy","_callee18","_callee18$","_context18","_callee19","_callee19$","_context19","service","_callee20","_callee20$","_context20","any","String","callCollection","reconnectOnFailure","CALLS_CLEARED_HANDLER_UTIL"],"sources":["register.test.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-shadow */\nimport {Mutex} from 'async-mutex';\nimport {createRegistration} from './register';\nimport {\n getMobiusDiscoveryResponse,\n getMockRequestTemplate,\n getTestUtilsWebex,\n} from '../../common/testUtil';\nimport {RegistrationStatus, ServiceIndicator, WebexRequestPayload} from '../../common/types';\nimport * as utils from '../../common/Utils';\nimport log from '../../Logger';\nimport {LOGGER} from '../../Logger/types';\nimport {URL, mockDeleteResponse, mockPostResponse} from './registerFixtures';\nimport {filterMobiusUris} from '../../common';\nimport {ERROR_TYPE} from '../../Errors/types';\nimport {\n CALLS_CLEARED_HANDLER_UTIL,\n DEFAULT_REHOMING_INTERVAL_MAX,\n DEFAULT_REHOMING_INTERVAL_MIN,\n FAILBACK_429_RETRY_UTIL,\n FAILBACK_UTIL,\n KEEPALIVE_UTIL,\n MINUTES_TO_SEC_MFACTOR,\n REGISTRATION_FILE,\n REG_TRY_BACKUP_TIMER_VAL_IN_SEC,\n SEC_TO_MSEC_MFACTOR,\n} from '../constants';\nimport {ICall} from '../calling/types';\nimport {LINE_EVENTS} from '../line/types';\nimport {createLineError} from '../../Errors/catalog/LineError';\nimport {IRegistration} from './types';\n\nconst webex = getTestUtilsWebex();\nconst MockServiceData = {\n indicator: ServiceIndicator.CALLING,\n domain: '',\n};\nconst logSpy = jest.spyOn(log, 'info');\nconst warnSpy = jest.spyOn(log, 'warn');\nconst handleErrorSpy = jest.spyOn(utils, 'handleRegistrationErrors');\n\ndescribe('Registration Tests', () => {\n const originalProcessNextTick = process.nextTick;\n function flushPromises() {\n return new Promise((resolve) => {\n originalProcessNextTick(resolve);\n });\n }\n\n const lineEmitter = jest.fn();\n\n const mobiusUris = filterMobiusUris(getMobiusDiscoveryResponse(), URL);\n\n const mockResponse = {\n ...getMockRequestTemplate(),\n uri: `${mobiusUris.primary[0]}device`,\n body: {\n userId: webex.internal.device.userId,\n clientDeviceUri: webex.internal.device.url,\n serviceData: {\n domain: '',\n indicator: 'calling',\n },\n },\n };\n\n const failurePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 500,\n body: mockPostResponse,\n });\n\n const failurePayload429 = <WebexRequestPayload>(<unknown>{\n statusCode: 429,\n body: mockPostResponse,\n });\n\n const successPayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: mockPostResponse,\n });\n\n let reg: IRegistration;\n let restartSpy;\n let failbackRetry429Spy;\n let restoreSpy;\n let postRegistrationSpy;\n\n beforeEach(() => {\n const mutex = new Mutex();\n reg = createRegistration(webex, MockServiceData, mutex, lineEmitter, LOGGER.INFO);\n reg.setMobiusServers(mobiusUris.primary, mobiusUris.backup);\n jest.clearAllMocks();\n restartSpy = jest.spyOn(reg, 'restartRegistration');\n failbackRetry429Spy = jest.spyOn(reg, FAILBACK_429_RETRY_UTIL);\n restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n postRegistrationSpy = jest.spyOn(reg, 'postRegistration');\n });\n\n afterEach(() => {\n webex.request = jest.fn();\n jest.clearAllTimers();\n jest.clearAllMocks();\n jest.useRealTimers();\n });\n\n it('verify successful registration', async () => {\n webex.request.mockReturnValueOnce({\n body: mockPostResponse,\n });\n\n await reg.triggerRegistration();\n\n expect(webex.request).toBeCalledOnceWith({\n ...mockResponse,\n method: 'POST',\n });\n\n expect(reg.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n expect(lineEmitter).toBeCalledTimes(2);\n expect(lineEmitter).toBeCalledWith(LINE_EVENTS.CONNECTING);\n expect(lineEmitter).toBeCalledWith(LINE_EVENTS.REGISTERED, mockPostResponse);\n });\n\n it('verify failure registration', async () => {\n webex.request.mockRejectedValue({\n body: mockPostResponse,\n statusCode: 401,\n });\n\n await reg.triggerRegistration();\n\n expect(webex.request).toBeCalledOnceWith({\n ...mockResponse,\n method: 'POST',\n });\n\n const error = createLineError(\n 'User is unauthorized due to an expired token. Sign out, then sign back in.',\n {},\n ERROR_TYPE.TOKEN_ERROR,\n RegistrationStatus.INACTIVE\n );\n\n expect(reg.getStatus()).toEqual(RegistrationStatus.INACTIVE);\n expect(lineEmitter).toBeCalledTimes(2);\n expect(lineEmitter).nthCalledWith(1, LINE_EVENTS.CONNECTING);\n expect(lineEmitter).nthCalledWith(2, LINE_EVENTS.ERROR, undefined, error);\n });\n\n it('verify failure registration 403-101', async () => {\n webex.request\n .mockRejectedValueOnce({\n body: {\n userId: mockPostResponse.userId,\n errorCode: 101,\n devices: [mockPostResponse.device],\n },\n statusCode: 403,\n })\n .mockResolvedValueOnce({\n statusCode: 200,\n body: mockPostResponse,\n });\n\n global.fetch = jest.fn(() => Promise.resolve({json: () => mockDeleteResponse})) as jest.Mock;\n\n expect(reg.getStatus()).toEqual(RegistrationStatus.IDLE);\n await reg.triggerRegistration();\n expect(webex.request).toBeCalledTimes(2);\n expect(webex.request).toBeCalledWith({\n ...mockResponse,\n method: 'POST',\n });\n expect(global.fetch).toBeCalledOnceWith(mockPostResponse.device.uri, {\n method: 'DELETE',\n headers: expect.anything(),\n });\n\n expect(warnSpy).toBeCalledWith('User device limit exceeded', expect.anything());\n expect(logSpy).toBeCalledWith('Registration restoration in progress.', expect.anything());\n expect(logSpy).toBeCalledWith('Registration restored successfully.', expect.anything());\n\n expect(reg.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n expect(lineEmitter).toBeCalledTimes(4);\n expect(lineEmitter).nthCalledWith(1, LINE_EVENTS.CONNECTING);\n expect(lineEmitter).nthCalledWith(2, LINE_EVENTS.UNREGISTERED);\n expect(lineEmitter).nthCalledWith(3, LINE_EVENTS.CONNECTING);\n expect(lineEmitter).nthCalledWith(4, LINE_EVENTS.REGISTERED, mockPostResponse);\n });\n\n describe('Registration failover tests', () => {\n it('verify unreachable primary with reachable backup servers', async () => {\n jest.useFakeTimers();\n // try the primary twice and register successfully with backup servers\n webex.request\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockResolvedValueOnce(successPayload);\n\n expect(reg.getStatus()).toEqual(RegistrationStatus.IDLE);\n await reg.triggerRegistration();\n jest.advanceTimersByTime(REG_TRY_BACKUP_TIMER_VAL_IN_SEC * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n\n expect(webex.request).toBeCalledTimes(3);\n expect(webex.request).toBeCalledWith({\n ...mockResponse,\n method: 'POST',\n uri: `${mobiusUris.primary[0]}device`,\n });\n expect(webex.request).toBeCalledWith({\n ...mockResponse,\n method: 'POST',\n uri: `${mobiusUris.backup[0]}device`,\n });\n expect(reg.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n /* Active Url must match with the backup url as per the test */\n expect(reg.getActiveMobiusUrl()).toEqual(mobiusUris.backup[0]);\n });\n\n it('verify unreachable primary and backup servers', async () => {\n jest.useFakeTimers();\n // try the primary twice and register successfully with backup servers\n webex.request.mockRejectedValue(failurePayload);\n\n expect(reg.getStatus()).toEqual(RegistrationStatus.IDLE);\n await reg.triggerRegistration();\n jest.advanceTimersByTime(REG_TRY_BACKUP_TIMER_VAL_IN_SEC * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n jest.advanceTimersByTime(REG_TRY_BACKUP_TIMER_VAL_IN_SEC * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n\n /*\n * 2 calls for primary -> initial and after timer expiry.\n * 2 calls for each backup entry -> 2 * 2 = 4.\n * So a total of 6 calls to webex.request and handleErrors\n */\n expect(webex.request).toBeCalledTimes(6);\n expect(handleErrorSpy).toBeCalledTimes(6);\n expect(webex.request).toBeCalledWith({\n ...mockResponse,\n method: 'POST',\n uri: `${mobiusUris.primary[0]}device`,\n });\n expect(webex.request).toBeCalledWith({\n ...mockResponse,\n method: 'POST',\n uri: `${mobiusUris.backup[0]}device`,\n });\n expect(webex.request).toBeCalledWith({\n ...mockResponse,\n method: 'POST',\n uri: `${mobiusUris.backup[1]}device`,\n });\n expect(reg.getStatus()).toEqual(RegistrationStatus.INACTIVE);\n });\n });\n\n describe('Registration failback tests', () => {\n beforeEach(async () => {\n /* keep keepalive as active so that it wont interfere with the failback tests */\n jest.spyOn(reg, 'postKeepAlive').mockResolvedValue(successPayload);\n jest.useFakeTimers();\n postRegistrationSpy\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockResolvedValueOnce(successPayload);\n\n await reg.triggerRegistration();\n\n jest.advanceTimersByTime(REG_TRY_BACKUP_TIMER_VAL_IN_SEC * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n reg.rehomingIntervalMin = DEFAULT_REHOMING_INTERVAL_MIN;\n reg.rehomingIntervalMax = DEFAULT_REHOMING_INTERVAL_MAX;\n\n /* These 2 calls to handleErrorSpy are for primary after which it fails over to backup */\n expect(handleErrorSpy).toBeCalledTimes(2);\n\n /* Active Url must match with the backup url as per the test */\n expect(reg.getActiveMobiusUrl()).toStrictEqual(mobiusUris.backup[0]);\n expect(reg.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n });\n\n it('verify 429 error with failback to primary after initial registration with backup: Restore failure', async () => {\n // delete should be successful\n global.fetch = jest.fn(() => Promise.resolve({json: () => mockDeleteResponse})) as jest.Mock;\n\n postRegistrationSpy.mockRejectedValue(failurePayload429);\n\n /* Wait for failback to be triggered. */\n jest.advanceTimersByTime(\n reg.rehomingIntervalMax * MINUTES_TO_SEC_MFACTOR * SEC_TO_MSEC_MFACTOR\n );\n await flushPromises();\n\n expect(logSpy).toBeCalledWith(`Attempting failback to primary.`, {\n method: 'executeFailback',\n file: REGISTRATION_FILE,\n });\n\n expect(failbackRetry429Spy).toBeCalledOnceWith();\n expect(reg.failback429RetryAttempts).toBe(0);\n expect(reg.getStatus()).toBe(RegistrationStatus.INACTIVE);\n expect(restoreSpy).toBeCalledOnceWith(FAILBACK_429_RETRY_UTIL);\n expect(restartSpy).toBeCalledOnceWith(FAILBACK_429_RETRY_UTIL);\n expect(reg.failbackTimer).toBe(undefined);\n expect(reg.rehomingIntervalMin).toBe(DEFAULT_REHOMING_INTERVAL_MIN);\n expect(reg.rehomingIntervalMax).toBe(DEFAULT_REHOMING_INTERVAL_MAX);\n });\n\n it('verify unsuccessful failback to primary after initial registration with backup: Restore failure', async () => {\n postRegistrationSpy.mockRejectedValue(failurePayload);\n\n /* Wait for failback to be triggered. */\n jest.advanceTimersByTime(\n reg.rehomingIntervalMax * MINUTES_TO_SEC_MFACTOR * SEC_TO_MSEC_MFACTOR\n );\n await flushPromises();\n\n expect(logSpy).toBeCalledWith(`Attempting failback to primary.`, {\n method: 'executeFailback',\n file: REGISTRATION_FILE,\n });\n expect(reg.getStatus()).toBe(RegistrationStatus.INACTIVE);\n expect(restoreSpy).toBeCalledOnceWith(FAILBACK_UTIL);\n expect(restartSpy).toBeCalledOnceWith(FAILBACK_UTIL);\n expect(reg.rehomingIntervalMin).toBe(DEFAULT_REHOMING_INTERVAL_MIN);\n expect(reg.rehomingIntervalMax).toBe(DEFAULT_REHOMING_INTERVAL_MAX);\n });\n\n it('verify unsuccessful failback to primary after initial registration with backup: Restore failure with final error', async () => {\n const finalErrorPayload = <WebexRequestPayload>(<unknown>{\n statusCode: 401,\n body: mockPostResponse,\n });\n postRegistrationSpy.mockClear();\n postRegistrationSpy\n .mockRejectedValue(finalErrorPayload)\n .mockRejectedValueOnce(failurePayload);\n /* Wait for failback to be triggered. */\n jest.advanceTimersByTime(\n reg.rehomingIntervalMax * MINUTES_TO_SEC_MFACTOR * SEC_TO_MSEC_MFACTOR\n );\n await flushPromises();\n\n expect(logSpy).toBeCalledWith(`Attempting failback to primary.`, {\n method: 'executeFailback',\n file: REGISTRATION_FILE,\n });\n expect(reg.getStatus()).toBe(RegistrationStatus.INACTIVE);\n expect(restoreSpy).toBeCalledOnceWith(FAILBACK_UTIL);\n expect(restartSpy).not.toBeCalled();\n expect(reg.failbackTimer).toBe(undefined);\n expect(reg.rehomingIntervalMin).toBe(DEFAULT_REHOMING_INTERVAL_MIN);\n expect(reg.rehomingIntervalMax).toBe(DEFAULT_REHOMING_INTERVAL_MAX);\n });\n\n it('verify unsuccessful failback to primary after initial registration with backup: Restore success', async () => {\n postRegistrationSpy.mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);\n\n /* Wait for failback to be triggered. */\n jest.advanceTimersByTime(\n reg.rehomingIntervalMax * MINUTES_TO_SEC_MFACTOR * SEC_TO_MSEC_MFACTOR\n );\n await flushPromises();\n\n expect(logSpy).toBeCalledWith(`Attempting failback to primary.`, {\n method: 'executeFailback',\n file: REGISTRATION_FILE,\n });\n /* Active Url should still match backup url */\n expect(reg.getActiveMobiusUrl()).toStrictEqual(mobiusUris.backup[0]);\n expect(reg.getStatus()).toBe(RegistrationStatus.ACTIVE);\n expect(restoreSpy).toBeCalledOnceWith(FAILBACK_UTIL);\n expect(restartSpy).not.toBeCalled();\n expect(reg.rehomingIntervalMin).toBe(DEFAULT_REHOMING_INTERVAL_MIN);\n expect(reg.rehomingIntervalMax).toBe(DEFAULT_REHOMING_INTERVAL_MAX);\n });\n\n it('verify successful failback to primary after initial registration with backup', async () => {\n postRegistrationSpy.mockResolvedValue(successPayload);\n\n /* Wait for failback to be triggered. */\n jest.advanceTimersByTime(\n reg.rehomingIntervalMax * MINUTES_TO_SEC_MFACTOR * SEC_TO_MSEC_MFACTOR\n );\n await flushPromises();\n\n expect(logSpy).toBeCalledWith(`Attempting failback to primary.`, {\n method: 'executeFailback',\n file: REGISTRATION_FILE,\n });\n\n /* Active Url must now match with the primary url */\n expect(reg.getActiveMobiusUrl()).toStrictEqual(mobiusUris.primary[0]);\n expect(reg.getStatus()).toBe(RegistrationStatus.ACTIVE);\n expect(reg.failbackTimer).toBe(undefined);\n expect(restoreSpy).not.toBeCalled();\n expect(reg.rehomingIntervalMin).toBe(mockPostResponse.rehomingIntervalMin);\n expect(reg.rehomingIntervalMax).toBe(mockPostResponse.rehomingIntervalMax);\n });\n\n it('verify unsuccessful failback attempt due to active call', async () => {\n /** create a new call */\n reg.callManager.createCall();\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(1);\n\n postRegistrationSpy.mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);\n\n /* Wait for failback to be triggered. */\n jest.advanceTimersByTime(\n reg.rehomingIntervalMax * MINUTES_TO_SEC_MFACTOR * SEC_TO_MSEC_MFACTOR\n );\n await flushPromises();\n\n expect(logSpy).toBeCalledWith(`Active calls present, deferring failback to next cycle.`, {\n method: 'executeFailback',\n file: REGISTRATION_FILE,\n });\n\n /* Active Url should still match backup url */\n expect(reg.getActiveMobiusUrl()).toStrictEqual(mobiusUris.backup[0]);\n expect(reg.getStatus()).toBe(RegistrationStatus.ACTIVE);\n expect(restoreSpy).not.toBeCalled();\n expect(restartSpy).not.toBeCalled();\n\n expect(logSpy).toBeCalledWith('Active calls present, deferring failback to next cycle.', {\n file: REGISTRATION_FILE,\n method: FAILBACK_UTIL,\n });\n expect(reg.rehomingIntervalMin).toBe(DEFAULT_REHOMING_INTERVAL_MIN);\n expect(reg.rehomingIntervalMax).toBe(DEFAULT_REHOMING_INTERVAL_MAX);\n });\n });\n\n // Keep-alive related test cases\n describe('Keep-alive Tests', () => {\n const logObj = {\n file: REGISTRATION_FILE,\n method: 'startKeepaliveTimer',\n };\n\n const mockKeepAliveBody = {device: mockPostResponse.device};\n\n beforeEach(async () => {\n postRegistrationSpy.mockResolvedValueOnce(successPayload);\n jest.useFakeTimers();\n await reg.triggerRegistration();\n expect(reg.getStatus()).toBe(RegistrationStatus.ACTIVE);\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n\n if (reg.keepaliveTimer) {\n clearInterval(reg.keepaliveTimer);\n reg.keepaliveTimer = undefined;\n }\n reg.reconnectPending = false;\n const calls = Object.values(reg.callManager.getActiveCalls()) as ICall[];\n\n calls.forEach((call) => {\n call.end();\n });\n });\n\n it('verify successful keep-alive cases', async () => {\n const keepAlivePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: mockKeepAliveBody,\n });\n\n webex.request.mockReturnValue(keepAlivePayload);\n\n const funcSpy = jest.spyOn(reg, 'postKeepAlive');\n\n jest.advanceTimersByTime(2 * mockPostResponse.keepaliveInterval * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n expect(funcSpy).toBeCalledTimes(2); // should be called 2 times: first try and after the interval.\n expect(logSpy).lastCalledWith('Sent Keepalive, status: 200', logObj);\n });\n\n it('verify failure keep-alive cases: Retry Success', async () => {\n const failurePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 503,\n body: mockKeepAliveBody,\n });\n const successPayload = {\n statusCode: 200,\n body: mockKeepAliveBody,\n };\n\n const timer = reg.keepaliveTimer;\n\n lineEmitter.mockClear();\n webex.request.mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);\n\n jest.advanceTimersByTime(2 * mockPostResponse.keepaliveInterval * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n\n expect(handleErrorSpy).toBeCalledOnceWith(failurePayload, expect.anything(), {\n method: 'startKeepaliveTimer',\n file: REGISTRATION_FILE,\n });\n\n expect(reg.getStatus()).toBe(RegistrationStatus.ACTIVE);\n expect(reg.keepaliveTimer).toBe(timer);\n expect(lineEmitter).nthCalledWith(1, LINE_EVENTS.RECONNECTING);\n expect(lineEmitter).nthCalledWith(2, LINE_EVENTS.RECONNECTED);\n expect(lineEmitter).toBeCalledTimes(2);\n });\n\n it('verify failure keep-alive cases: Restore failure', async () => {\n const restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n const restartRegSpy = jest.spyOn(reg, 'restartRegistration');\n const reconnectSpy = jest.spyOn(reg, 'reconnectOnFailure');\n\n const failurePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 503,\n body: mockKeepAliveBody,\n });\n\n const clearIntervalSpy = jest.spyOn(global, 'clearInterval');\n\n lineEmitter.mockClear();\n\n webex.request.mockRejectedValue(failurePayload);\n\n expect(reg.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n\n const timer = reg.keepaliveTimer;\n\n jest.advanceTimersByTime(5 * mockPostResponse.keepaliveInterval * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n\n expect(clearIntervalSpy).toBeCalledOnceWith(timer);\n\n // sendKeepAlive tries to retry 5 times before accepting failure\n // later 2 attempts to register with primary server\n expect(handleErrorSpy).toBeCalledTimes(7);\n expect(reg.getStatus()).toEqual(RegistrationStatus.INACTIVE);\n expect(reg.reconnectPending).toStrictEqual(false);\n expect(reconnectSpy).toBeCalledOnceWith(KEEPALIVE_UTIL);\n expect(restoreSpy).toBeCalledOnceWith(KEEPALIVE_UTIL);\n expect(restartRegSpy).toBeCalledOnceWith(KEEPALIVE_UTIL);\n\n expect(webex.request).toBeCalledTimes(7);\n expect(reg.keepaliveTimer).toBe(undefined);\n expect(lineEmitter).nthCalledWith(1, LINE_EVENTS.RECONNECTING);\n expect(lineEmitter).nthCalledWith(4, LINE_EVENTS.RECONNECTING);\n expect(lineEmitter).nthCalledWith(5, LINE_EVENTS.UNREGISTERED);\n\n /** there will be 2 registration attempts */\n expect(lineEmitter).nthCalledWith(6, LINE_EVENTS.CONNECTING);\n expect(lineEmitter).nthCalledWith(7, LINE_EVENTS.UNREGISTERED);\n expect(lineEmitter).nthCalledWith(8, LINE_EVENTS.CONNECTING);\n expect(lineEmitter).nthCalledWith(9, LINE_EVENTS.UNREGISTERED);\n expect(lineEmitter).toBeCalledTimes(9);\n });\n\n it('verify failure keep-alive cases: Restore Success', async () => {\n const restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n const restartRegSpy = jest.spyOn(reg, 'restartRegistration');\n const reconnectSpy = jest.spyOn(reg, 'reconnectOnFailure');\n\n const failurePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 503,\n body: mockKeepAliveBody,\n });\n const successPayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: mockKeepAliveBody,\n });\n\n const clearIntervalSpy = jest.spyOn(global, 'clearInterval');\n\n webex.request\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockResolvedValue(successPayload);\n\n /* successful registration */\n // webex.request.mockResolvedValue(successPayload);\n\n expect(reg.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n\n const url = 'https://mobius.asydm-m-1.prod.infra.webex.com/api/v1';\n\n /* set active Url and expect the registration to restore to this url */\n reg.setActiveMobiusUrl(url);\n\n const timer = reg.keepaliveTimer;\n\n jest.advanceTimersByTime(5 * mockPostResponse.keepaliveInterval * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n\n expect(clearIntervalSpy).toBeCalledOnceWith(timer);\n expect(handleErrorSpy).toBeCalledTimes(5);\n expect(reg.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n expect(reconnectSpy).toBeCalledOnceWith(KEEPALIVE_UTIL);\n expect(restoreSpy).toBeCalledOnceWith(KEEPALIVE_UTIL);\n expect(restartRegSpy).not.toBeCalled();\n expect(reg.getActiveMobiusUrl()).toStrictEqual(url);\n expect(reg.reconnectPending).toStrictEqual(false);\n expect(reg.keepaliveTimer).toBeTruthy();\n expect(reg.keepaliveTimer).not.toBe(timer);\n });\n\n it('verify failure followed by recovery of keepalive', async () => {\n const failurePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 503,\n body: mockKeepAliveBody,\n });\n const successPayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: mockKeepAliveBody,\n });\n\n const clearIntervalSpy = jest.spyOn(global, 'clearInterval');\n\n webex.request\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockResolvedValue(successPayload);\n\n expect(reg.getStatus()).toBe(RegistrationStatus.ACTIVE);\n\n const timer = reg.keepaliveTimer;\n\n // sendKeepAlive tries to retry 3 times and receiving success on third time\n jest.advanceTimersByTime(3 * mockPostResponse.keepaliveInterval * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n\n expect(webex.request).toBeCalledTimes(3);\n expect(reg.getStatus()).toBe(RegistrationStatus.ACTIVE);\n expect(handleErrorSpy).toBeCalledTimes(2);\n expect(clearIntervalSpy).not.toBeCalled();\n expect(reg.keepaliveTimer).toBe(timer);\n });\n\n it('verify final error for keep-alive', async () => {\n const restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n const restartRegSpy = jest.spyOn(reg, 'restartRegistration');\n const reconnectSpy = jest.spyOn(reg, 'reconnectOnFailure');\n const failurePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 404,\n body: mockKeepAliveBody,\n });\n\n const clearIntervalSpy = jest.spyOn(global, 'clearInterval');\n\n webex.request.mockRejectedValue(failurePayload);\n\n expect(reg.getStatus()).toBe(RegistrationStatus.ACTIVE);\n\n /* send one keepalive */\n jest.advanceTimersByTime(mockPostResponse.keepaliveInterval * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n\n expect(clearIntervalSpy).toBeCalledTimes(1);\n expect(reg.getStatus()).toBe(RegistrationStatus.INACTIVE);\n expect(reconnectSpy).not.toBeCalled();\n expect(restoreSpy).not.toBeCalled();\n expect(restartRegSpy).not.toBeCalled();\n expect(reg.reconnectPending).toStrictEqual(false);\n expect(webex.request).toBeCalledOnceWith({\n headers: mockResponse.headers,\n uri: `${mockKeepAliveBody.device.uri}/status`,\n method: 'POST',\n service: mockResponse.service,\n });\n expect(reg.keepaliveTimer).toBe(undefined);\n expect(handleErrorSpy).toBeCalledOnceWith(failurePayload, expect.anything(), {\n file: REGISTRATION_FILE,\n method: KEEPALIVE_UTIL,\n });\n });\n\n it('verify failure keep-alive case with active call present: Restore Success after call ends', async () => {\n const restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n const restartRegSpy = jest.spyOn(reg, 'restartRegistration');\n const reconnectSpy = jest.spyOn(reg, 'reconnectOnFailure');\n const failurePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 503,\n body: mockKeepAliveBody,\n });\n\n const successPayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: mockKeepAliveBody,\n });\n\n const clearIntervalSpy = jest.spyOn(global, 'clearInterval');\n\n webex.request\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockRejectedValueOnce(failurePayload)\n .mockResolvedValue(successPayload);\n\n // jest.spyOn(callingClient['registration'], 'createDevice').mockResolvedValue(successPayload);\n\n const url = 'https://mobius.asydm-m-1.prod.infra.webex.com/api/v1';\n\n reg.setActiveMobiusUrl(url);\n\n expect(reg.reconnectPending).toStrictEqual(false);\n\n const timer = reg.keepaliveTimer;\n\n /* add a call to the callManager */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const call = reg.callManager.createCall();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(1);\n\n /* send one keepalive */\n jest.advanceTimersByTime(5 * mockPostResponse.keepaliveInterval * SEC_TO_MSEC_MFACTOR);\n await flushPromises();\n\n expect(clearIntervalSpy).toBeCalledOnceWith(timer);\n expect(handleErrorSpy).toBeCalledTimes(5);\n expect(reg.keepaliveTimer).toStrictEqual(undefined);\n expect(reg.failbackTimer).toStrictEqual(undefined);\n expect(reg.getStatus()).toBe(RegistrationStatus.INACTIVE);\n expect(lineEmitter).lastCalledWith(LINE_EVENTS.UNREGISTERED);\n expect(reconnectSpy).toBeCalledOnceWith(KEEPALIVE_UTIL);\n expect(restoreSpy).not.toBeCalled();\n expect(restartRegSpy).not.toBeCalled();\n expect(reg.reconnectPending).toStrictEqual(true);\n expect(logSpy).toBeCalledWith(\n 'Active call(s) present, deferred reconnect till call cleanup.',\n {file: REGISTRATION_FILE, method: expect.any(String)}\n );\n\n reconnectSpy.mockClear();\n\n /* simulate call disconnect and Calling client will trigger reconnect upon receiving disconnect event from CallManager */\n reg.callManager.callCollection = {};\n await reg.reconnectOnFailure(CALLS_CLEARED_HANDLER_UTIL);\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n\n expect(reg.getStatus()).toBe(RegistrationStatus.ACTIVE);\n expect(reconnectSpy).toBeCalledOnceWith(CALLS_CLEARED_HANDLER_UTIL);\n expect(restoreSpy).toBeCalledOnceWith(CALLS_CLEARED_HANDLER_UTIL);\n expect(restartRegSpy).not.toBeCalled();\n expect(reg.reconnectPending).toStrictEqual(false);\n expect(reg.getActiveMobiusUrl()).toStrictEqual(url);\n expect(reg.keepaliveTimer).toBeTruthy();\n expect(reg.keepaliveTimer).not.toBe(timer);\n });\n });\n});\n"],"mappings":"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"}
@@ -5,13 +5,10 @@ _Object$defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.mockPostResponse = exports.mockDeleteResponse = exports.URL = exports.DEVICE_ID = exports.CLIENT_DEVICE_URL = void 0;
8
- var DEVICE_ID = '9381a370-b26b-3c5b-8901-4e8dab405dcc';
9
- exports.DEVICE_ID = DEVICE_ID;
10
- var CLIENT_DEVICE_URL = 'https://clientDeviceUrl';
11
- exports.CLIENT_DEVICE_URL = CLIENT_DEVICE_URL;
12
- var URL = 'https://wdm-intb.ciscospark.com/wdm/api/v1/';
13
- exports.URL = URL;
14
- var mockPostResponse = {
8
+ var DEVICE_ID = exports.DEVICE_ID = '9381a370-b26b-3c5b-8901-4e8dab405dcc';
9
+ var CLIENT_DEVICE_URL = exports.CLIENT_DEVICE_URL = 'https://clientDeviceUrl';
10
+ var URL = exports.URL = 'https://wdm-intb.ciscospark.com/wdm/api/v1/';
11
+ var mockPostResponse = exports.mockPostResponse = {
15
12
  userId: '8a67806f-fc4d-446b-a131-31e71ea5b0e9',
16
13
  device: {
17
14
  deviceId: 'beb3c025-8c6a-3c44-8f3d-9b7d65363ac1',
@@ -25,8 +22,7 @@ var mockPostResponse = {
25
22
  rehomingIntervalMin: 90,
26
23
  rehomingIntervalMax: 180
27
24
  };
28
- exports.mockPostResponse = mockPostResponse;
29
- var mockDeleteResponse = {
25
+ var mockDeleteResponse = exports.mockDeleteResponse = {
30
26
  userId: '8a67806f-fc4d-446b-a131-31e71ea5b0e9',
31
27
  device: {
32
28
  deviceId: DEVICE_ID,
@@ -37,5 +33,4 @@ var mockDeleteResponse = {
37
33
  clientDeviceUri: CLIENT_DEVICE_URL
38
34
  }
39
35
  };
40
- exports.mockDeleteResponse = mockDeleteResponse;
41
36
  //# sourceMappingURL=registerFixtures.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DEVICE_ID","exports","CLIENT_DEVICE_URL","URL","mockPostResponse","userId","device","deviceId","uri","status","lastSeen","addresses","clientDeviceUri","keepaliveInterval","rehomingIntervalMin","rehomingIntervalMax","mockDeleteResponse"],"sources":["registerFixtures.ts"],"sourcesContent":["export const DEVICE_ID = '9381a370-b26b-3c5b-8901-4e8dab405dcc';\nexport const CLIENT_DEVICE_URL = 'https://clientDeviceUrl';\n\nexport const URL = 'https://wdm-intb.ciscospark.com/wdm/api/v1/';\nexport const mockPostResponse = {\n userId: '8a67806f-fc4d-446b-a131-31e71ea5b0e9',\n device: {\n deviceId: 'beb3c025-8c6a-3c44-8f3d-9b7d65363ac1',\n uri: 'https://wdm-intb.ciscospark.com/wdm/api/v1/calling/web/devices/beb3c025-8c6a-3c44-8f3d-9b7d65363ac1',\n status: 'active',\n lastSeen: '2022-04-05T05:08:46Z',\n addresses: ['sip:pbs9p4cbr9_G6JJNI5DD5NP@64941297.int10.bcld.webex.com'],\n clientDeviceUri: CLIENT_DEVICE_URL,\n },\n keepaliveInterval: 30,\n rehomingIntervalMin: 90,\n rehomingIntervalMax: 180,\n};\n\nexport const mockDeleteResponse = {\n userId: '8a67806f-fc4d-446b-a131-31e71ea5b0e9',\n device: {\n deviceId: DEVICE_ID,\n uri: 'https://wdm-intb.ciscospark.com/wdm/api/v1/calling/web/devices/9381a370-b26b-3c5b-8901-4e8dab405dcc',\n status: 'active',\n lastSeen: '2022-04-05T05:16:37Z',\n addresses: ['sip:pbs9p4cbr9_G6JJNI5DD5NP@64941297.int10.bcld.webex.com'],\n clientDeviceUri: CLIENT_DEVICE_URL,\n },\n};\n"],"mappings":";;;;;;;AAAO,IAAMA,SAAS,GAAG,sCAAsC;AAACC,OAAA,CAAAD,SAAA,GAAAA,SAAA;AACzD,IAAME,iBAAiB,GAAG,yBAAyB;AAACD,OAAA,CAAAC,iBAAA,GAAAA,iBAAA;AAEpD,IAAMC,GAAG,GAAG,6CAA6C;AAACF,OAAA,CAAAE,GAAA,GAAAA,GAAA;AAC1D,IAAMC,gBAAgB,GAAG;EAC9BC,MAAM,EAAE,sCAAsC;EAC9CC,MAAM,EAAE;IACNC,QAAQ,EAAE,sCAAsC;IAChDC,GAAG,EAAE,qGAAqG;IAC1GC,MAAM,EAAE,QAAQ;IAChBC,QAAQ,EAAE,sBAAsB;IAChCC,SAAS,EAAE,CAAC,2DAA2D,CAAC;IACxEC,eAAe,EAAEV;EACnB,CAAC;EACDW,iBAAiB,EAAE,EAAE;EACrBC,mBAAmB,EAAE,EAAE;EACvBC,mBAAmB,EAAE;AACvB,CAAC;AAACd,OAAA,CAAAG,gBAAA,GAAAA,gBAAA;AAEK,IAAMY,kBAAkB,GAAG;EAChCX,MAAM,EAAE,sCAAsC;EAC9CC,MAAM,EAAE;IACNC,QAAQ,EAAEP,SAAS;IACnBQ,GAAG,EAAE,qGAAqG;IAC1GC,MAAM,EAAE,QAAQ;IAChBC,QAAQ,EAAE,sBAAsB;IAChCC,SAAS,EAAE,CAAC,2DAA2D,CAAC;IACxEC,eAAe,EAAEV;EACnB;AACF,CAAC;AAACD,OAAA,CAAAe,kBAAA,GAAAA,kBAAA"}
1
+ {"version":3,"names":["DEVICE_ID","exports","CLIENT_DEVICE_URL","URL","mockPostResponse","userId","device","deviceId","uri","status","lastSeen","addresses","clientDeviceUri","keepaliveInterval","rehomingIntervalMin","rehomingIntervalMax","mockDeleteResponse"],"sources":["registerFixtures.ts"],"sourcesContent":["export const DEVICE_ID = '9381a370-b26b-3c5b-8901-4e8dab405dcc';\nexport const CLIENT_DEVICE_URL = 'https://clientDeviceUrl';\n\nexport const URL = 'https://wdm-intb.ciscospark.com/wdm/api/v1/';\nexport const mockPostResponse = {\n userId: '8a67806f-fc4d-446b-a131-31e71ea5b0e9',\n device: {\n deviceId: 'beb3c025-8c6a-3c44-8f3d-9b7d65363ac1',\n uri: 'https://wdm-intb.ciscospark.com/wdm/api/v1/calling/web/devices/beb3c025-8c6a-3c44-8f3d-9b7d65363ac1',\n status: 'active',\n lastSeen: '2022-04-05T05:08:46Z',\n addresses: ['sip:pbs9p4cbr9_G6JJNI5DD5NP@64941297.int10.bcld.webex.com'],\n clientDeviceUri: CLIENT_DEVICE_URL,\n },\n keepaliveInterval: 30,\n rehomingIntervalMin: 90,\n rehomingIntervalMax: 180,\n};\n\nexport const mockDeleteResponse = {\n userId: '8a67806f-fc4d-446b-a131-31e71ea5b0e9',\n device: {\n deviceId: DEVICE_ID,\n uri: 'https://wdm-intb.ciscospark.com/wdm/api/v1/calling/web/devices/9381a370-b26b-3c5b-8901-4e8dab405dcc',\n status: 'active',\n lastSeen: '2022-04-05T05:16:37Z',\n addresses: ['sip:pbs9p4cbr9_G6JJNI5DD5NP@64941297.int10.bcld.webex.com'],\n clientDeviceUri: CLIENT_DEVICE_URL,\n },\n};\n"],"mappings":";;;;;;;AAAO,IAAMA,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG,sCAAsC;AACxD,IAAME,iBAAiB,GAAAD,OAAA,CAAAC,iBAAA,GAAG,yBAAyB;AAEnD,IAAMC,GAAG,GAAAF,OAAA,CAAAE,GAAA,GAAG,6CAA6C;AACzD,IAAMC,gBAAgB,GAAAH,OAAA,CAAAG,gBAAA,GAAG;EAC9BC,MAAM,EAAE,sCAAsC;EAC9CC,MAAM,EAAE;IACNC,QAAQ,EAAE,sCAAsC;IAChDC,GAAG,EAAE,qGAAqG;IAC1GC,MAAM,EAAE,QAAQ;IAChBC,QAAQ,EAAE,sBAAsB;IAChCC,SAAS,EAAE,CAAC,2DAA2D,CAAC;IACxEC,eAAe,EAAEV;EACnB,CAAC;EACDW,iBAAiB,EAAE,EAAE;EACrBC,mBAAmB,EAAE,EAAE;EACvBC,mBAAmB,EAAE;AACvB,CAAC;AAEM,IAAMC,kBAAkB,GAAAf,OAAA,CAAAe,kBAAA,GAAG;EAChCX,MAAM,EAAE,sCAAsC;EAC9CC,MAAM,EAAE;IACNC,QAAQ,EAAEP,SAAS;IACnBQ,GAAG,EAAE,qGAAqG;IAC1GC,MAAM,EAAE,QAAQ;IAChBC,QAAQ,EAAE,sBAAsB;IAChCC,SAAS,EAAE,CAAC,2DAA2D,CAAC;IACxEC,eAAe,EAAEV;EACnB;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {IDeviceInfo, MobiusStatus} from '../../common/types';\n\nexport type Header = {\n [key: string]: string;\n};\n\nexport type restoreRegistrationCallBack = (\n restoreData: IDeviceInfo,\n caller: string\n) => Promise<boolean>;\n\nexport interface IRegistration {\n setMobiusServers: (primaryMobiusUris: string[], backupMobiusUris: string[]) => void;\n triggerRegistration: () => Promise<void>;\n isDeviceRegistered: () => boolean;\n setStatus: (value: MobiusStatus) => void;\n getStatus: () => MobiusStatus;\n getDeviceInfo: () => IDeviceInfo;\n clearKeepaliveTimer: () => void;\n deregister: () => void;\n setActiveMobiusUrl: (url: string) => void;\n getActiveMobiusUrl: () => string;\n reconnectOnFailure: (caller: string) => Promise<void>;\n isReconnectPending: () => boolean;\n handleConnectionRestoration: (retry: boolean) => Promise<boolean>;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {IDeviceInfo, RegistrationStatus} from '../../common/types';\n\nexport type Header = {\n [key: string]: string;\n};\n\nexport type restoreRegistrationCallBack = (\n restoreData: IDeviceInfo,\n caller: string\n) => Promise<boolean>;\n\n/**\n * Represents an interface for managing registration-related operations.\n */\nexport interface IRegistration {\n /**\n * Sets the primary and backup Mobius server URLs.\n *\n * @param primaryMobiusUris - An array of primary Mobius server URLs.\n * @param backupMobiusUris - An array of backup Mobius server URLs.\n */\n setMobiusServers(primaryMobiusUris: string[], backupMobiusUris: string[]): void;\n\n /**\n * Triggers the registration process with the given list of servers\n * Registration is attempted with primary and backup until it succeeds or the list is exhausted\n */\n triggerRegistration(): Promise<void>;\n\n /**\n * Checks if the device is currently registered.\n *\n */\n isDeviceRegistered(): boolean;\n\n /**\n * Sets the status of the registration.\n *\n * @param value - The registration status to set.\n */\n setStatus(value: RegistrationStatus): void;\n\n /**\n * Retrieves the current registration status.\n *\n */\n getStatus(): RegistrationStatus;\n\n /**\n * Retrieves information about the device as {@link IDeviceInfo}.\n *\n */\n getDeviceInfo(): IDeviceInfo;\n\n /**\n * Clears the keep-alive timer used for registration.\n */\n clearKeepaliveTimer(): void;\n\n /**\n * Deregisters the device.\n */\n deregister(): void;\n\n /**\n * Sets the active Mobius server URL to use for registration.\n *\n * @param url - The Mobius server URL to set as active.\n */\n setActiveMobiusUrl(url: string): void;\n\n /**\n * Retrieves the active Mobius server URL.\n *\n */\n getActiveMobiusUrl(): string;\n\n /**\n * Attempts to reconnect after a connection failure.\n *\n * @param caller - The caller's identifier for reconnection.\n */\n reconnectOnFailure(caller: string): Promise<void>;\n\n /**\n * Checks if a reconnection attempt is pending.\n *\n */\n isReconnectPending(): boolean;\n\n /**\n * Restores the connection and attempts refreshing existing registration with server.\n * Allows retry if not restored in the first attempt.\n *\n * @param retry - Set to `true` to trigger a retry after restoration.\n */\n handleConnectionRestoration(retry: boolean): Promise<boolean>;\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import * as Media from '@webex/internal-media-core';\nimport {LOGGER} from '../Logger/types';\nimport {ISDKConnector} from '../SDKConnector/types';\nimport {Eventing} from '../Events/impl';\nimport {CallingClientEventTypes} from '../Events/types';\nimport {ServiceData} from '../common/types';\nimport {ICall} from './calling/types';\nimport {CallingClientError} from '../Errors';\n\nexport interface LoggerConfig {\n level: LOGGER;\n}\n\ninterface DiscoveryConfig {\n country: string;\n region: string;\n}\n\nexport interface CallingClientConfig {\n logger?: LoggerConfig;\n discovery?: DiscoveryConfig;\n serviceData?: ServiceData;\n}\n\nexport type CallingClientErrorEmitterCallback = (\n err: CallingClientError,\n finalError?: boolean\n) => void;\n\nexport interface ICallingClient extends Eventing<CallingClientEventTypes> {\n mediaEngine: typeof Media;\n getSDKConnector: () => ISDKConnector;\n getLoggingLevel: () => LOGGER;\n getActiveCalls: () => Record<string, ICall[]>;\n getConnectedCall: () => ICall | undefined;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import * as Media from '@webex/internal-media-core';\nimport {LOGGER} from '../Logger/types';\nimport {ISDKConnector} from '../SDKConnector/types';\nimport {Eventing} from '../Events/impl';\nimport {CallingClientEventTypes} from '../Events/types';\nimport {ServiceData} from '../common/types';\nimport {ICall} from './calling/types';\nimport {CallingClientError} from '../Errors';\nimport {ILine} from './line/types';\n\nexport interface LoggerConfig {\n level: LOGGER;\n}\n\ninterface DiscoveryConfig {\n country: string;\n region: string;\n}\n\nexport interface CallingClientConfig {\n logger?: LoggerConfig;\n discovery?: DiscoveryConfig;\n serviceData?: ServiceData;\n}\n\nexport type CallingClientErrorEmitterCallback = (\n err: CallingClientError,\n finalError?: boolean\n) => void;\n\n/**\n * An interface for the `CallingClient` module.\n * The `CallingClient` module is designed to provide a set of APIs related to line registration and calling functionalities within the SDK.\n *\n * @example\n * ```javascript\n * const callingClient = createClient(webex, callingConfig);\n * ```\n */\nexport interface ICallingClient extends Eventing<CallingClientEventTypes> {\n /**\n * Represents the `mediaEngine for managing media-related operations within the CallingClient.\n * The media engine provides access to audio and video devices such as cameras, microphones, and speakers within the media layer.\n *\n * @public\n * @example\n * ```\n * const microphones = await callingClient.mediaEngine.Media.getMicrophones();\n * const speakers = await callingClient.mediaEngine.Media.getSpeakers();\n * const cameras = await callingClient.mediaEngine.Media.getCameras();\n * ```\n */\n mediaEngine: typeof Media;\n\n /**\n * @ignore\n */\n getSDKConnector(): ISDKConnector;\n\n /**\n * @ignore\n */\n getLoggingLevel(): LOGGER;\n\n /**\n * Retrieves details of the line object(s) belonging to a user.\n *\n * This method gathers all the {@link ILine} objects and organizes them into a dictionary\n * where keys represent `lineId`s and values are arrays of {@link ILine} objects registered with\n * the `callingClient`\n *\n * @example\n * ```typescript\n * const lines = callingClient.getLines();\n * ```\n * The `lines` response object will have `lineId` as its key and\n * a list {@link ILine} objects as it's value.\n * ```\n * {\n * 'lineId1': lineObj1,\n * 'lineId2': lineObj2,\n * }\n * ```\n */\n getLines(): Record<string, ILine>;\n\n /**\n * Retrieves a dictionary of active calls grouped by `lineId`.\n *\n * This method gathers active {@link ICall} objects and organizes them into a dictionary\n * where keys represent `lineId`s and values are arrays of {@link ICall} objects of active calls associated\n * with each line.\n *\n * @example\n * ```typescript\n * const activeCalls = callingClient.getActiveCalls();\n * ```\n * The `activeCalls` response object will have `lineId` as its key and\n * a list {@link ICall} objects as it's value.\n *\n * ```\n * {\n * 'line1': [call1, call2],\n * 'line2': [call3],\n * }\n * ```\n */\n getActiveCalls(): Record<string, ICall[]>;\n\n /**\n * Retrieves the {@link ICall} object for the currently connected call in the client.\n *\n * This method iterates through active call objects and returns the call\n * that is currently connected (not on hold).\n *\n * @example\n * ```typescript\n * const connectedCall : ICall = callingClient.getConnectedCall();\n * ```\n * The `connectedCall` object will be the Call object of the connected call with the client\n */\n getConnectedCall(): ICall | undefined;\n}\n"],"mappings":""}
@@ -29,8 +29,8 @@ var _Logger = _interopRequireDefault(require("../Logger"));
29
29
  var _constants2 = require("./constants");
30
30
  var _types2 = require("./types");
31
31
  var _Utils = require("../common/Utils");
32
- 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; }
33
- 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; }
32
+ function ownKeys(e, r) { var t = _Object$keys2(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
33
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; } /* eslint-disable no-await-in-loop */
34
34
  /**
35
35
  * `ContactsClient` module is designed to offer a set of APIs for retrieving and updating contacts and groups from the contacts-service.
36
36
  *
@@ -41,7 +41,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
41
41
  * const contactClient = createContactsClient(webex, logger);
42
42
  * ```
43
43
  */
44
- var ContactsClient = /*#__PURE__*/function () {
44
+ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
45
45
  /**
46
46
  * @ignore
47
47
  */
@@ -70,7 +70,7 @@ var ContactsClient = /*#__PURE__*/function () {
70
70
  */
71
71
  (0, _createClass2.default)(ContactsClient, [{
72
72
  key: "decryptContactDetail",
73
- value: function () {
73
+ value: (function () {
74
74
  var _decryptContactDetail = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(encryptionKeyUrl, contactDetails) {
75
75
  var _this = this;
76
76
  var decryptedContactDetail, decryptedValues;
@@ -103,9 +103,10 @@ var ContactsClient = /*#__PURE__*/function () {
103
103
  * Encrypt emails, phoneNumbers, sipAddresses.
104
104
  *
105
105
  */
106
+ )
106
107
  }, {
107
108
  key: "encryptContactDetail",
108
- value: function () {
109
+ value: (function () {
109
110
  var _encryptContactDetail = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(encryptionKeyUrl, contactDetails) {
110
111
  var _this2 = this;
111
112
  var encryptedContactDetail, encryptedValues;
@@ -137,9 +138,10 @@ var ContactsClient = /*#__PURE__*/function () {
137
138
  /**
138
139
  * Encrypts a given contact.
139
140
  */
141
+ )
140
142
  }, {
141
143
  key: "encryptContact",
142
- value: function () {
144
+ value: (function () {
143
145
  var _encryptContact = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(contact) {
144
146
  var _this3 = this;
145
147
  var encryptionKeyUrl, encryptedContact, encryptionPromises, encryptedFieldsList;
@@ -254,9 +256,10 @@ var ContactsClient = /*#__PURE__*/function () {
254
256
  /**
255
257
  * Decrypts a given contact.
256
258
  */
259
+ )
257
260
  }, {
258
261
  key: "decryptContact",
259
- value: function () {
262
+ value: (function () {
260
263
  var _decryptContact = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(contact) {
261
264
  var _this4 = this;
262
265
  var encryptionKeyUrl, decryptedContact, decryptionPromises, decryptedFieldsList;
@@ -371,9 +374,10 @@ var ContactsClient = /*#__PURE__*/function () {
371
374
  /**
372
375
  * Fetches contacts from DSS.
373
376
  */
377
+ )
374
378
  }, {
375
379
  key: "fetchContactFromDSS",
376
- value: function () {
380
+ value: (function () {
377
381
  var _fetchContactFromDSS = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(contactsDataMap) {
378
382
  var _this5 = this;
379
383
  var contactList, dssResult, _loop, i;
@@ -480,9 +484,10 @@ var ContactsClient = /*#__PURE__*/function () {
480
484
  /**
481
485
  * Returns list of contacts.
482
486
  */
487
+ )
483
488
  }, {
484
489
  key: "getContacts",
485
- value: function () {
490
+ value: (function () {
486
491
  var _getContacts = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11() {
487
492
  var _this6 = this;
488
493
  var loggerContext, contactList, contactsDataMap, response, responseBody, contacts, groups, i, contact, decryptedContact, cloudContacts, contactResponse, errorInfo, errorStatus;
@@ -603,9 +608,10 @@ var ContactsClient = /*#__PURE__*/function () {
603
608
  *
604
609
  * @returns EncryptionKeyUrl as a Promise.
605
610
  */
611
+ )
606
612
  }, {
607
613
  key: "createNewEncryptionKeyUrl",
608
- value: function () {
614
+ value: (function () {
609
615
  var _createNewEncryptionKeyUrl = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() {
610
616
  var loggerContext, unboundedKeyUri, unboundedKeys;
611
617
  return _regenerator.default.wrap(function _callee12$(_context13) {
@@ -644,9 +650,10 @@ var ContactsClient = /*#__PURE__*/function () {
644
650
  *
645
651
  * @returns EncryptionKeyUrl as a Promise.
646
652
  */
653
+ )
647
654
  }, {
648
655
  key: "fetchEncryptionKeyUrl",
649
- value: function () {
656
+ value: (function () {
650
657
  var _fetchEncryptionKeyUrl = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13() {
651
658
  var _response$data$group;
652
659
  var response, _response$data$group2;
@@ -702,9 +709,10 @@ var ContactsClient = /*#__PURE__*/function () {
702
709
  *
703
710
  * @returns GroupId of default group.
704
711
  */
712
+ )
705
713
  }, {
706
714
  key: "fetchDefaultGroup",
707
- value: function () {
715
+ value: (function () {
708
716
  var _fetchDefaultGroup = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14() {
709
717
  var i, response, group;
710
718
  return _regenerator.default.wrap(function _callee14$(_context15) {
@@ -771,9 +779,10 @@ var ContactsClient = /*#__PURE__*/function () {
771
779
  * @param encryptionKeyUrl - EncryptionKeyUrl to encrypt the displayName.
772
780
  * @param groupType - Type of the group to create.
773
781
  */
782
+ )
774
783
  }, {
775
784
  key: "createContactGroup",
776
- value: function () {
785
+ value: (function () {
777
786
  var _createContactGroup = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15(displayName, encryptionKeyUrl, groupType) {
778
787
  var loggerContext, encryptionKeyUrlFinal, isExistingGroup, encryptedDisplayName, groupInfo, _this$groups, response, group, contactResponse, errorInfo, errorStatus;
779
788
  return _regenerator.default.wrap(function _callee15$(_context16) {
@@ -875,9 +884,10 @@ var ContactsClient = /*#__PURE__*/function () {
875
884
  * Deletes a contact group.
876
885
  * @param groupId - GroupId of the group to delete.
877
886
  */
887
+ )
878
888
  }, {
879
889
  key: "deleteContactGroup",
880
- value: function () {
890
+ value: (function () {
881
891
  var _deleteContactGroup = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16(groupId) {
882
892
  var loggerContext, _this$groups2, _this$groups4, response, contactResponse, groupToDelete, _this$groups3, errorInfo, errorStatus;
883
893
  return _regenerator.default.wrap(function _callee16$(_context17) {
@@ -934,9 +944,10 @@ var ContactsClient = /*#__PURE__*/function () {
934
944
  * Creates a custom contact.
935
945
  * @param contactInfo - Contact object to create.
936
946
  */
947
+ )
937
948
  }, {
938
949
  key: "createContact",
939
- value: function () {
950
+ value: (function () {
940
951
  var _createContact = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17(contactInfo) {
941
952
  var loggerContext, contact, defaultGroupId, requestBody, encryptedContact, _encryptedContact, response, newContact, contactResponse, decryptedContacts, _this$contacts, _this$contacts2, errorInfo, errorStatus;
942
953
  return _regenerator.default.wrap(function _callee17$(_context18) {
@@ -1068,9 +1079,10 @@ var ContactsClient = /*#__PURE__*/function () {
1068
1079
  * Delete a contact.
1069
1080
  * @param contactId - ContactId of the contact to delete.
1070
1081
  */
1082
+ )
1071
1083
  }, {
1072
1084
  key: "deleteContact",
1073
- value: function () {
1085
+ value: (function () {
1074
1086
  var _deleteContact = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18(contactId) {
1075
1087
  var loggerContext, _this$contacts3, response, contactResponse, contactToDelete, _this$contacts4, errorInfo, errorStatus;
1076
1088
  return _regenerator.default.wrap(function _callee18$(_context19) {
@@ -1123,6 +1135,7 @@ var ContactsClient = /*#__PURE__*/function () {
1123
1135
  /**
1124
1136
  * @ignore
1125
1137
  */
1138
+ )
1126
1139
  }, {
1127
1140
  key: "getSDKConnector",
1128
1141
  value: function getSDKConnector() {
@@ -1137,9 +1150,7 @@ var ContactsClient = /*#__PURE__*/function () {
1137
1150
  * @param {WebexSDK} webex - `Webex SDK`instance.
1138
1151
  * @param {LoggerInterface} logger - An instance implementing LoggerInterface used to set the log level for the module.
1139
1152
  */
1140
- exports.ContactsClient = ContactsClient;
1141
- var createContactsClient = function createContactsClient(webex, logger) {
1153
+ var createContactsClient = exports.createContactsClient = function createContactsClient(webex, logger) {
1142
1154
  return new ContactsClient(webex, logger);
1143
1155
  };
1144
- exports.createContactsClient = createContactsClient;
1145
1156
  //# sourceMappingURL=ContactsClient.js.map