@webex/calling 3.10.0 → 3.11.0-next.10

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 (158) hide show
  1. package/dist/CallHistory/CallHistory.js +128 -133
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +289 -186
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallSettings/CallSettings.js +17 -18
  6. package/dist/CallSettings/CallSettings.js.map +1 -1
  7. package/dist/CallSettings/CallSettings.test.js +14 -14
  8. package/dist/CallSettings/CallSettings.test.js.map +1 -1
  9. package/dist/CallSettings/UcmBackendConnector.js +72 -25
  10. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  11. package/dist/CallSettings/UcmBackendConnector.test.js +138 -48
  12. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  13. package/dist/CallSettings/WxCallBackendConnector.js +138 -145
  14. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  15. package/dist/CallSettings/WxCallBackendConnector.test.js +149 -150
  16. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  17. package/dist/CallingClient/CallingClient.js +407 -359
  18. package/dist/CallingClient/CallingClient.js.map +1 -1
  19. package/dist/CallingClient/CallingClient.test.js +378 -401
  20. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  21. package/dist/CallingClient/calling/CallerId/index.js +7 -8
  22. package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
  23. package/dist/CallingClient/calling/CallerId/index.test.js +24 -24
  24. package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -1
  25. package/dist/CallingClient/calling/call.js +666 -624
  26. package/dist/CallingClient/calling/call.js.map +1 -1
  27. package/dist/CallingClient/calling/call.test.js +908 -556
  28. package/dist/CallingClient/calling/call.test.js.map +1 -1
  29. package/dist/CallingClient/calling/callManager.js +22 -18
  30. package/dist/CallingClient/calling/callManager.js.map +1 -1
  31. package/dist/CallingClient/calling/callManager.test.js +114 -114
  32. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  33. package/dist/CallingClient/constants.js +7 -1
  34. package/dist/CallingClient/constants.js.map +1 -1
  35. package/dist/CallingClient/line/index.js +57 -74
  36. package/dist/CallingClient/line/index.js.map +1 -1
  37. package/dist/CallingClient/line/line.test.js +22 -22
  38. package/dist/CallingClient/line/line.test.js.map +1 -1
  39. package/dist/CallingClient/registration/register.js +675 -527
  40. package/dist/CallingClient/registration/register.js.map +1 -1
  41. package/dist/CallingClient/registration/register.test.js +657 -309
  42. package/dist/CallingClient/registration/register.test.js.map +1 -1
  43. package/dist/CallingClient/registration/types.js.map +1 -1
  44. package/dist/CallingClient/registration/webWorker.js +24 -24
  45. package/dist/CallingClient/registration/webWorker.js.map +1 -1
  46. package/dist/CallingClient/registration/webWorker.test.js +20 -20
  47. package/dist/CallingClient/registration/webWorker.test.js.map +1 -1
  48. package/dist/CallingClient/registration/webWorkerStr.js +1 -1
  49. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
  50. package/dist/CallingClient/types.js.map +1 -1
  51. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +28 -28
  52. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +1 -1
  53. package/dist/Contacts/ContactsClient.js +259 -268
  54. package/dist/Contacts/ContactsClient.js.map +1 -1
  55. package/dist/Contacts/ContactsClient.test.js +64 -63
  56. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  57. package/dist/Errors/catalog/CallError.js +7 -10
  58. package/dist/Errors/catalog/CallError.js.map +1 -1
  59. package/dist/Errors/catalog/CallingDeviceError.js +6 -9
  60. package/dist/Errors/catalog/CallingDeviceError.js.map +1 -1
  61. package/dist/Errors/catalog/ExtendedError.js +6 -8
  62. package/dist/Errors/catalog/ExtendedError.js.map +1 -1
  63. package/dist/Errors/catalog/LineError.js +6 -9
  64. package/dist/Errors/catalog/LineError.js.map +1 -1
  65. package/dist/Events/impl/index.js +12 -14
  66. package/dist/Events/impl/index.js.map +1 -1
  67. package/dist/Logger/index.js +3 -3
  68. package/dist/Logger/index.js.map +1 -1
  69. package/dist/Logger/index.test.js +1 -1
  70. package/dist/Logger/index.test.js.map +1 -1
  71. package/dist/Metrics/index.js +1 -2
  72. package/dist/Metrics/index.js.map +1 -1
  73. package/dist/SDKConnector/index.js +1 -2
  74. package/dist/SDKConnector/index.js.map +1 -1
  75. package/dist/SDKConnector/types.js.map +1 -1
  76. package/dist/Voicemail/BroadworksBackendConnector.js +131 -139
  77. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  78. package/dist/Voicemail/BroadworksBackendConnector.test.js +106 -98
  79. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  80. package/dist/Voicemail/UcmBackendConnector.js +88 -92
  81. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  82. package/dist/Voicemail/UcmBackendConnector.test.js +72 -72
  83. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  84. package/dist/Voicemail/Voicemail.js +103 -131
  85. package/dist/Voicemail/Voicemail.js.map +1 -1
  86. package/dist/Voicemail/Voicemail.test.js +20 -20
  87. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  88. package/dist/Voicemail/WxCallBackendConnector.js +117 -131
  89. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  90. package/dist/Voicemail/WxCallBackendConnector.test.js +180 -154
  91. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  92. package/dist/common/Utils.js +198 -166
  93. package/dist/common/Utils.js.map +1 -1
  94. package/dist/common/Utils.test.js +436 -191
  95. package/dist/common/Utils.test.js.map +1 -1
  96. package/dist/common/constants.js +3 -1
  97. package/dist/common/constants.js.map +1 -1
  98. package/dist/common/testUtil.js +5 -4
  99. package/dist/common/testUtil.js.map +1 -1
  100. package/dist/common/types.js.map +1 -1
  101. package/dist/module/CallHistory/CallHistory.js +20 -11
  102. package/dist/module/CallSettings/UcmBackendConnector.js +21 -8
  103. package/dist/module/CallSettings/WxCallBackendConnector.js +10 -15
  104. package/dist/module/CallingClient/CallingClient.js +125 -123
  105. package/dist/module/CallingClient/calling/call.js +76 -60
  106. package/dist/module/CallingClient/calling/callManager.js +7 -0
  107. package/dist/module/CallingClient/constants.js +5 -0
  108. package/dist/module/CallingClient/registration/register.js +93 -5
  109. package/dist/module/CallingClient/registration/webWorker.js +2 -2
  110. package/dist/module/CallingClient/registration/webWorkerStr.js +2 -2
  111. package/dist/module/Contacts/ContactsClient.js +19 -25
  112. package/dist/module/Events/impl/index.js +1 -1
  113. package/dist/module/Logger/index.js +2 -2
  114. package/dist/module/Voicemail/BroadworksBackendConnector.js +10 -18
  115. package/dist/module/Voicemail/UcmBackendConnector.js +7 -11
  116. package/dist/module/Voicemail/Voicemail.js +42 -68
  117. package/dist/module/Voicemail/WxCallBackendConnector.js +14 -28
  118. package/dist/module/common/Utils.js +31 -5
  119. package/dist/module/common/constants.js +2 -0
  120. package/dist/module/common/testUtil.js +1 -0
  121. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  122. package/dist/types/CallSettings/UcmBackendConnector.d.ts +1 -0
  123. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  124. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  125. package/dist/types/CallingClient/CallingClient.d.ts +2 -1
  126. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  127. package/dist/types/CallingClient/calling/call.d.ts +4 -0
  128. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  129. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  130. package/dist/types/CallingClient/constants.d.ts +5 -0
  131. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  132. package/dist/types/CallingClient/registration/register.d.ts +6 -1
  133. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  134. package/dist/types/CallingClient/registration/types.d.ts +8 -1
  135. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  136. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
  137. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
  138. package/dist/types/CallingClient/types.d.ts +2 -1
  139. package/dist/types/CallingClient/types.d.ts.map +1 -1
  140. package/dist/types/Contacts/ContactsClient.d.ts +1 -0
  141. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  142. package/dist/types/Logger/index.d.ts +1 -2
  143. package/dist/types/Logger/index.d.ts.map +1 -1
  144. package/dist/types/SDKConnector/types.d.ts +16 -0
  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.map +1 -1
  149. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  150. package/dist/types/common/Utils.d.ts +1 -1
  151. package/dist/types/common/Utils.d.ts.map +1 -1
  152. package/dist/types/common/constants.d.ts +2 -0
  153. package/dist/types/common/constants.d.ts.map +1 -1
  154. package/dist/types/common/testUtil.d.ts +1 -0
  155. package/dist/types/common/testUtil.d.ts.map +1 -1
  156. package/dist/types/common/types.d.ts +4 -0
  157. package/dist/types/common/types.d.ts.map +1 -1
  158. package/package.json +4 -4
