@webex/calling 3.8.0 → 3.8.1-next.2

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 (166) hide show
  1. package/dist/CallHistory/CallHistory.js +100 -63
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +115 -19
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallHistory/constants.js +9 -1
  6. package/dist/CallHistory/constants.js.map +1 -1
  7. package/dist/CallSettings/CallSettings.js +46 -13
  8. package/dist/CallSettings/CallSettings.js.map +1 -1
  9. package/dist/CallSettings/UcmBackendConnector.js +62 -18
  10. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  11. package/dist/CallSettings/UcmBackendConnector.test.js +70 -7
  12. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  13. package/dist/CallSettings/WxCallBackendConnector.js +153 -103
  14. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  15. package/dist/CallSettings/WxCallBackendConnector.test.js +52 -15
  16. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  17. package/dist/CallSettings/constants.js +15 -1
  18. package/dist/CallSettings/constants.js.map +1 -1
  19. package/dist/CallingClient/CallingClient.js +220 -159
  20. package/dist/CallingClient/CallingClient.js.map +1 -1
  21. package/dist/CallingClient/CallingClient.test.js +53 -24
  22. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  23. package/dist/CallingClient/calling/call.js +251 -189
  24. package/dist/CallingClient/calling/call.js.map +1 -1
  25. package/dist/CallingClient/calling/call.test.js +96 -41
  26. package/dist/CallingClient/calling/call.test.js.map +1 -1
  27. package/dist/CallingClient/calling/callManager.js +73 -48
  28. package/dist/CallingClient/calling/callManager.js.map +1 -1
  29. package/dist/CallingClient/calling/callManager.test.js +96 -37
  30. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  31. package/dist/CallingClient/constants.js +105 -3
  32. package/dist/CallingClient/constants.js.map +1 -1
  33. package/dist/CallingClient/line/index.js +47 -18
  34. package/dist/CallingClient/line/index.js.map +1 -1
  35. package/dist/CallingClient/line/line.test.js +2 -2
  36. package/dist/CallingClient/line/line.test.js.map +1 -1
  37. package/dist/CallingClient/registration/register.js +359 -297
  38. package/dist/CallingClient/registration/register.js.map +1 -1
  39. package/dist/CallingClient/registration/register.test.js +561 -163
  40. package/dist/CallingClient/registration/register.test.js.map +1 -1
  41. package/dist/CallingClient/registration/types.js.map +1 -1
  42. package/dist/Contacts/ContactsClient.js +156 -102
  43. package/dist/Contacts/ContactsClient.js.map +1 -1
  44. package/dist/Contacts/ContactsClient.test.js +197 -49
  45. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  46. package/dist/Contacts/constants.js +11 -1
  47. package/dist/Contacts/constants.js.map +1 -1
  48. package/dist/Errors/types.js +2 -0
  49. package/dist/Errors/types.js.map +1 -1
  50. package/dist/Events/impl/index.js +1 -1
  51. package/dist/Events/impl/index.js.map +1 -1
  52. package/dist/Metrics/index.js +102 -41
  53. package/dist/Metrics/index.js.map +1 -1
  54. package/dist/Metrics/index.test.js +10 -4
  55. package/dist/Metrics/index.test.js.map +1 -1
  56. package/dist/Metrics/types.js +4 -1
  57. package/dist/Metrics/types.js.map +1 -1
  58. package/dist/SDKConnector/types.js.map +1 -1
  59. package/dist/Voicemail/BroadworksBackendConnector.js +154 -91
  60. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  61. package/dist/Voicemail/BroadworksBackendConnector.test.js +99 -19
  62. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  63. package/dist/Voicemail/UcmBackendConnector.js +105 -54
  64. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  65. package/dist/Voicemail/UcmBackendConnector.test.js +127 -17
  66. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  67. package/dist/Voicemail/Voicemail.js +198 -79
  68. package/dist/Voicemail/Voicemail.js.map +1 -1
  69. package/dist/Voicemail/Voicemail.test.js +188 -23
  70. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  71. package/dist/Voicemail/WxCallBackendConnector.js +277 -161
  72. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  73. package/dist/Voicemail/WxCallBackendConnector.test.js +268 -10
  74. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  75. package/dist/Voicemail/constants.js +25 -1
  76. package/dist/Voicemail/constants.js.map +1 -1
  77. package/dist/Voicemail/types.js.map +1 -1
  78. package/dist/common/Utils.js +168 -104
  79. package/dist/common/Utils.js.map +1 -1
  80. package/dist/common/Utils.test.js +199 -35
  81. package/dist/common/Utils.test.js.map +1 -1
  82. package/dist/common/constants.js +2 -1
  83. package/dist/common/constants.js.map +1 -1
  84. package/dist/common/testUtil.js +3 -0
  85. package/dist/common/testUtil.js.map +1 -1
  86. package/dist/common/types.js.map +1 -1
  87. package/dist/index.js +12 -0
  88. package/dist/index.js.map +1 -1
  89. package/dist/module/CallHistory/CallHistory.js +32 -13
  90. package/dist/module/CallHistory/constants.js +6 -0
  91. package/dist/module/CallSettings/CallSettings.js +36 -3
  92. package/dist/module/CallSettings/UcmBackendConnector.js +50 -5
  93. package/dist/module/CallSettings/WxCallBackendConnector.js +54 -18
  94. package/dist/module/CallSettings/constants.js +12 -0
  95. package/dist/module/CallingClient/CallingClient.js +54 -16
  96. package/dist/module/CallingClient/calling/call.js +172 -121
  97. package/dist/module/CallingClient/calling/callManager.js +51 -26
  98. package/dist/module/CallingClient/constants.js +102 -2
  99. package/dist/module/CallingClient/line/index.js +37 -8
  100. package/dist/module/CallingClient/registration/register.js +103 -64
  101. package/dist/module/Contacts/ContactsClient.js +65 -21
  102. package/dist/module/Contacts/constants.js +10 -0
  103. package/dist/module/Errors/types.js +2 -0
  104. package/dist/module/Events/impl/index.js +1 -1
  105. package/dist/module/Metrics/index.js +57 -2
  106. package/dist/module/Metrics/types.js +3 -0
  107. package/dist/module/Voicemail/BroadworksBackendConnector.js +66 -17
  108. package/dist/module/Voicemail/UcmBackendConnector.js +51 -11
  109. package/dist/module/Voicemail/Voicemail.js +109 -9
  110. package/dist/module/Voicemail/WxCallBackendConnector.js +67 -18
  111. package/dist/module/Voicemail/constants.js +21 -0
  112. package/dist/module/common/Utils.js +51 -12
  113. package/dist/module/common/constants.js +1 -0
  114. package/dist/module/common/testUtil.js +3 -0
  115. package/dist/module/index.js +1 -0
  116. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  117. package/dist/types/CallHistory/constants.d.ts +6 -0
  118. package/dist/types/CallHistory/constants.d.ts.map +1 -1
  119. package/dist/types/CallSettings/CallSettings.d.ts.map +1 -1
  120. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  121. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  122. package/dist/types/CallSettings/constants.d.ts +12 -0
  123. package/dist/types/CallSettings/constants.d.ts.map +1 -1
  124. package/dist/types/CallingClient/CallingClient.d.ts +2 -3
  125. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  126. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  127. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  128. package/dist/types/CallingClient/constants.d.ts +102 -2
  129. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  130. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  131. package/dist/types/CallingClient/registration/register.d.ts +3 -1
  132. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  133. package/dist/types/CallingClient/registration/types.d.ts +1 -0
  134. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  135. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  136. package/dist/types/Contacts/constants.d.ts +10 -0
  137. package/dist/types/Contacts/constants.d.ts.map +1 -1
  138. package/dist/types/Errors/types.d.ts +2 -0
  139. package/dist/types/Errors/types.d.ts.map +1 -1
  140. package/dist/types/Metrics/index.d.ts +1 -1
  141. package/dist/types/Metrics/index.d.ts.map +1 -1
  142. package/dist/types/Metrics/types.d.ts +7 -2
  143. package/dist/types/Metrics/types.d.ts.map +1 -1
  144. package/dist/types/SDKConnector/types.d.ts +11 -2
  145. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  146. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  147. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  148. package/dist/types/Voicemail/Voicemail.d.ts +1 -1
  149. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
  150. package/dist/types/Voicemail/WxCallBackendConnector.d.ts +3 -1
  151. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  152. package/dist/types/Voicemail/constants.d.ts +21 -0
  153. package/dist/types/Voicemail/constants.d.ts.map +1 -1
  154. package/dist/types/Voicemail/types.d.ts +1 -1
  155. package/dist/types/Voicemail/types.d.ts.map +1 -1
  156. package/dist/types/common/Utils.d.ts +4 -4
  157. package/dist/types/common/Utils.d.ts.map +1 -1
  158. package/dist/types/common/constants.d.ts +1 -0
  159. package/dist/types/common/constants.d.ts.map +1 -1
  160. package/dist/types/common/testUtil.d.ts +3 -0
  161. package/dist/types/common/testUtil.d.ts.map +1 -1
  162. package/dist/types/common/types.d.ts +12 -0
  163. package/dist/types/common/types.d.ts.map +1 -1
  164. package/dist/types/index.d.ts +2 -0
  165. package/dist/types/index.d.ts.map +1 -1
  166. package/package.json +4 -3
