@webex/calling 3.10.0 → 3.11.0

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 (221) hide show
  1. package/dist/module/CallHistory/CallHistory.js +20 -11
  2. package/dist/module/CallSettings/UcmBackendConnector.js +21 -8
  3. package/dist/module/CallSettings/WxCallBackendConnector.js +10 -15
  4. package/dist/module/CallingClient/CallingClient.js +83 -123
  5. package/dist/module/CallingClient/calling/call.js +73 -58
  6. package/dist/module/CallingClient/calling/callManager.js +7 -0
  7. package/dist/module/CallingClient/constants.js +3 -0
  8. package/dist/module/CallingClient/registration/register.js +85 -5
  9. package/dist/module/CallingClient/registration/webWorker.js +2 -2
  10. package/dist/module/CallingClient/registration/webWorkerStr.js +2 -2
  11. package/dist/module/Contacts/ContactsClient.js +19 -25
  12. package/dist/module/Events/impl/index.js +1 -1
  13. package/dist/module/Logger/index.js +2 -2
  14. package/dist/module/Voicemail/BroadworksBackendConnector.js +10 -18
  15. package/dist/module/Voicemail/UcmBackendConnector.js +7 -11
  16. package/dist/module/Voicemail/Voicemail.js +42 -68
  17. package/dist/module/Voicemail/WxCallBackendConnector.js +14 -28
  18. package/dist/module/common/Utils.js +31 -5
  19. package/dist/module/common/constants.js +2 -0
  20. package/dist/module/common/testUtil.js +1 -0
  21. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  22. package/dist/types/CallSettings/UcmBackendConnector.d.ts +1 -0
  23. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  24. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  25. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  26. package/dist/types/CallingClient/calling/call.d.ts +4 -0
  27. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  28. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  29. package/dist/types/CallingClient/constants.d.ts +3 -0
  30. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  31. package/dist/types/CallingClient/registration/register.d.ts +4 -0
  32. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  33. package/dist/types/CallingClient/registration/types.d.ts +6 -0
  34. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  35. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
  36. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
  37. package/dist/types/Contacts/ContactsClient.d.ts +1 -0
  38. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  39. package/dist/types/Logger/index.d.ts +1 -2
  40. package/dist/types/Logger/index.d.ts.map +1 -1
  41. package/dist/types/SDKConnector/types.d.ts +16 -0
  42. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  43. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  44. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  45. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
  46. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  47. package/dist/types/common/Utils.d.ts +1 -1
  48. package/dist/types/common/Utils.d.ts.map +1 -1
  49. package/dist/types/common/constants.d.ts +2 -0
  50. package/dist/types/common/constants.d.ts.map +1 -1
  51. package/dist/types/common/testUtil.d.ts +1 -0
  52. package/dist/types/common/testUtil.d.ts.map +1 -1
  53. package/package.json +4 -4
  54. package/dist/CallHistory/CallHistory.js +0 -584
  55. package/dist/CallHistory/CallHistory.js.map +0 -1
  56. package/dist/CallHistory/CallHistory.test.js +0 -813
  57. package/dist/CallHistory/CallHistory.test.js.map +0 -1
  58. package/dist/CallHistory/callHistoryFixtures.js +0 -650
  59. package/dist/CallHistory/callHistoryFixtures.js.map +0 -1
  60. package/dist/CallHistory/constants.js +0 -38
  61. package/dist/CallHistory/constants.js.map +0 -1
  62. package/dist/CallHistory/types.js +0 -7
  63. package/dist/CallHistory/types.js.map +0 -1
  64. package/dist/CallSettings/CallSettings.js +0 -312
  65. package/dist/CallSettings/CallSettings.js.map +0 -1
  66. package/dist/CallSettings/CallSettings.test.js +0 -122
  67. package/dist/CallSettings/CallSettings.test.js.map +0 -1
  68. package/dist/CallSettings/UcmBackendConnector.js +0 -261
  69. package/dist/CallSettings/UcmBackendConnector.js.map +0 -1
  70. package/dist/CallSettings/UcmBackendConnector.test.js +0 -321
  71. package/dist/CallSettings/UcmBackendConnector.test.js.map +0 -1
  72. package/dist/CallSettings/WxCallBackendConnector.js +0 -604
  73. package/dist/CallSettings/WxCallBackendConnector.js.map +0 -1
  74. package/dist/CallSettings/WxCallBackendConnector.test.js +0 -905
  75. package/dist/CallSettings/WxCallBackendConnector.test.js.map +0 -1
  76. package/dist/CallSettings/constants.js +0 -31
  77. package/dist/CallSettings/constants.js.map +0 -1
  78. package/dist/CallSettings/testFixtures.js +0 -68
  79. package/dist/CallSettings/testFixtures.js.map +0 -1
  80. package/dist/CallSettings/types.js +0 -7
  81. package/dist/CallSettings/types.js.map +0 -1
  82. package/dist/CallingClient/CallingClient.js +0 -1071
  83. package/dist/CallingClient/CallingClient.js.map +0 -1
  84. package/dist/CallingClient/CallingClient.test.js +0 -1289
  85. package/dist/CallingClient/CallingClient.test.js.map +0 -1
  86. package/dist/CallingClient/callRecordFixtures.js +0 -101
  87. package/dist/CallingClient/callRecordFixtures.js.map +0 -1
  88. package/dist/CallingClient/calling/CallerId/index.js +0 -276
  89. package/dist/CallingClient/calling/CallerId/index.js.map +0 -1
  90. package/dist/CallingClient/calling/CallerId/index.test.js +0 -275
  91. package/dist/CallingClient/calling/CallerId/index.test.js.map +0 -1
  92. package/dist/CallingClient/calling/CallerId/types.js +0 -7
  93. package/dist/CallingClient/calling/CallerId/types.js.map +0 -1
  94. package/dist/CallingClient/calling/call.js +0 -3444
  95. package/dist/CallingClient/calling/call.js.map +0 -1
  96. package/dist/CallingClient/calling/call.test.js +0 -3260
  97. package/dist/CallingClient/calling/call.test.js.map +0 -1
  98. package/dist/CallingClient/calling/callManager.js +0 -456
  99. package/dist/CallingClient/calling/callManager.js.map +0 -1
  100. package/dist/CallingClient/calling/callManager.test.js +0 -741
  101. package/dist/CallingClient/calling/callManager.test.js.map +0 -1
  102. package/dist/CallingClient/calling/index.js +0 -30
  103. package/dist/CallingClient/calling/index.js.map +0 -1
  104. package/dist/CallingClient/calling/types.js +0 -74
  105. package/dist/CallingClient/calling/types.js.map +0 -1
  106. package/dist/CallingClient/callingClientFixtures.js +0 -143
  107. package/dist/CallingClient/callingClientFixtures.js.map +0 -1
  108. package/dist/CallingClient/constants.js +0 -237
  109. package/dist/CallingClient/constants.js.map +0 -1
  110. package/dist/CallingClient/line/index.js +0 -349
  111. package/dist/CallingClient/line/index.js.map +0 -1
  112. package/dist/CallingClient/line/line.test.js +0 -327
  113. package/dist/CallingClient/line/line.test.js.map +0 -1
  114. package/dist/CallingClient/line/types.js +0 -21
  115. package/dist/CallingClient/line/types.js.map +0 -1
  116. package/dist/CallingClient/registration/index.js +0 -19
  117. package/dist/CallingClient/registration/index.js.map +0 -1
  118. package/dist/CallingClient/registration/register.js +0 -1538
  119. package/dist/CallingClient/registration/register.js.map +0 -1
  120. package/dist/CallingClient/registration/register.test.js +0 -1537
  121. package/dist/CallingClient/registration/register.test.js.map +0 -1
  122. package/dist/CallingClient/registration/registerFixtures.js +0 -36
  123. package/dist/CallingClient/registration/registerFixtures.js.map +0 -1
  124. package/dist/CallingClient/registration/types.js +0 -7
  125. package/dist/CallingClient/registration/types.js.map +0 -1
  126. package/dist/CallingClient/registration/webWorker.js +0 -130
  127. package/dist/CallingClient/registration/webWorker.js.map +0 -1
  128. package/dist/CallingClient/registration/webWorker.test.js +0 -303
  129. package/dist/CallingClient/registration/webWorker.test.js.map +0 -1
  130. package/dist/CallingClient/registration/webWorkerStr.js +0 -15
  131. package/dist/CallingClient/registration/webWorkerStr.js.map +0 -1
  132. package/dist/CallingClient/types.js +0 -7
  133. package/dist/CallingClient/types.js.map +0 -1
  134. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +0 -142
  135. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +0 -1
  136. package/dist/Contacts/ContactsClient.js +0 -1215
  137. package/dist/Contacts/ContactsClient.js.map +0 -1
  138. package/dist/Contacts/ContactsClient.test.js +0 -1003
  139. package/dist/Contacts/ContactsClient.test.js.map +0 -1
  140. package/dist/Contacts/constants.js +0 -40
  141. package/dist/Contacts/constants.js.map +0 -1
  142. package/dist/Contacts/contactFixtures.js +0 -430
  143. package/dist/Contacts/contactFixtures.js.map +0 -1
  144. package/dist/Contacts/types.js +0 -43
  145. package/dist/Contacts/types.js.map +0 -1
  146. package/dist/Errors/catalog/CallError.js +0 -92
  147. package/dist/Errors/catalog/CallError.js.map +0 -1
  148. package/dist/Errors/catalog/CallingDeviceError.js +0 -86
  149. package/dist/Errors/catalog/CallingDeviceError.js.map +0 -1
  150. package/dist/Errors/catalog/ExtendedError.js +0 -44
  151. package/dist/Errors/catalog/ExtendedError.js.map +0 -1
  152. package/dist/Errors/catalog/LineError.js +0 -88
  153. package/dist/Errors/catalog/LineError.js.map +0 -1
  154. package/dist/Errors/index.js +0 -28
  155. package/dist/Errors/index.js.map +0 -1
  156. package/dist/Errors/types.js +0 -59
  157. package/dist/Errors/types.js.map +0 -1
  158. package/dist/Events/impl/index.js +0 -81
  159. package/dist/Events/impl/index.js.map +0 -1
  160. package/dist/Events/types.js +0 -107
  161. package/dist/Events/types.js.map +0 -1
  162. package/dist/Logger/index.js +0 -228
  163. package/dist/Logger/index.js.map +0 -1
  164. package/dist/Logger/index.test.js +0 -87
  165. package/dist/Logger/index.test.js.map +0 -1
  166. package/dist/Logger/types.js +0 -34
  167. package/dist/Logger/types.js.map +0 -1
  168. package/dist/Metrics/index.js +0 -535
  169. package/dist/Metrics/index.js.map +0 -1
  170. package/dist/Metrics/index.test.js +0 -463
  171. package/dist/Metrics/index.test.js.map +0 -1
  172. package/dist/Metrics/types.js +0 -64
  173. package/dist/Metrics/types.js.map +0 -1
  174. package/dist/SDKConnector/index.js +0 -103
  175. package/dist/SDKConnector/index.js.map +0 -1
  176. package/dist/SDKConnector/index.test.js +0 -9
  177. package/dist/SDKConnector/index.test.js.map +0 -1
  178. package/dist/SDKConnector/types.js +0 -7
  179. package/dist/SDKConnector/types.js.map +0 -1
  180. package/dist/SDKConnector/utils.js +0 -39
  181. package/dist/SDKConnector/utils.js.map +0 -1
  182. package/dist/SDKConnector/utils.test.js +0 -9
  183. package/dist/SDKConnector/utils.test.js.map +0 -1
  184. package/dist/Voicemail/BroadworksBackendConnector.js +0 -707
  185. package/dist/Voicemail/BroadworksBackendConnector.js.map +0 -1
  186. package/dist/Voicemail/BroadworksBackendConnector.test.js +0 -812
  187. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +0 -1
  188. package/dist/Voicemail/UcmBackendConnector.js +0 -632
  189. package/dist/Voicemail/UcmBackendConnector.js.map +0 -1
  190. package/dist/Voicemail/UcmBackendConnector.test.js +0 -738
  191. package/dist/Voicemail/UcmBackendConnector.test.js.map +0 -1
  192. package/dist/Voicemail/Voicemail.js +0 -500
  193. package/dist/Voicemail/Voicemail.js.map +0 -1
  194. package/dist/Voicemail/Voicemail.test.js +0 -391
  195. package/dist/Voicemail/Voicemail.test.js.map +0 -1
  196. package/dist/Voicemail/WxCallBackendConnector.js +0 -671
  197. package/dist/Voicemail/WxCallBackendConnector.js.map +0 -1
  198. package/dist/Voicemail/WxCallBackendConnector.test.js +0 -1199
  199. package/dist/Voicemail/WxCallBackendConnector.test.js.map +0 -1
  200. package/dist/Voicemail/constants.js +0 -61
  201. package/dist/Voicemail/constants.js.map +0 -1
  202. package/dist/Voicemail/types.js +0 -7
  203. package/dist/Voicemail/types.js.map +0 -1
  204. package/dist/Voicemail/voicemailFixture.js +0 -524
  205. package/dist/Voicemail/voicemailFixture.js.map +0 -1
  206. package/dist/api.js +0 -157
  207. package/dist/api.js.map +0 -1
  208. package/dist/common/Utils.js +0 -1451
  209. package/dist/common/Utils.js.map +0 -1
  210. package/dist/common/Utils.test.js +0 -1744
  211. package/dist/common/Utils.test.js.map +0 -1
  212. package/dist/common/constants.js +0 -60
  213. package/dist/common/constants.js.map +0 -1
  214. package/dist/common/index.js +0 -19
  215. package/dist/common/index.js.map +0 -1
  216. package/dist/common/testUtil.js +0 -982
  217. package/dist/common/testUtil.js.map +0 -1
  218. package/dist/common/types.js +0 -75
  219. package/dist/common/types.js.map +0 -1
  220. package/dist/index.js +0 -321
  221. package/dist/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"names":["_constants","require","_SDKConnector","_interopRequireDefault","_types","_Logger","_Utils","_WxCallBackendConnector","_BroadworksBackendConnector","_impl","_UcmBackendConnector","_types2","_Metrics","_constants2","_createSuper","t","r","_isNativeReflectConstruct","e","o","_getPrototypeOf2","default","s","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Boolean","prototype","valueOf","call","Voicemail","exports","_Eventing","_inherits2","_super","webex","logger","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","sdkConnector","SDKConnector","getWebex","setWebex","metricManager","getMetricManager","undefined","callingBackend","getCallingBackEnd","initializeBackendConnector","log","setLogger","level","VOICEMAIL_FILE","_createClass2","key","value","_init","_asyncToGenerator2","_regenerator","mark","_callee","response","extendedError","wrap","_callee$","_context","prev","next","info","METHOD_START_MESSAGE","file","method","METHODS","INIT","backendConnector","init","abrupt","t0","Error","concat","error","uploadLogs","stop","INITIALIZE_BACKEND_CONNECTOR","CALLING_BACKEND","WXC","WxCallBackendConnector","BWRKS","BroadworksBackendConnector","UCM","UcmBackendConnector","submitMetric","metricAction","messageId","statusCode","errorMessage","data","submitVoicemailMetric","METRIC_EVENT","VOICEMAIL","METRIC_TYPE","BEHAVIORAL","VOICEMAIL_ERROR","_getVoicemailList","_callee2","offset","offsetLimit","sort","refresh","_callee2$","_context2","GET_VOICEMAIL_LIST","getVoicemailList","sent","VOICEMAIL_ACTION","GET_VOICEMAILS","_x","_x2","_x3","_x4","_getVoicemailContent","_callee3","_callee3$","_context3","GET_VOICEMAIL_CONTENT","getVoicemailContent","_x5","_getVoicemailSummary","_callee4","_callee4$","_context4","GET_VOICEMAIL_SUMMARY","getVoicemailSummary","_voicemailMarkAsRead","_callee5","_callee5$","_context5","VOICEMAIL_MARK_AS_READ","voicemailMarkAsRead","MARK_READ","_x6","_voicemailMarkAsUnread","_callee6","_callee6$","_context6","VOICEMAIL_MARK_AS_UNREAD","voicemailMarkAsUnread","MARK_UNREAD","_x7","_deleteVoicemail","_callee7","_callee7$","_context7","DELETE_VOICEMAIL","deleteVoicemail","DELETE","_x8","_getVMTranscript","_callee8","_callee8$","_context8","GET_VM_TRANSCRIPT","getVMTranscript","TRANSCRIPT","_x9","resolveContact","callingPartyInfo","RESOLVE_CONTACT","getSDKConnector","Eventing","createVoicemailClient"],"sources":["Voicemail.ts"],"sourcesContent":["/* eslint-disable dot-notation */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\nimport ExtendedError from 'Errors/catalog/ExtendedError';\nimport {METHOD_START_MESSAGE} from '../common/constants';\nimport SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {IVoicemail, VoicemailResponseEvent, LoggerInterface, CallingPartyInfo} from './types';\nimport {CALLING_BACKEND, DisplayInformation, SORT} from '../common/types';\nimport log from '../Logger';\nimport {getCallingBackEnd, uploadLogs} from '../common/Utils';\nimport {WxCallBackendConnector} from './WxCallBackendConnector';\nimport {BroadworksBackendConnector} from './BroadworksBackendConnector';\nimport {VoicemailEventTypes} from '../Events/types';\nimport {Eventing} from '../Events/impl';\nimport {UcmBackendConnector} from './UcmBackendConnector';\nimport {IMetricManager, METRIC_EVENT, METRIC_TYPE, VOICEMAIL_ACTION} from '../Metrics/types';\nimport {getMetricManager} from '../Metrics';\nimport {VOICEMAIL_FILE, METHODS} from './constants';\n\n/**\n * The `Voicemail` module is designed to simplify voicemail-related operations by offering a set of APIs.\n *\n * The following code snippet demonstrates how to create an instance of `Voicemail` using a `webex` instance and a logger:\n *\n * Example:\n * ```javascript\n * const voicemailInstance = createVoicemailClient(webex, logger);\n * ```\n */\nexport class Voicemail extends Eventing<VoicemailEventTypes> implements IVoicemail {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private callingBackend: CALLING_BACKEND;\n\n private backendConnector!: IVoicemail;\n\n private metricManager: IMetricManager;\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, public logger: LoggerInterface) {\n super();\n this.sdkConnector = SDKConnector;\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.metricManager = getMetricManager(this.webex, undefined);\n this.callingBackend = getCallingBackEnd(this.webex);\n this.initializeBackendConnector();\n log.setLogger(logger.level, VOICEMAIL_FILE);\n }\n\n /**\n * Voicemail connector initialization.\n *\n */\n public async init() {\n try {\n log.info(METHOD_START_MESSAGE, {\n file: VOICEMAIL_FILE,\n method: METHODS.INIT,\n });\n\n const response = this.backendConnector.init();\n\n log.log('Voicemail connector initialized successfully', {\n file: VOICEMAIL_FILE,\n method: METHODS.INIT,\n });\n\n return response;\n } catch (err: unknown) {\n const extendedError = new Error(`Failed to initialize voicemail: ${err}`) as ExtendedError;\n log.error(extendedError, {\n file: VOICEMAIL_FILE,\n method: METHODS.INIT,\n });\n\n await uploadLogs();\n\n throw err;\n }\n }\n\n /**\n * Setup and initialize the voicemail backend connector class object.\n */\n private initializeBackendConnector() {\n log.info(METHOD_START_MESSAGE, {\n file: VOICEMAIL_FILE,\n method: METHODS.INITIALIZE_BACKEND_CONNECTOR,\n });\n\n switch (this.callingBackend) {\n case CALLING_BACKEND.WXC: {\n this.backendConnector = new WxCallBackendConnector(this.webex, this.logger);\n break;\n }\n\n case CALLING_BACKEND.BWRKS: {\n this.backendConnector = new BroadworksBackendConnector(this.webex, this.logger);\n break;\n }\n\n case CALLING_BACKEND.UCM: {\n this.backendConnector = new UcmBackendConnector(this.webex, this.logger);\n break;\n }\n\n default: {\n throw new Error('Calling backend is not identified, exiting....');\n }\n }\n }\n\n /**\n * @param response - VoicemailResponseEvent to be used in submitting metric.\n * @param metricAction - Action for the metric being submitted.\n * @param messageId - Message identifier of the voicemail message.\n */\n private submitMetric(response: VoicemailResponseEvent, metricAction: string, messageId?: string) {\n const {\n statusCode,\n data: {error: errorMessage},\n } = response;\n\n if (statusCode >= 200 && statusCode < 300) {\n this.metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL,\n metricAction,\n METRIC_TYPE.BEHAVIORAL,\n messageId\n );\n } else {\n this.metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL_ERROR,\n metricAction,\n METRIC_TYPE.BEHAVIORAL,\n messageId,\n errorMessage,\n statusCode\n );\n }\n }\n\n /**\n * Retrieves a list of voicemails with optional pagination and sorting options.\n *\n * @param offset - Number of records to skip.\n * @param offsetLimit - The limit on the number of voicemails to retrieve from the offset.\n * @param sort - Sort voicemail list (ASC | DESC).\n * @param refresh - Set to `true` to force a refresh of voicemail data from backend (optional).\n */\n public async getVoicemailList(\n offset: number,\n offsetLimit: number,\n sort: SORT,\n refresh?: boolean\n ): Promise<VoicemailResponseEvent> {\n try {\n log.info(\n `${METHOD_START_MESSAGE} with: offset=${offset}, limit=${offsetLimit}, sort=${sort}, refresh=${refresh}`,\n {\n file: VOICEMAIL_FILE,\n method: METHODS.GET_VOICEMAIL_LIST,\n }\n );\n\n const response = await this.backendConnector.getVoicemailList(\n offset,\n offsetLimit,\n sort,\n refresh\n );\n\n this.submitMetric(response, VOICEMAIL_ACTION.GET_VOICEMAILS);\n\n log.log(`Successfully retrieved voicemail list: statusCode=${response.statusCode}`, {\n file: VOICEMAIL_FILE,\n method: METHODS.GET_VOICEMAIL_LIST,\n });\n\n return response;\n } catch (err: unknown) {\n const extendedError = new Error(`Failed to get voicemail list: ${err}`) as ExtendedError;\n log.error(extendedError, {\n file: VOICEMAIL_FILE,\n method: METHODS.GET_VOICEMAIL_LIST,\n });\n\n await uploadLogs();\n\n throw err;\n }\n }\n\n /**\n * Retrieves the content of a voicemail message based on its messageId.\n *\n * @param messageId - The identifier of the voicemail message.\n */\n public async getVoicemailContent(messageId: string): Promise<VoicemailResponseEvent> {\n log.info(`${METHOD_START_MESSAGE} with: messageId=${messageId}`, {\n file: VOICEMAIL_FILE,\n method: METHODS.GET_VOICEMAIL_CONTENT,\n });\n\n const response = await this.backendConnector.getVoicemailContent(messageId);\n\n this.submitMetric(response, VOICEMAIL_ACTION.GET_VOICEMAIL_CONTENT, messageId);\n\n log.log(\n `Successfully retrieved voicemail content for messageId=${messageId}, statusCode=${response.statusCode}`,\n {\n file: VOICEMAIL_FILE,\n method: METHODS.GET_VOICEMAIL_CONTENT,\n }\n );\n\n return response;\n }\n\n /**\n * Retrieves a quantitative summary of voicemails for a user.\n *\n */\n public async getVoicemailSummary(): Promise<VoicemailResponseEvent | null> {\n log.info(METHOD_START_MESSAGE, {\n file: VOICEMAIL_FILE,\n method: METHODS.GET_VOICEMAIL_SUMMARY,\n });\n\n const response = await this.backendConnector.getVoicemailSummary();\n\n /* istanbul ignore else */\n if (response !== null) {\n this.submitMetric(response, VOICEMAIL_ACTION.GET_VOICEMAIL_SUMMARY);\n\n log.log(`Successfully retrieved voicemail summary: statusCode=${response.statusCode}`, {\n file: VOICEMAIL_FILE,\n method: METHODS.GET_VOICEMAIL_SUMMARY,\n });\n }\n\n return response;\n }\n\n /**\n * Fetch voicemail read message status for the messageId.\n *\n * @param messageId -string result from the voicemail list.\n */\n public async voicemailMarkAsRead(messageId: string): Promise<VoicemailResponseEvent> {\n log.info(`${METHOD_START_MESSAGE} with: messageId=${messageId}`, {\n file: VOICEMAIL_FILE,\n method: METHODS.VOICEMAIL_MARK_AS_READ,\n });\n\n const response = await this.backendConnector.voicemailMarkAsRead(messageId);\n\n this.submitMetric(response, VOICEMAIL_ACTION.MARK_READ, messageId);\n\n log.log(\n `Successfully marked voicemail as read: messageId=${messageId}, statusCode=${response.statusCode}`,\n {\n file: VOICEMAIL_FILE,\n method: METHODS.VOICEMAIL_MARK_AS_READ,\n }\n );\n\n return response;\n }\n\n /**\n * Fetch voicemail unread status for the messageId.\n *\n * @param messageId -string result from the voicemail list.\n */\n public async voicemailMarkAsUnread(messageId: string): Promise<VoicemailResponseEvent> {\n log.info(`${METHOD_START_MESSAGE} with: messageId=${messageId}`, {\n file: VOICEMAIL_FILE,\n method: METHODS.VOICEMAIL_MARK_AS_UNREAD,\n });\n\n const response = await this.backendConnector.voicemailMarkAsUnread(messageId);\n\n this.submitMetric(response, VOICEMAIL_ACTION.MARK_UNREAD, messageId);\n\n log.log(\n `Successfully marked voicemail as unread: messageId=${messageId}, statusCode=${response.statusCode}`,\n {\n file: VOICEMAIL_FILE,\n method: METHODS.VOICEMAIL_MARK_AS_UNREAD,\n }\n );\n\n return response;\n }\n\n /**\n * Fetch voicemail delete status for the messageId.\n *\n * @param messageId -string result from the voicemail list.\n */\n public async deleteVoicemail(messageId: string): Promise<VoicemailResponseEvent> {\n log.info(`${METHOD_START_MESSAGE} with: messageId=${messageId}`, {\n file: VOICEMAIL_FILE,\n method: METHODS.DELETE_VOICEMAIL,\n });\n\n const response = await this.backendConnector.deleteVoicemail(messageId);\n\n this.submitMetric(response, VOICEMAIL_ACTION.DELETE, messageId);\n\n log.log(\n `Successfully deleted voicemail: messageId=${messageId}, statusCode=${response.statusCode}`,\n {\n file: VOICEMAIL_FILE,\n method: METHODS.DELETE_VOICEMAIL,\n }\n );\n\n return response;\n }\n\n /**\n * Fetch the voicemail transcripts for the messageId.\n *\n * @param messageId - MessageId for which we need the transcript.\n */\n public async getVMTranscript(messageId: string): Promise<VoicemailResponseEvent | null> {\n log.info(`${METHOD_START_MESSAGE} with: messageId=${messageId}`, {\n file: VOICEMAIL_FILE,\n method: METHODS.GET_VM_TRANSCRIPT,\n });\n\n const response = await this.backendConnector.getVMTranscript(messageId);\n\n if (response !== null) {\n this.submitMetric(response, VOICEMAIL_ACTION.TRANSCRIPT, messageId);\n\n log.log(\n `Successfully retrieved voicemail transcript: messageId=${messageId}, statusCode=${response.statusCode}`,\n {\n file: VOICEMAIL_FILE,\n method: METHODS.GET_VM_TRANSCRIPT,\n }\n );\n }\n\n return response;\n }\n\n /**\n * Resolve the Contact from userId or display name.\n *\n * @param callingPartyInfo - Calling Party Info.\n */\n public resolveContact(callingPartyInfo: CallingPartyInfo): Promise<DisplayInformation | null> {\n log.info(METHOD_START_MESSAGE, {\n file: VOICEMAIL_FILE,\n method: METHODS.RESOLVE_CONTACT,\n });\n\n const response = this.backendConnector.resolveContact(callingPartyInfo);\n\n log.log('Contact resolution completed successfully', {\n file: VOICEMAIL_FILE,\n method: METHODS.RESOLVE_CONTACT,\n });\n\n return response;\n }\n\n /**\n * SDK connector function.\n * @ignore\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n}\n\n/**\n * @param webex - webex instance\n * @param logger - logger instance\n */\nexport const createVoicemailClient = (webex: WebexSDK, logger: LoggerInterface): IVoicemail =>\n new Voicemail(webex, logger);\n"],"mappings":"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","ignoreList":[]}