@@ -78,8 +78,8 @@ describe('Voicemail Client tests', function () {
78
78
  });
79
79
  it.each(testData)('%s', /*#__PURE__*/function () {
80
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) {
81
+ var voicemailClient, connectorResponse, contactResponse, _t;
82
+ return _regenerator.default.wrap(function (_context) {
83
83
  while (1) switch (_context.prev = _context.next) {
84
84
  case 0:
85
85
  webex.internal.device.callingBehavior = data.callingBehavior;
@@ -89,7 +89,7 @@ describe('Voicemail Client tests', function () {
89
89
  }
90
90
  }];
91
91
  if (!data.valid) {
92
- _context.next = 27;
92
+ _context.next = 5;
93
93
  break;
94
94
  }
95
95
  voicemailClient = (0, _Voicemail.createVoicemailClient)(webex, {
@@ -123,14 +123,14 @@ describe('Voicemail Client tests', function () {
123
123
  file: 'VoicemailClient',
124
124
  method: _constants2.METHODS.RESOLVE_CONTACT
125
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;
126
+ _t = data.callingBehavior;
127
+ _context.next = _t === _constants.NATIVE_SIP_CALL_TO_UCM ? 1 : _t === _constants.NATIVE_WEBEX_TEAMS_CALLING ? 2 : 3;
128
128
  break;
129
- case 19:
129
+ case 1:
130
130
  expect(voicemailClient['callingBackend']).toStrictEqual(_types2.CALLING_BACKEND.UCM);
131
131
  expect(voicemailClient['backendConnector']).toBeInstanceOf(_UcmBackendConnector.UcmBackendConnector);
132
- return _context.abrupt("break", 25);
133
- case 22:
132
+ return _context.abrupt("continue", 4);
133
+ case 2:
134
134
  if (data.entitlement === _constants.ENTITLEMENT_BROADWORKS_CONN) {
135
135
  expect(voicemailClient['callingBackend']).toStrictEqual(_types2.CALLING_BACKEND.BWRKS);
136
136
  expect(voicemailClient['backendConnector']).toBeInstanceOf(_BroadworksBackendConnector.BroadworksBackendConnector);
@@ -139,19 +139,19 @@ describe('Voicemail Client tests', function () {
139
139
  expect(voicemailClient['callingBackend']).toStrictEqual(_types2.CALLING_BACKEND.WXC);
140
140
  expect(voicemailClient['backendConnector']).toBeInstanceOf(_WxCallBackendConnector.WxCallBackendConnector);
141
141
  }
142
- return _context.abrupt("break", 25);
143
- case 24:
142
+ return _context.abrupt("continue", 4);
143
+ case 3:
144
144
  fail('Unknown calling backend type.');
145
- case 25:
146
- _context.next = 28;
145
+ case 4:
146
+ _context.next = 6;
147
147
  break;
148
- case 27:
148
+ case 5:
149
149
  expect(function () {
150
150
  (0, _Voicemail.createVoicemailClient)(webex, {
151
151
  level: _types.LOGGER.INFO
152
152
  });
153
153
  }).toThrowError('Calling backend is not identified, exiting....');
154
- case 28:
154
+ case 6:
155
155
  case "end":
156
156
  return _context.stop();
157
157
  }
@@ -215,7 +215,7 @@ describe('Voicemail Client tests', function () {
215
215
  it.each(testData)('%s', /*#__PURE__*/function () {
216
216
  var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(data) {
217
217
  var response, args, errorMessage, errorCode;
218
- return _regenerator.default.wrap(function _callee2$(_context2) {
218
+ return _regenerator.default.wrap(function (_context2) {
219
219
  while (1) switch (_context2.prev = _context2.next) {
220
220
  case 0:
221
221
  response = {
@@ -225,9 +225,9 @@ describe('Voicemail Client tests', function () {
225
225
  };
226
226
  args = data.metricAction === _types3.VOICEMAIL_ACTION.GET_VOICEMAIL_SUMMARY && [] || data.metricAction === _types3.VOICEMAIL_ACTION.GET_VOICEMAILS ? [0, 0, _types2.SORT.ASC] : [messageId];
227
227
  voicemailClient['backendConnector'][data.method].mockResolvedValue(response);
228
- _context2.next = 5;
228
+ _context2.next = 1;
229
229
  return voicemailClient[data.method].apply(voicemailClient, args);
230
- case 5:
230
+ case 1:
231
231
  // Check logging for success case
232
232
  // Check for specific log messages based on method called
233
233
  if (data.method === 'getVoicemailList') {
@@ -306,9 +306,9 @@ describe('Voicemail Client tests', function () {
306
306
  infoSpy.mockClear();
307
307
  logSpy.mockClear();
308
308
  errorSpy.mockClear();
309
- _context2.next = 18;
309
+ _context2.next = 2;
310
310
  return voicemailClient[data.method].apply(voicemailClient, args);
311
- case 18:
311
+ case 2:
312
312
  // Check for error case logging with specific message checks
313
313
  if (data.method === 'getVoicemailList') {
314
314
  expect(infoSpy).toHaveBeenCalledWith(expect.stringContaining('invoking with: offset='), expect.objectContaining({
@@ -376,7 +376,7 @@ describe('Voicemail Client tests', function () {
376
376
  }
377
377
  expect(errorSpy).not.toHaveBeenCalled();
378
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:
379
+ case 3:
380
380
  case "end":
381
381
  return _context2.stop();
382
382
  }
@@ -1 +1 @@
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":[]}
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","_t","wrap","_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","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","_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":[]}