@@ -1 +1 @@
1
- {"version":3,"names":["_SDKConnector","_interopRequireDefault","require","_types","_Logger","_Utils","_WxCallBackendConnector","_BroadworksBackendConnector","_impl","_UcmBackendConnector","_types2","_Metrics","_constants","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","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","response","backendConnector","CALLING_BACKEND","WXC","WxCallBackendConnector","BWRKS","BroadworksBackendConnector","UCM","UcmBackendConnector","Error","submitMetric","metricAction","messageId","statusCode","errorMessage","data","error","submitVoicemailMetric","METRIC_EVENT","VOICEMAIL","METRIC_TYPE","BEHAVIORAL","VOICEMAIL_ERROR","_getVoicemailList","_asyncToGenerator2","_regenerator","mark","_callee","offset","offsetLimit","sort","refresh","wrap","_callee$","_context","prev","next","getVoicemailList","sent","VOICEMAIL_ACTION","GET_VOICEMAILS","abrupt","stop","_x","_x2","_x3","_x4","_getVoicemailContent","_callee2","_callee2$","_context2","getVoicemailContent","GET_VOICEMAIL_CONTENT","_x5","_getVoicemailSummary","_callee3","_callee3$","_context3","getVoicemailSummary","GET_VOICEMAIL_SUMMARY","_voicemailMarkAsRead","_callee4","_callee4$","_context4","voicemailMarkAsRead","MARK_READ","_x6","_voicemailMarkAsUnread","_callee5","_callee5$","_context5","voicemailMarkAsUnread","MARK_UNREAD","_x7","_deleteVoicemail","_callee6","_callee6$","_context6","deleteVoicemail","DELETE","_x8","_getVMTranscript","_callee7","_callee7$","_context7","getVMTranscript","TRANSCRIPT","_x9","resolveContact","callingPartyInfo","getSDKConnector","Eventing","createVoicemailClient"],"sources":["Voicemail.ts"],"sourcesContent":["/* eslint-disable dot-notation */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\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} 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} 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 init() {\n const response = this.backendConnector.init();\n\n return response;\n }\n\n /**\n * Setup and initialize the voicemail backend connector class object.\n */\n private initializeBackendConnector() {\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 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 return response;\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 const response = await this.backendConnector.getVoicemailContent(messageId);\n\n this.submitMetric(response, VOICEMAIL_ACTION.GET_VOICEMAIL_CONTENT, messageId);\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 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\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 const response = await this.backendConnector.voicemailMarkAsRead(messageId);\n\n this.submitMetric(response, VOICEMAIL_ACTION.MARK_READ, messageId);\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 const response = await this.backendConnector.voicemailMarkAsUnread(messageId);\n\n this.submitMetric(response, VOICEMAIL_ACTION.MARK_UNREAD, messageId);\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 const response = await this.backendConnector.deleteVoicemail(messageId);\n\n this.submitMetric(response, VOICEMAIL_ACTION.DELETE, messageId);\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 const response = await this.backendConnector.getVMTranscript(messageId);\n\n if (response !== null) {\n this.submitMetric(response, VOICEMAIL_ACTION.TRANSCRIPT, messageId);\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 return this.backendConnector.resolveContact(callingPartyInfo);\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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"}
1
+ {"version":3,"names":["_constants","require","_SDKConnector","_interopRequireDefault","_types","_Logger","_Utils","_WxCallBackendConnector","_BroadworksBackendConnector","_impl","_UcmBackendConnector","_types2","_Metrics","_constants2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","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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"}
@@ -15,8 +15,21 @@ var _BroadworksBackendConnector = require("./BroadworksBackendConnector");
15
15
  var _WxCallBackendConnector = require("./WxCallBackendConnector");
16
16
  var _types3 = require("../Metrics/types");
17
17
  var _voicemailFixture = require("./voicemailFixture");
18
+ var _Logger = _interopRequireDefault(require("../Logger"));
19
+ var _constants2 = require("./constants");
18
20
  describe('Voicemail Client tests', function () {
19
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
+ });
20
33
  describe('createVoicemailClient tests', function () {
21
34
  /**
22
35
  * TestCase inputs
@@ -76,7 +89,7 @@ describe('Voicemail Client tests', function () {
76
89
  }
77
90
  }];
78
91
  if (!data.valid) {
79
- _context.next = 23;
92
+ _context.next = 27;
80
93
  break;
81
94
  }
82
95
  voicemailClient = (0, _Voicemail.createVoicemailClient)(webex, {
@@ -94,14 +107,30 @@ describe('Voicemail Client tests', function () {
94
107
  expect(voicemailClient.getSDKConnector().getWebex()).toBeTruthy();
95
108
  expect(connectorResponse).toBeTruthy();
96
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
+ });
97
126
  _context.t0 = data.callingBehavior;
98
- _context.next = _context.t0 === _constants.NATIVE_SIP_CALL_TO_UCM ? 15 : _context.t0 === _constants.NATIVE_WEBEX_TEAMS_CALLING ? 18 : 20;
127
+ _context.next = _context.t0 === _constants.NATIVE_SIP_CALL_TO_UCM ? 19 : _context.t0 === _constants.NATIVE_WEBEX_TEAMS_CALLING ? 22 : 24;
99
128
  break;
100
- case 15:
129
+ case 19:
101
130
  expect(voicemailClient['callingBackend']).toStrictEqual(_types2.CALLING_BACKEND.UCM);
102
131
  expect(voicemailClient['backendConnector']).toBeInstanceOf(_UcmBackendConnector.UcmBackendConnector);
103
- return _context.abrupt("break", 21);
104
- case 18:
132
+ return _context.abrupt("break", 25);
133
+ case 22:
105
134
  if (data.entitlement === _constants.ENTITLEMENT_BROADWORKS_CONN) {
106
135
  expect(voicemailClient['callingBackend']).toStrictEqual(_types2.CALLING_BACKEND.BWRKS);
107
136
  expect(voicemailClient['backendConnector']).toBeInstanceOf(_BroadworksBackendConnector.BroadworksBackendConnector);
@@ -110,19 +139,19 @@ describe('Voicemail Client tests', function () {
110
139
  expect(voicemailClient['callingBackend']).toStrictEqual(_types2.CALLING_BACKEND.WXC);
111
140
  expect(voicemailClient['backendConnector']).toBeInstanceOf(_WxCallBackendConnector.WxCallBackendConnector);
112
141
  }
113
- return _context.abrupt("break", 21);
114
- case 20:
142
+ return _context.abrupt("break", 25);
143
+ case 24:
115
144
  fail('Unknown calling backend type.');
116
- case 21:
117
- _context.next = 24;
145
+ case 25:
146
+ _context.next = 28;
118
147
  break;
119
- case 23:
148
+ case 27:
120
149
  expect(function () {
121
150
  (0, _Voicemail.createVoicemailClient)(webex, {
122
151
  level: _types.LOGGER.INFO
123
152
  });
124
153
  }).toThrowError('Calling backend is not identified, exiting....');
125
- case 24:
154
+ case 28:
126
155
  case "end":
127
156
  return _context.stop();
128
157
  }
@@ -157,25 +186,25 @@ describe('Voicemail Client tests', function () {
157
186
  };
158
187
  var testData = [{
159
188
  metricAction: _types3.VOICEMAIL_ACTION.GET_VOICEMAILS,
160
- method: voicemailClient.getVoicemailList.name
189
+ method: 'getVoicemailList'
161
190
  }, {
162
191
  metricAction: _types3.VOICEMAIL_ACTION.GET_VOICEMAIL_CONTENT,
163
- method: voicemailClient.getVoicemailContent.name
192
+ method: 'getVoicemailContent'
164
193
  }, {
165
194
  metricAction: _types3.VOICEMAIL_ACTION.MARK_READ,
166
- method: voicemailClient.voicemailMarkAsRead.name
195
+ method: 'voicemailMarkAsRead'
167
196
  }, {
168
197
  metricAction: _types3.VOICEMAIL_ACTION.MARK_UNREAD,
169
- method: voicemailClient.voicemailMarkAsUnread.name
198
+ method: 'voicemailMarkAsUnread'
170
199
  }, {
171
200
  metricAction: _types3.VOICEMAIL_ACTION.DELETE,
172
- method: voicemailClient.deleteVoicemail.name
201
+ method: 'deleteVoicemail'
173
202
  }, {
174
203
  metricAction: _types3.VOICEMAIL_ACTION.TRANSCRIPT,
175
- method: voicemailClient.getVMTranscript.name
204
+ method: 'getVMTranscript'
176
205
  }, {
177
206
  metricAction: _types3.VOICEMAIL_ACTION.GET_VOICEMAIL_SUMMARY,
178
- method: voicemailClient.getVoicemailSummary.name
207
+ method: 'getVoicemailSummary'
179
208
  }].map(function (stat) {
180
209
  return (0, _assign.default)(stat, {
181
210
  toString: function toString() {
@@ -199,7 +228,74 @@ describe('Voicemail Client tests', function () {
199
228
  _context2.next = 5;
200
229
  return voicemailClient[data.method].apply(voicemailClient, args);
201
230
  case 5:
202
- expect(metricSpy).toBeCalledOnceWith(_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);
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);
203
299
  metricSpy.mockClear();
204
300
  errorMessage = 'User is unauthorised';
205
301
  errorCode = 401;
@@ -207,11 +303,80 @@ describe('Voicemail Client tests', function () {
207
303
  response.data = {
208
304
  error: errorMessage
209
305
  };
210
- _context2.next = 13;
306
+ infoSpy.mockClear();
307
+ logSpy.mockClear();
308
+ errorSpy.mockClear();
309
+ _context2.next = 18;
211
310
  return voicemailClient[data.method].apply(voicemailClient, args);
212
- case 13:
213
- expect(metricSpy).toBeCalledOnceWith(_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);
214
- case 14:
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:
215
380
  case "end":
216
381
  return _context2.stop();
217
382
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_testUtil","require","_Voicemail","_types","_constants","_types2","_UcmBackendConnector","_BroadworksBackendConnector","_WxCallBackendConnector","_types3","_voicemailFixture","describe","webex","getTestUtilsWebex","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","jest","fn","_promise","resolve","resolveContact","resolveContactArgs","expect","toBeTruthy","getSDKConnector","getWebex","t0","toStrictEqual","CALLING_BACKEND","UCM","toBeInstanceOf","UcmBackendConnector","abrupt","BWRKS","BroadworksBackendConnector","WXC","WxCallBackendConnector","fail","toThrowError","stop","_x","apply","arguments","messageId","metricSpy","spyOn","getVoicemailList","getVoicemailContent","getVoicemailSummary","voicemailMarkAsRead","voicemailMarkAsUnread","deleteVoicemail","getVMTranscript","metricAction","VOICEMAIL_ACTION","GET_VOICEMAILS","method","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","toBeCalledOnceWith","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 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';\n\ndescribe('Voicemail Client tests', () => {\n const webex = getTestUtilsWebex();\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 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: voicemailClient.getVoicemailList.name,\n },\n {\n metricAction: VOICEMAIL_ACTION.GET_VOICEMAIL_CONTENT,\n method: voicemailClient.getVoicemailContent.name,\n },\n {\n metricAction: VOICEMAIL_ACTION.MARK_READ,\n method: voicemailClient.voicemailMarkAsRead.name,\n },\n {\n metricAction: VOICEMAIL_ACTION.MARK_UNREAD,\n method: voicemailClient.voicemailMarkAsUnread.name,\n },\n {\n metricAction: VOICEMAIL_ACTION.DELETE,\n method: voicemailClient.deleteVoicemail.name,\n },\n {\n metricAction: VOICEMAIL_ACTION.TRANSCRIPT,\n method: voicemailClient.getVMTranscript.name,\n },\n {\n metricAction: VOICEMAIL_ACTION.GET_VOICEMAIL_SUMMARY,\n method: voicemailClient.getVoicemailSummary.name,\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 expect(metricSpy).toBeCalledOnceWith(\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 await voicemailClient[data.method](...args);\n\n expect(metricSpy).toBeCalledOnceWith(\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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"}
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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"}