@@ -1,391 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
- var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
5
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
6
- var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
7
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
8
- var _testUtil = require("../common/testUtil");
9
- var _Voicemail = require("./Voicemail");
10
- var _types = require("../Logger/types");
11
- var _constants = require("../common/constants");
12
- var _types2 = require("../common/types");
13
- var _UcmBackendConnector = require("./UcmBackendConnector");
14
- var _BroadworksBackendConnector = require("./BroadworksBackendConnector");
15
- var _WxCallBackendConnector = require("./WxCallBackendConnector");
16
- var _types3 = require("../Metrics/types");
17
- var _voicemailFixture = require("./voicemailFixture");
18
- var _Logger = _interopRequireDefault(require("../Logger"));
19
- var _constants2 = require("./constants");
20
- describe('Voicemail Client tests', function () {
21
- var webex = (0, _testUtil.getTestUtilsWebex)();
22
- var infoSpy;
23
- var logSpy;
24
- var errorSpy;
25
- beforeEach(function () {
26
- infoSpy = jest.spyOn(_Logger.default, 'info');
27
- logSpy = jest.spyOn(_Logger.default, 'log');
28
- errorSpy = jest.spyOn(_Logger.default, 'error');
29
- });
30
- afterEach(function () {
31
- jest.clearAllMocks();
32
- });
33
- describe('createVoicemailClient tests', function () {
34
- /**
35
- * TestCase inputs
36
- * name: TestCase name
37
- * callingBehavior: Calling profile
38
- * entitlement: Entitlement
39
- * valid: expected result for vm client creation with given inputs.
40
- */
41
- var testData = [{
42
- name: 'verify valid ucm voicemail client',
43
- callingBehavior: _constants.NATIVE_SIP_CALL_TO_UCM,
44
- entitlement: 'none',
45
- valid: true
46
- }, {
47
- name: 'verify valid wxc voicemail client with basic entitlement',
48
- callingBehavior: _constants.NATIVE_WEBEX_TEAMS_CALLING,
49
- entitlement: _constants.ENTITLEMENT_BASIC,
50
- valid: true
51
- }, {
52
- name: 'verify valid wxc voicemail client with standard entitlement',
53
- callingBehavior: _constants.NATIVE_WEBEX_TEAMS_CALLING,
54
- entitlement: _constants.ENTITLEMENT_STANDARD,
55
- valid: true
56
- }, {
57
- name: 'verify valid wxc voicemail client with broadworks entitlement',
58
- callingBehavior: _constants.NATIVE_WEBEX_TEAMS_CALLING,
59
- entitlement: _constants.ENTITLEMENT_BROADWORKS_CONN,
60
- valid: true
61
- }, {
62
- name: 'verify invalid callingBehavior',
63
- callingBehavior: 'INVALID',
64
- entitlement: _constants.ENTITLEMENT_BASIC,
65
- valid: false
66
- }, {
67
- name: 'verify invalid entitlement for wxc voicemail client',
68
- callingBehavior: _constants.NATIVE_WEBEX_TEAMS_CALLING,
69
- entitlement: 'invalid',
70
- valid: false
71
- }].map(function (stat) {
72
- return (0, _assign.default)(stat, {
73
- toString: function toString() {
74
- /* eslint-disable dot-notation */
75
- return this['name'];
76
- }
77
- });
78
- });
79
- it.each(testData)('%s', /*#__PURE__*/function () {
80
- var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(data) {
81
- var voicemailClient, connectorResponse, contactResponse;
82
- return _regenerator.default.wrap(function _callee$(_context) {
83
- while (1) switch (_context.prev = _context.next) {
84
- case 0:
85
- webex.internal.device.callingBehavior = data.callingBehavior;
86
- webex.internal.device.features.entitlement.models = [{
87
- _values: {
88
- key: data.entitlement
89
- }
90
- }];
91
- if (!data.valid) {
92
- _context.next = 27;
93
- break;
94
- }
95
- voicemailClient = (0, _Voicemail.createVoicemailClient)(webex, {
96
- level: _types.LOGGER.INFO
97
- });
98
- voicemailClient['backendConnector'].init = jest.fn(function () {
99
- return _promise.default.resolve({});
100
- });
101
- voicemailClient['backendConnector'].resolveContact = jest.fn(function () {
102
- return _promise.default.resolve({});
103
- });
104
- connectorResponse = voicemailClient.init();
105
- contactResponse = voicemailClient.resolveContact(_voicemailFixture.resolveContactArgs);
106
- expect(voicemailClient).toBeTruthy();
107
- expect(voicemailClient.getSDKConnector().getWebex()).toBeTruthy();
108
- expect(connectorResponse).toBeTruthy();
109
- expect(contactResponse).toBeTruthy();
110
- expect(infoSpy).toHaveBeenCalledWith(_constants.METHOD_START_MESSAGE, {
111
- file: 'VoicemailClient',
112
- method: _constants2.METHODS.INIT
113
- });
114
- expect(logSpy).toHaveBeenCalledWith('Voicemail connector initialized successfully', {
115
- file: 'VoicemailClient',
116
- method: _constants2.METHODS.INIT
117
- });
118
- expect(infoSpy).toHaveBeenCalledWith(_constants.METHOD_START_MESSAGE, {
119
- file: 'VoicemailClient',
120
- method: _constants2.METHODS.RESOLVE_CONTACT
121
- });
122
- expect(logSpy).toHaveBeenCalledWith('Contact resolution completed successfully', {
123
- file: 'VoicemailClient',
124
- method: _constants2.METHODS.RESOLVE_CONTACT
125
- });
126
- _context.t0 = data.callingBehavior;
127
- _context.next = _context.t0 === _constants.NATIVE_SIP_CALL_TO_UCM ? 19 : _context.t0 === _constants.NATIVE_WEBEX_TEAMS_CALLING ? 22 : 24;
128
- break;
129
- case 19:
130
- expect(voicemailClient['callingBackend']).toStrictEqual(_types2.CALLING_BACKEND.UCM);
131
- expect(voicemailClient['backendConnector']).toBeInstanceOf(_UcmBackendConnector.UcmBackendConnector);
132
- return _context.abrupt("break", 25);
133
- case 22:
134
- if (data.entitlement === _constants.ENTITLEMENT_BROADWORKS_CONN) {
135
- expect(voicemailClient['callingBackend']).toStrictEqual(_types2.CALLING_BACKEND.BWRKS);
136
- expect(voicemailClient['backendConnector']).toBeInstanceOf(_BroadworksBackendConnector.BroadworksBackendConnector);
137
- } else {
138
- /* entitlement basic and standard */
139
- expect(voicemailClient['callingBackend']).toStrictEqual(_types2.CALLING_BACKEND.WXC);
140
- expect(voicemailClient['backendConnector']).toBeInstanceOf(_WxCallBackendConnector.WxCallBackendConnector);
141
- }
142
- return _context.abrupt("break", 25);
143
- case 24:
144
- fail('Unknown calling backend type.');
145
- case 25:
146
- _context.next = 28;
147
- break;
148
- case 27:
149
- expect(function () {
150
- (0, _Voicemail.createVoicemailClient)(webex, {
151
- level: _types.LOGGER.INFO
152
- });
153
- }).toThrowError('Calling backend is not identified, exiting....');
154
- case 28:
155
- case "end":
156
- return _context.stop();
157
- }
158
- }, _callee);
159
- }));
160
- return function (_x) {
161
- return _ref.apply(this, arguments);
162
- };
163
- }());
164
- });
165
- describe('voicemail metrics test', function () {
166
- webex.internal.device.callingBehavior = _constants.NATIVE_WEBEX_TEAMS_CALLING;
167
- webex.internal.device.features.entitlement.models = [{
168
- _values: {
169
- key: _constants.ENTITLEMENT_STANDARD
170
- }
171
- }];
172
- var voicemailClient = (0, _Voicemail.createVoicemailClient)(webex, {
173
- level: _types.LOGGER.INFO
174
- });
175
- var messageId = '/v2.0/user/08cedee9-296f-4aaf-bd4b-e14f2399abdf/VoiceMessagingMessages/ec8c3baf-afe4-4cef-b02f-19026b9e039c';
176
- var metricSpy = jest.spyOn(voicemailClient['metricManager'], 'submitVoicemailMetric');
177
- voicemailClient['backendConnector'] = {
178
- getVoicemailList: jest.fn(),
179
- getVoicemailContent: jest.fn(),
180
- getVoicemailSummary: jest.fn(),
181
- voicemailMarkAsRead: jest.fn(),
182
- voicemailMarkAsUnread: jest.fn(),
183
- deleteVoicemail: jest.fn(),
184
- getVMTranscript: jest.fn(),
185
- resolveContact: jest.fn()
186
- };
187
- var testData = [{
188
- metricAction: _types3.VOICEMAIL_ACTION.GET_VOICEMAILS,
189
- method: 'getVoicemailList'
190
- }, {
191
- metricAction: _types3.VOICEMAIL_ACTION.GET_VOICEMAIL_CONTENT,
192
- method: 'getVoicemailContent'
193
- }, {
194
- metricAction: _types3.VOICEMAIL_ACTION.MARK_READ,
195
- method: 'voicemailMarkAsRead'
196
- }, {
197
- metricAction: _types3.VOICEMAIL_ACTION.MARK_UNREAD,
198
- method: 'voicemailMarkAsUnread'
199
- }, {
200
- metricAction: _types3.VOICEMAIL_ACTION.DELETE,
201
- method: 'deleteVoicemail'
202
- }, {
203
- metricAction: _types3.VOICEMAIL_ACTION.TRANSCRIPT,
204
- method: 'getVMTranscript'
205
- }, {
206
- metricAction: _types3.VOICEMAIL_ACTION.GET_VOICEMAIL_SUMMARY,
207
- method: 'getVoicemailSummary'
208
- }].map(function (stat) {
209
- return (0, _assign.default)(stat, {
210
- toString: function toString() {
211
- return "test ".concat(this['method'], " with metrics");
212
- }
213
- });
214
- });
215
- it.each(testData)('%s', /*#__PURE__*/function () {
216
- var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(data) {
217
- var response, args, errorMessage, errorCode;
218
- return _regenerator.default.wrap(function _callee2$(_context2) {
219
- while (1) switch (_context2.prev = _context2.next) {
220
- case 0:
221
- response = {
222
- statusCode: 204,
223
- message: 'SUCCESS',
224
- data: {}
225
- };
226
- args = data.metricAction === _types3.VOICEMAIL_ACTION.GET_VOICEMAIL_SUMMARY && [] || data.metricAction === _types3.VOICEMAIL_ACTION.GET_VOICEMAILS ? [0, 0, _types2.SORT.ASC] : [messageId];
227
- voicemailClient['backendConnector'][data.method].mockResolvedValue(response);
228
- _context2.next = 5;
229
- return voicemailClient[data.method].apply(voicemailClient, args);
230
- case 5:
231
- // Check logging for success case
232
- // Check for specific log messages based on method called
233
- if (data.method === 'getVoicemailList') {
234
- expect(infoSpy).toHaveBeenCalledWith(expect.stringContaining('invoking with: offset='), expect.objectContaining({
235
- file: 'VoicemailClient',
236
- method: _constants2.METHODS.GET_VOICEMAIL_LIST
237
- }));
238
- expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Successfully retrieved voicemail list'), expect.objectContaining({
239
- file: 'VoicemailClient',
240
- method: _constants2.METHODS.GET_VOICEMAIL_LIST
241
- }));
242
- } else if (data.method === 'getVoicemailSummary') {
243
- expect(infoSpy).toHaveBeenCalledWith(_constants.METHOD_START_MESSAGE, expect.objectContaining({
244
- file: 'VoicemailClient',
245
- method: _constants2.METHODS.GET_VOICEMAIL_SUMMARY
246
- }));
247
- expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Successfully retrieved voicemail summary'), expect.objectContaining({
248
- file: 'VoicemailClient',
249
- method: _constants2.METHODS.GET_VOICEMAIL_SUMMARY
250
- }));
251
- } else if (data.method === 'getVoicemailContent') {
252
- expect(infoSpy).toHaveBeenCalledWith("".concat(_constants.METHOD_START_MESSAGE, " with: messageId=").concat(messageId), expect.objectContaining({
253
- file: 'VoicemailClient',
254
- method: _constants2.METHODS.GET_VOICEMAIL_CONTENT
255
- }));
256
- expect(logSpy).toHaveBeenCalledWith(expect.stringContaining("Successfully retrieved voicemail content for messageId=".concat(messageId)), expect.objectContaining({
257
- file: 'VoicemailClient',
258
- method: _constants2.METHODS.GET_VOICEMAIL_CONTENT
259
- }));
260
- } else if (data.method === 'voicemailMarkAsRead') {
261
- expect(infoSpy).toHaveBeenCalledWith("".concat(_constants.METHOD_START_MESSAGE, " with: messageId=").concat(messageId), expect.objectContaining({
262
- file: 'VoicemailClient',
263
- method: _constants2.METHODS.VOICEMAIL_MARK_AS_READ
264
- }));
265
- expect(logSpy).toHaveBeenCalledWith(expect.stringContaining("Successfully marked voicemail as read: messageId=".concat(messageId)), expect.objectContaining({
266
- file: 'VoicemailClient',
267
- method: _constants2.METHODS.VOICEMAIL_MARK_AS_READ
268
- }));
269
- } else if (data.method === 'voicemailMarkAsUnread') {
270
- expect(infoSpy).toHaveBeenCalledWith("".concat(_constants.METHOD_START_MESSAGE, " with: messageId=").concat(messageId), expect.objectContaining({
271
- file: 'VoicemailClient',
272
- method: _constants2.METHODS.VOICEMAIL_MARK_AS_UNREAD
273
- }));
274
- expect(logSpy).toHaveBeenCalledWith(expect.stringContaining("Successfully marked voicemail as unread: messageId=".concat(messageId)), expect.objectContaining({
275
- file: 'VoicemailClient',
276
- method: _constants2.METHODS.VOICEMAIL_MARK_AS_UNREAD
277
- }));
278
- } else if (data.method === 'deleteVoicemail') {
279
- expect(infoSpy).toHaveBeenCalledWith("".concat(_constants.METHOD_START_MESSAGE, " with: messageId=").concat(messageId), expect.objectContaining({
280
- file: 'VoicemailClient',
281
- method: _constants2.METHODS.DELETE_VOICEMAIL
282
- }));
283
- expect(logSpy).toHaveBeenCalledWith(expect.stringContaining("Successfully deleted voicemail: messageId=".concat(messageId)), expect.objectContaining({
284
- file: 'VoicemailClient',
285
- method: _constants2.METHODS.DELETE_VOICEMAIL
286
- }));
287
- } else if (data.method === 'getVMTranscript') {
288
- expect(infoSpy).toHaveBeenCalledWith("".concat(_constants.METHOD_START_MESSAGE, " with: messageId=").concat(messageId), expect.objectContaining({
289
- file: 'VoicemailClient',
290
- method: _constants2.METHODS.GET_VM_TRANSCRIPT
291
- }));
292
- expect(logSpy).toHaveBeenCalledWith(expect.stringContaining("Successfully retrieved voicemail transcript: messageId=".concat(messageId)), expect.objectContaining({
293
- file: 'VoicemailClient',
294
- method: _constants2.METHODS.GET_VM_TRANSCRIPT
295
- }));
296
- }
297
- expect(errorSpy).not.toHaveBeenCalled();
298
- expect(metricSpy).toHaveBeenCalledWith(_types3.METRIC_EVENT.VOICEMAIL, data.metricAction, _types3.METRIC_TYPE.BEHAVIORAL, [_types3.VOICEMAIL_ACTION.GET_VOICEMAILS, _types3.VOICEMAIL_ACTION.GET_VOICEMAIL_SUMMARY].includes(data.metricAction) ? undefined : messageId);
299
- metricSpy.mockClear();
300
- errorMessage = 'User is unauthorised';
301
- errorCode = 401;
302
- response.statusCode = errorCode;
303
- response.data = {
304
- error: errorMessage
305
- };
306
- infoSpy.mockClear();
307
- logSpy.mockClear();
308
- errorSpy.mockClear();
309
- _context2.next = 18;
310
- return voicemailClient[data.method].apply(voicemailClient, args);
311
- case 18:
312
- // Check for error case logging with specific message checks
313
- if (data.method === 'getVoicemailList') {
314
- expect(infoSpy).toHaveBeenCalledWith(expect.stringContaining('invoking with: offset='), expect.objectContaining({
315
- file: 'VoicemailClient',
316
- method: _constants2.METHODS.GET_VOICEMAIL_LIST
317
- }));
318
- expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Successfully retrieved voicemail list'), expect.objectContaining({
319
- file: 'VoicemailClient',
320
- method: _constants2.METHODS.GET_VOICEMAIL_LIST
321
- }));
322
- } else if (data.method === 'getVoicemailSummary') {
323
- expect(infoSpy).toHaveBeenCalledWith(_constants.METHOD_START_MESSAGE, expect.objectContaining({
324
- file: 'VoicemailClient',
325
- method: _constants2.METHODS.GET_VOICEMAIL_SUMMARY
326
- }));
327
- expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Successfully retrieved voicemail summary'), expect.objectContaining({
328
- file: 'VoicemailClient',
329
- method: _constants2.METHODS.GET_VOICEMAIL_SUMMARY
330
- }));
331
- } else if (data.method === 'getVoicemailContent') {
332
- expect(infoSpy).toHaveBeenCalledWith("".concat(_constants.METHOD_START_MESSAGE, " with: messageId=").concat(messageId), expect.objectContaining({
333
- file: 'VoicemailClient',
334
- method: _constants2.METHODS.GET_VOICEMAIL_CONTENT
335
- }));
336
- expect(logSpy).toHaveBeenCalledWith(expect.stringContaining("Successfully retrieved voicemail content for messageId=".concat(messageId)), expect.objectContaining({
337
- file: 'VoicemailClient',
338
- method: _constants2.METHODS.GET_VOICEMAIL_CONTENT
339
- }));
340
- } else if (data.method === 'voicemailMarkAsRead') {
341
- expect(infoSpy).toHaveBeenCalledWith("".concat(_constants.METHOD_START_MESSAGE, " with: messageId=").concat(messageId), expect.objectContaining({
342
- file: 'VoicemailClient',
343
- method: _constants2.METHODS.VOICEMAIL_MARK_AS_READ
344
- }));
345
- expect(logSpy).toHaveBeenCalledWith(expect.stringContaining("Successfully marked voicemail as read: messageId=".concat(messageId)), expect.objectContaining({
346
- file: 'VoicemailClient',
347
- method: _constants2.METHODS.VOICEMAIL_MARK_AS_READ
348
- }));
349
- } else if (data.method === 'voicemailMarkAsUnread') {
350
- expect(infoSpy).toHaveBeenCalledWith("".concat(_constants.METHOD_START_MESSAGE, " with: messageId=").concat(messageId), expect.objectContaining({
351
- file: 'VoicemailClient',
352
- method: _constants2.METHODS.VOICEMAIL_MARK_AS_UNREAD
353
- }));
354
- expect(logSpy).toHaveBeenCalledWith(expect.stringContaining("Successfully marked voicemail as unread: messageId=".concat(messageId)), expect.objectContaining({
355
- file: 'VoicemailClient',
356
- method: _constants2.METHODS.VOICEMAIL_MARK_AS_UNREAD
357
- }));
358
- } else if (data.method === 'deleteVoicemail') {
359
- expect(infoSpy).toHaveBeenCalledWith("".concat(_constants.METHOD_START_MESSAGE, " with: messageId=").concat(messageId), expect.objectContaining({
360
- file: 'VoicemailClient',
361
- method: _constants2.METHODS.DELETE_VOICEMAIL
362
- }));
363
- expect(logSpy).toHaveBeenCalledWith(expect.stringContaining("Successfully deleted voicemail: messageId=".concat(messageId)), expect.objectContaining({
364
- file: 'VoicemailClient',
365
- method: _constants2.METHODS.DELETE_VOICEMAIL
366
- }));
367
- } else if (data.method === 'getVMTranscript') {
368
- expect(infoSpy).toHaveBeenCalledWith("".concat(_constants.METHOD_START_MESSAGE, " with: messageId=").concat(messageId), expect.objectContaining({
369
- file: 'VoicemailClient',
370
- method: _constants2.METHODS.GET_VM_TRANSCRIPT
371
- }));
372
- expect(logSpy).toHaveBeenCalledWith(expect.stringContaining("Successfully retrieved voicemail transcript: messageId=".concat(messageId)), expect.objectContaining({
373
- file: 'VoicemailClient',
374
- method: _constants2.METHODS.GET_VM_TRANSCRIPT
375
- }));
376
- }
377
- expect(errorSpy).not.toHaveBeenCalled();
378
- expect(metricSpy).toHaveBeenCalledWith(_types3.METRIC_EVENT.VOICEMAIL_ERROR, data.metricAction, _types3.METRIC_TYPE.BEHAVIORAL, [_types3.VOICEMAIL_ACTION.GET_VOICEMAILS, _types3.VOICEMAIL_ACTION.GET_VOICEMAIL_SUMMARY].includes(data.metricAction) ? undefined : messageId, errorMessage, errorCode);
379
- case 21:
380
- case "end":
381
- return _context2.stop();
382
- }
383
- }, _callee2);
384
- }));
385
- return function (_x2) {
386
- return _ref2.apply(this, arguments);
387
- };
388
- }());
389
- });
390
- });
391
- //# sourceMappingURL=Voicemail.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_testUtil","require","_Voicemail","_types","_constants","_types2","_UcmBackendConnector","_BroadworksBackendConnector","_WxCallBackendConnector","_types3","_voicemailFixture","_Logger","_interopRequireDefault","_constants2","describe","webex","getTestUtilsWebex","infoSpy","logSpy","errorSpy","beforeEach","jest","spyOn","log","afterEach","clearAllMocks","testData","name","callingBehavior","NATIVE_SIP_CALL_TO_UCM","entitlement","valid","NATIVE_WEBEX_TEAMS_CALLING","ENTITLEMENT_BASIC","ENTITLEMENT_STANDARD","ENTITLEMENT_BROADWORKS_CONN","map","stat","_assign","default","toString","it","each","_ref","_asyncToGenerator2","_regenerator","mark","_callee","data","voicemailClient","connectorResponse","contactResponse","wrap","_callee$","_context","prev","next","internal","device","features","models","_values","key","createVoicemailClient","level","LOGGER","INFO","init","fn","_promise","resolve","resolveContact","resolveContactArgs","expect","toBeTruthy","getSDKConnector","getWebex","toHaveBeenCalledWith","METHOD_START_MESSAGE","file","method","METHODS","INIT","RESOLVE_CONTACT","t0","toStrictEqual","CALLING_BACKEND","UCM","toBeInstanceOf","UcmBackendConnector","abrupt","BWRKS","BroadworksBackendConnector","WXC","WxCallBackendConnector","fail","toThrowError","stop","_x","apply","arguments","messageId","metricSpy","getVoicemailList","getVoicemailContent","getVoicemailSummary","voicemailMarkAsRead","voicemailMarkAsUnread","deleteVoicemail","getVMTranscript","metricAction","VOICEMAIL_ACTION","GET_VOICEMAILS","GET_VOICEMAIL_CONTENT","MARK_READ","MARK_UNREAD","DELETE","TRANSCRIPT","GET_VOICEMAIL_SUMMARY","concat","_ref2","_callee2","response","args","errorMessage","errorCode","_callee2$","_context2","statusCode","message","SORT","ASC","mockResolvedValue","stringContaining","objectContaining","GET_VOICEMAIL_LIST","VOICEMAIL_MARK_AS_READ","VOICEMAIL_MARK_AS_UNREAD","DELETE_VOICEMAIL","GET_VM_TRANSCRIPT","not","toHaveBeenCalled","METRIC_EVENT","VOICEMAIL","METRIC_TYPE","BEHAVIORAL","includes","undefined","mockClear","error","VOICEMAIL_ERROR","_x2"],"sources":["Voicemail.test.ts"],"sourcesContent":["import {getTestUtilsWebex} from '../common/testUtil';\nimport {createVoicemailClient} from './Voicemail';\nimport {LOGGER} from '../Logger/types';\nimport {\n ENTITLEMENT_BASIC,\n ENTITLEMENT_BROADWORKS_CONN,\n ENTITLEMENT_STANDARD,\n METHOD_START_MESSAGE,\n NATIVE_SIP_CALL_TO_UCM,\n NATIVE_WEBEX_TEAMS_CALLING,\n} from '../common/constants';\nimport {VoicemailResponseEvent} from './types';\nimport {CALLING_BACKEND, SORT} from '../common/types';\nimport {UcmBackendConnector} from './UcmBackendConnector';\nimport {BroadworksBackendConnector} from './BroadworksBackendConnector';\nimport {WxCallBackendConnector} from './WxCallBackendConnector';\nimport {VOICEMAIL_ACTION, METRIC_EVENT, METRIC_TYPE} from '../Metrics/types';\nimport {resolveContactArgs} from './voicemailFixture';\nimport log from '../Logger';\nimport {METHODS} from './constants';\n\ndescribe('Voicemail Client tests', () => {\n const webex = getTestUtilsWebex();\n let infoSpy;\n let logSpy;\n let errorSpy;\n\n beforeEach(() => {\n infoSpy = jest.spyOn(log, 'info');\n logSpy = jest.spyOn(log, 'log');\n errorSpy = jest.spyOn(log, 'error');\n });\n\n afterEach(() => {\n jest.clearAllMocks();\n });\n\n describe('createVoicemailClient tests', () => {\n /**\n * TestCase inputs\n * name: TestCase name\n * callingBehavior: Calling profile\n * entitlement: Entitlement\n * valid: expected result for vm client creation with given inputs.\n */\n const testData: {\n name: string;\n callingBehavior: string;\n entitlement: string;\n valid: boolean;\n }[] = [\n {\n name: 'verify valid ucm voicemail client',\n callingBehavior: NATIVE_SIP_CALL_TO_UCM,\n entitlement: 'none',\n valid: true,\n },\n {\n name: 'verify valid wxc voicemail client with basic entitlement',\n callingBehavior: NATIVE_WEBEX_TEAMS_CALLING,\n entitlement: ENTITLEMENT_BASIC,\n valid: true,\n },\n {\n name: 'verify valid wxc voicemail client with standard entitlement',\n callingBehavior: NATIVE_WEBEX_TEAMS_CALLING,\n entitlement: ENTITLEMENT_STANDARD,\n valid: true,\n },\n {\n name: 'verify valid wxc voicemail client with broadworks entitlement',\n callingBehavior: NATIVE_WEBEX_TEAMS_CALLING,\n entitlement: ENTITLEMENT_BROADWORKS_CONN,\n valid: true,\n },\n {\n name: 'verify invalid callingBehavior',\n callingBehavior: 'INVALID',\n entitlement: ENTITLEMENT_BASIC,\n valid: false,\n },\n {\n name: 'verify invalid entitlement for wxc voicemail client',\n callingBehavior: NATIVE_WEBEX_TEAMS_CALLING,\n entitlement: 'invalid',\n valid: false,\n },\n ].map((stat) =>\n Object.assign(stat, {\n toString() {\n /* eslint-disable dot-notation */\n return this['name'];\n },\n })\n );\n\n it.each(testData)('%s', async (data) => {\n webex.internal.device.callingBehavior = data.callingBehavior;\n webex.internal.device.features.entitlement.models = [{_values: {key: data.entitlement}}];\n if (data.valid) {\n const voicemailClient = createVoicemailClient(webex, {level: LOGGER.INFO});\n\n voicemailClient['backendConnector'].init = jest.fn(() => Promise.resolve({}));\n voicemailClient['backendConnector'].resolveContact = jest.fn(() => Promise.resolve({}));\n\n const connectorResponse = voicemailClient.init();\n const contactResponse = voicemailClient.resolveContact(resolveContactArgs);\n\n expect(voicemailClient).toBeTruthy();\n expect(voicemailClient.getSDKConnector().getWebex()).toBeTruthy();\n expect(connectorResponse).toBeTruthy();\n expect(contactResponse).toBeTruthy();\n\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: 'VoicemailClient',\n method: METHODS.INIT,\n });\n expect(logSpy).toHaveBeenCalledWith('Voicemail connector initialized successfully', {\n file: 'VoicemailClient',\n method: METHODS.INIT,\n });\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: 'VoicemailClient',\n method: METHODS.RESOLVE_CONTACT,\n });\n expect(logSpy).toHaveBeenCalledWith('Contact resolution completed successfully', {\n file: 'VoicemailClient',\n method: METHODS.RESOLVE_CONTACT,\n });\n\n switch (data.callingBehavior) {\n case NATIVE_SIP_CALL_TO_UCM:\n expect(voicemailClient['callingBackend']).toStrictEqual(CALLING_BACKEND.UCM);\n expect(voicemailClient['backendConnector']).toBeInstanceOf(UcmBackendConnector);\n break;\n case NATIVE_WEBEX_TEAMS_CALLING:\n if (data.entitlement === ENTITLEMENT_BROADWORKS_CONN) {\n expect(voicemailClient['callingBackend']).toStrictEqual(CALLING_BACKEND.BWRKS);\n expect(voicemailClient['backendConnector']).toBeInstanceOf(\n BroadworksBackendConnector\n );\n } else {\n /* entitlement basic and standard */\n expect(voicemailClient['callingBackend']).toStrictEqual(CALLING_BACKEND.WXC);\n expect(voicemailClient['backendConnector']).toBeInstanceOf(WxCallBackendConnector);\n }\n break;\n default:\n fail('Unknown calling backend type.');\n }\n } else {\n expect(() => {\n createVoicemailClient(webex, {level: LOGGER.INFO});\n }).toThrowError('Calling backend is not identified, exiting....');\n }\n });\n });\n\n describe('voicemail metrics test', () => {\n webex.internal.device.callingBehavior = NATIVE_WEBEX_TEAMS_CALLING;\n webex.internal.device.features.entitlement.models = [{_values: {key: ENTITLEMENT_STANDARD}}];\n const voicemailClient = createVoicemailClient(webex, {level: LOGGER.INFO});\n const messageId =\n '/v2.0/user/08cedee9-296f-4aaf-bd4b-e14f2399abdf/VoiceMessagingMessages/ec8c3baf-afe4-4cef-b02f-19026b9e039c';\n const metricSpy = jest.spyOn(voicemailClient['metricManager'], 'submitVoicemailMetric');\n\n voicemailClient['backendConnector'] = {\n getVoicemailList: jest.fn(),\n getVoicemailContent: jest.fn(),\n getVoicemailSummary: jest.fn(),\n voicemailMarkAsRead: jest.fn(),\n voicemailMarkAsUnread: jest.fn(),\n deleteVoicemail: jest.fn(),\n getVMTranscript: jest.fn(),\n resolveContact: jest.fn(),\n };\n\n const testData: {\n metricAction: VOICEMAIL_ACTION;\n method: string;\n }[] = [\n {\n metricAction: VOICEMAIL_ACTION.GET_VOICEMAILS,\n method: 'getVoicemailList',\n },\n {\n metricAction: VOICEMAIL_ACTION.GET_VOICEMAIL_CONTENT,\n method: 'getVoicemailContent',\n },\n {\n metricAction: VOICEMAIL_ACTION.MARK_READ,\n method: 'voicemailMarkAsRead',\n },\n {\n metricAction: VOICEMAIL_ACTION.MARK_UNREAD,\n method: 'voicemailMarkAsUnread',\n },\n {\n metricAction: VOICEMAIL_ACTION.DELETE,\n method: 'deleteVoicemail',\n },\n {\n metricAction: VOICEMAIL_ACTION.TRANSCRIPT,\n method: 'getVMTranscript',\n },\n {\n metricAction: VOICEMAIL_ACTION.GET_VOICEMAIL_SUMMARY,\n method: 'getVoicemailSummary',\n },\n ].map((stat) =>\n Object.assign(stat, {\n toString() {\n return `test ${this['method']} with metrics`;\n },\n })\n );\n\n it.each(testData)('%s', async (data) => {\n const response = {\n statusCode: 204,\n message: 'SUCCESS',\n data: {},\n } as VoicemailResponseEvent;\n\n const args =\n (data.metricAction === VOICEMAIL_ACTION.GET_VOICEMAIL_SUMMARY && []) ||\n data.metricAction === VOICEMAIL_ACTION.GET_VOICEMAILS\n ? [0, 0, SORT.ASC]\n : [messageId];\n\n voicemailClient['backendConnector'][data.method].mockResolvedValue(response);\n await voicemailClient[data.method](...args);\n\n // Check logging for success case\n // Check for specific log messages based on method called\n if (data.method === 'getVoicemailList') {\n expect(infoSpy).toHaveBeenCalledWith(\n expect.stringContaining('invoking with: offset='),\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.GET_VOICEMAIL_LIST,\n })\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining('Successfully retrieved voicemail list'),\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.GET_VOICEMAIL_LIST,\n })\n );\n } else if (data.method === 'getVoicemailSummary') {\n expect(infoSpy).toHaveBeenCalledWith(\n METHOD_START_MESSAGE,\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.GET_VOICEMAIL_SUMMARY,\n })\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining('Successfully retrieved voicemail summary'),\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.GET_VOICEMAIL_SUMMARY,\n })\n );\n } else if (data.method === 'getVoicemailContent') {\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with: messageId=${messageId}`,\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.GET_VOICEMAIL_CONTENT,\n })\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining(\n `Successfully retrieved voicemail content for messageId=${messageId}`\n ),\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.GET_VOICEMAIL_CONTENT,\n })\n );\n } else if (data.method === 'voicemailMarkAsRead') {\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with: messageId=${messageId}`,\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.VOICEMAIL_MARK_AS_READ,\n })\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining(`Successfully marked voicemail as read: messageId=${messageId}`),\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.VOICEMAIL_MARK_AS_READ,\n })\n );\n } else if (data.method === 'voicemailMarkAsUnread') {\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with: messageId=${messageId}`,\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.VOICEMAIL_MARK_AS_UNREAD,\n })\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining(\n `Successfully marked voicemail as unread: messageId=${messageId}`\n ),\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.VOICEMAIL_MARK_AS_UNREAD,\n })\n );\n } else if (data.method === 'deleteVoicemail') {\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with: messageId=${messageId}`,\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.DELETE_VOICEMAIL,\n })\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining(`Successfully deleted voicemail: messageId=${messageId}`),\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.DELETE_VOICEMAIL,\n })\n );\n } else if (data.method === 'getVMTranscript') {\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with: messageId=${messageId}`,\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.GET_VM_TRANSCRIPT,\n })\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining(\n `Successfully retrieved voicemail transcript: messageId=${messageId}`\n ),\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.GET_VM_TRANSCRIPT,\n })\n );\n }\n expect(errorSpy).not.toHaveBeenCalled();\n\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.VOICEMAIL,\n data.metricAction,\n METRIC_TYPE.BEHAVIORAL,\n [VOICEMAIL_ACTION.GET_VOICEMAILS, VOICEMAIL_ACTION.GET_VOICEMAIL_SUMMARY].includes(\n data.metricAction\n )\n ? undefined\n : messageId\n );\n\n metricSpy.mockClear();\n\n const errorMessage = 'User is unauthorised';\n const errorCode = 401;\n\n response.statusCode = errorCode;\n response.data = {error: errorMessage};\n\n infoSpy.mockClear();\n logSpy.mockClear();\n errorSpy.mockClear();\n\n await voicemailClient[data.method](...args);\n\n // Check for error case logging with specific message checks\n if (data.method === 'getVoicemailList') {\n expect(infoSpy).toHaveBeenCalledWith(\n expect.stringContaining('invoking with: offset='),\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.GET_VOICEMAIL_LIST,\n })\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining('Successfully retrieved voicemail list'),\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.GET_VOICEMAIL_LIST,\n })\n );\n } else if (data.method === 'getVoicemailSummary') {\n expect(infoSpy).toHaveBeenCalledWith(\n METHOD_START_MESSAGE,\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.GET_VOICEMAIL_SUMMARY,\n })\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining('Successfully retrieved voicemail summary'),\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.GET_VOICEMAIL_SUMMARY,\n })\n );\n } else if (data.method === 'getVoicemailContent') {\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with: messageId=${messageId}`,\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.GET_VOICEMAIL_CONTENT,\n })\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining(\n `Successfully retrieved voicemail content for messageId=${messageId}`\n ),\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.GET_VOICEMAIL_CONTENT,\n })\n );\n } else if (data.method === 'voicemailMarkAsRead') {\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with: messageId=${messageId}`,\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.VOICEMAIL_MARK_AS_READ,\n })\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining(`Successfully marked voicemail as read: messageId=${messageId}`),\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.VOICEMAIL_MARK_AS_READ,\n })\n );\n } else if (data.method === 'voicemailMarkAsUnread') {\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with: messageId=${messageId}`,\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.VOICEMAIL_MARK_AS_UNREAD,\n })\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining(\n `Successfully marked voicemail as unread: messageId=${messageId}`\n ),\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.VOICEMAIL_MARK_AS_UNREAD,\n })\n );\n } else if (data.method === 'deleteVoicemail') {\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with: messageId=${messageId}`,\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.DELETE_VOICEMAIL,\n })\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining(`Successfully deleted voicemail: messageId=${messageId}`),\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.DELETE_VOICEMAIL,\n })\n );\n } else if (data.method === 'getVMTranscript') {\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with: messageId=${messageId}`,\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.GET_VM_TRANSCRIPT,\n })\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining(\n `Successfully retrieved voicemail transcript: messageId=${messageId}`\n ),\n expect.objectContaining({\n file: 'VoicemailClient',\n method: METHODS.GET_VM_TRANSCRIPT,\n })\n );\n }\n expect(errorSpy).not.toHaveBeenCalled();\n\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.VOICEMAIL_ERROR,\n data.metricAction,\n METRIC_TYPE.BEHAVIORAL,\n [VOICEMAIL_ACTION.GET_VOICEMAILS, VOICEMAIL_ACTION.GET_VOICEMAIL_SUMMARY].includes(\n data.metricAction\n )\n ? undefined\n : messageId,\n errorMessage,\n errorCode\n );\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}