@webex/calling 3.5.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/CallHistory/CallHistory.js +195 -67
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +331 -108
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallHistory/callHistoryFixtures.js +25 -1
  6. package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
  7. package/dist/CallHistory/constants.js +4 -1
  8. package/dist/CallHistory/constants.js.map +1 -1
  9. package/dist/CallHistory/types.js.map +1 -1
  10. package/dist/CallingClient/CallingClient.js +2 -2
  11. package/dist/CallingClient/CallingClient.js.map +1 -1
  12. package/dist/CallingClient/CallingClient.test.js +1 -1
  13. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  14. package/dist/CallingClient/calling/CallerId/index.js +14 -5
  15. package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
  16. package/dist/CallingClient/calling/CallerId/index.test.js +6 -6
  17. package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -1
  18. package/dist/CallingClient/calling/call.js +434 -348
  19. package/dist/CallingClient/calling/call.js.map +1 -1
  20. package/dist/CallingClient/calling/call.test.js +516 -386
  21. package/dist/CallingClient/calling/call.test.js.map +1 -1
  22. package/dist/CallingClient/calling/callManager.js +6 -6
  23. package/dist/CallingClient/calling/callManager.js.map +1 -1
  24. package/dist/CallingClient/calling/callManager.test.js +3 -3
  25. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  26. package/dist/CallingClient/calling/types.js +6 -1
  27. package/dist/CallingClient/calling/types.js.map +1 -1
  28. package/dist/CallingClient/constants.js +2 -3
  29. package/dist/CallingClient/constants.js.map +1 -1
  30. package/dist/CallingClient/line/index.js +14 -7
  31. package/dist/CallingClient/line/index.js.map +1 -1
  32. package/dist/CallingClient/line/line.test.js +84 -22
  33. package/dist/CallingClient/line/line.test.js.map +1 -1
  34. package/dist/CallingClient/line/types.js.map +1 -1
  35. package/dist/CallingClient/registration/register.js +79 -59
  36. package/dist/CallingClient/registration/register.js.map +1 -1
  37. package/dist/CallingClient/registration/register.test.js +1 -1
  38. package/dist/CallingClient/registration/register.test.js.map +1 -1
  39. package/dist/CallingClient/types.js.map +1 -1
  40. package/dist/Events/types.js +2 -0
  41. package/dist/Events/types.js.map +1 -1
  42. package/dist/common/Utils.js +18 -13
  43. package/dist/common/Utils.js.map +1 -1
  44. package/dist/common/Utils.test.js +97 -0
  45. package/dist/common/Utils.test.js.map +1 -1
  46. package/dist/common/constants.js +4 -3
  47. package/dist/common/constants.js.map +1 -1
  48. package/dist/common/types.js +1 -0
  49. package/dist/common/types.js.map +1 -1
  50. package/dist/module/CallHistory/CallHistory.js +64 -2
  51. package/dist/module/CallHistory/callHistoryFixtures.js +24 -0
  52. package/dist/module/CallHistory/constants.js +3 -0
  53. package/dist/module/CallingClient/CallingClient.js +1 -1
  54. package/dist/module/CallingClient/calling/CallerId/index.js +6 -6
  55. package/dist/module/CallingClient/calling/call.js +66 -22
  56. package/dist/module/CallingClient/calling/callManager.js +5 -5
  57. package/dist/module/CallingClient/calling/types.js +5 -0
  58. package/dist/module/CallingClient/constants.js +1 -2
  59. package/dist/module/CallingClient/line/index.js +14 -8
  60. package/dist/module/CallingClient/registration/register.js +12 -4
  61. package/dist/module/Events/types.js +2 -0
  62. package/dist/module/common/Utils.js +12 -5
  63. package/dist/module/common/constants.js +3 -2
  64. package/dist/module/common/types.js +1 -0
  65. package/dist/types/CallHistory/CallHistory.d.ts +4 -2
  66. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  67. package/dist/types/CallHistory/callHistoryFixtures.d.ts +6 -2
  68. package/dist/types/CallHistory/callHistoryFixtures.d.ts.map +1 -1
  69. package/dist/types/CallHistory/constants.d.ts +3 -0
  70. package/dist/types/CallHistory/constants.d.ts.map +1 -1
  71. package/dist/types/CallHistory/types.d.ts +9 -0
  72. package/dist/types/CallHistory/types.d.ts.map +1 -1
  73. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  74. package/dist/types/CallingClient/calling/CallerId/index.d.ts.map +1 -1
  75. package/dist/types/CallingClient/calling/call.d.ts +7 -5
  76. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  77. package/dist/types/CallingClient/calling/callManager.d.ts +1 -1
  78. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  79. package/dist/types/CallingClient/calling/types.d.ts +6 -2
  80. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  81. package/dist/types/CallingClient/constants.d.ts +1 -2
  82. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  83. package/dist/types/CallingClient/line/index.d.ts +3 -2
  84. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  85. package/dist/types/CallingClient/line/types.d.ts +1 -1
  86. package/dist/types/CallingClient/line/types.d.ts.map +1 -1
  87. package/dist/types/CallingClient/registration/register.d.ts +4 -2
  88. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  89. package/dist/types/CallingClient/types.d.ts +1 -0
  90. package/dist/types/CallingClient/types.d.ts.map +1 -1
  91. package/dist/types/Contacts/ContactsClient.d.ts +1 -1
  92. package/dist/types/Events/types.d.ts +15 -2
  93. package/dist/types/Events/types.d.ts.map +1 -1
  94. package/dist/types/Voicemail/UcmBackendConnector.d.ts +1 -1
  95. package/dist/types/Voicemail/WxCallBackendConnector.d.ts +1 -1
  96. package/dist/types/common/Utils.d.ts +2 -2
  97. package/dist/types/common/Utils.d.ts.map +1 -1
  98. package/dist/types/common/constants.d.ts +1 -0
  99. package/dist/types/common/constants.d.ts.map +1 -1
  100. package/dist/types/common/types.d.ts +2 -1
  101. package/dist/types/common/types.d.ts.map +1 -1
  102. package/package.json +3 -3
@@ -171,6 +171,26 @@ describe('Call history tests', function () {
171
171
  }
172
172
  }, _callee5);
173
173
  })));
174
+ it('verify the user sessions deleted event for deleting the call history records', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
175
+ return _regenerator.default.wrap(function _callee6$(_context6) {
176
+ while (1) switch (_context6.prev = _context6.next) {
177
+ case 0:
178
+ _context6.next = 2;
179
+ return new _promise.default(function (resolve) {
180
+ callHistory.on(_types3.COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSIONS_DELETED, function (event) {
181
+ expect(event.data).toEqual(_callHistoryFixtures.MOCK_SESSION_EVENT_DELETED.data);
182
+ resolve();
183
+ });
184
+ expect(mockOn.mock.calls[3][0]).toEqual(_types3.MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_DELETED);
185
+ var callSessionCallback = mockOn.mock.calls[3][1];
186
+ callSessionCallback(_callHistoryFixtures.MOCK_SESSION_EVENT_DELETED);
187
+ });
188
+ case 2:
189
+ case "end":
190
+ return _context6.stop();
191
+ }
192
+ }, _callee6);
193
+ })));
174
194
  });
175
195
  describe('Update missed calls test', function () {
176
196
  var methodDetails = {
@@ -180,9 +200,9 @@ describe('Call history tests', function () {
180
200
  afterEach(function () {
181
201
  jest.clearAllMocks();
182
202
  });
183
- beforeEach( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
184
- return _regenerator.default.wrap(function _callee6$(_context6) {
185
- while (1) switch (_context6.prev = _context6.next) {
203
+ beforeEach( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
204
+ return _regenerator.default.wrap(function _callee7$(_context7) {
205
+ while (1) switch (_context7.prev = _context7.next) {
186
206
  case 0:
187
207
  serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');
188
208
  global.fetch = jest.fn(function () {
@@ -196,23 +216,23 @@ describe('Call history tests', function () {
196
216
  });
197
217
  case 2:
198
218
  case "end":
199
- return _context6.stop();
219
+ return _context7.stop();
200
220
  }
201
- }, _callee6);
221
+ }, _callee7);
202
222
  })));
203
- it('successfully updates missed calls', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
223
+ it('successfully updates missed calls', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
204
224
  var endTimeSessionIds, response, convertedEndTimeSessionIds;
205
- return _regenerator.default.wrap(function _callee7$(_context7) {
206
- while (1) switch (_context7.prev = _context7.next) {
225
+ return _regenerator.default.wrap(function _callee8$(_context8) {
226
+ while (1) switch (_context8.prev = _context8.next) {
207
227
  case 0:
208
228
  endTimeSessionIds = [{
209
229
  endTime: '1234568',
210
230
  sessionId: '123'
211
231
  }];
212
- _context7.next = 3;
232
+ _context8.next = 3;
213
233
  return callHistory.updateMissedCalls(endTimeSessionIds);
214
234
  case 3:
215
- response = _context7.sent;
235
+ response = _context8.sent;
216
236
  convertedEndTimeSessionIds = endTimeSessionIds.map(function (session) {
217
237
  return _objectSpread(_objectSpread({}, session), {}, {
218
238
  endTime: new Date(session.endTime).getTime()
@@ -220,35 +240,35 @@ describe('Call history tests', function () {
220
240
  });
221
241
  expect(response.statusCode).toEqual(200);
222
242
  expect(response).toEqual(_callHistoryFixtures.MOCK_UPDATE_MISSED_CALL_RESPONSE);
223
- _context7.t0 = expect(global.fetch);
224
- _context7.t1 = _callHistoryFixtures.janusSetReadStateUrl;
225
- _context7.t2 = _types2.HTTP_METHODS.POST;
226
- _context7.t3 = _defineProperty2.default;
227
- _context7.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
228
- _context7.next = 14;
243
+ _context8.t0 = expect(global.fetch);
244
+ _context8.t1 = _callHistoryFixtures.janusSetReadStateUrl;
245
+ _context8.t2 = _types2.HTTP_METHODS.POST;
246
+ _context8.t3 = _defineProperty2.default;
247
+ _context8.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
248
+ _context8.next = 14;
229
249
  return webex.credentials.getUserToken();
230
250
  case 14:
231
- _context7.t5 = _context7.sent;
232
- _context7.t6 = (0, _context7.t3)(_context7.t4, "Authorization", _context7.t5);
233
- _context7.t7 = (0, _stringify.default)({
251
+ _context8.t5 = _context8.sent;
252
+ _context8.t6 = (0, _context8.t3)(_context8.t4, "Authorization", _context8.t5);
253
+ _context8.t7 = (0, _stringify.default)({
234
254
  endTimeSessionIds: convertedEndTimeSessionIds
235
255
  });
236
- _context7.t8 = {
237
- method: _context7.t2,
238
- headers: _context7.t6,
239
- body: _context7.t7
256
+ _context8.t8 = {
257
+ method: _context8.t2,
258
+ headers: _context8.t6,
259
+ body: _context8.t7
240
260
  };
241
- _context7.t0.toBeCalledOnceWith.call(_context7.t0, _context7.t1, _context7.t8);
261
+ _context8.t0.toBeCalledOnceWith.call(_context8.t0, _context8.t1, _context8.t8);
242
262
  case 19:
243
263
  case "end":
244
- return _context7.stop();
264
+ return _context8.stop();
245
265
  }
246
- }, _callee7);
266
+ }, _callee8);
247
267
  })));
248
- it('Error: updateMissedCalls throw 400 error', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
268
+ it('Error: updateMissedCalls throw 400 error', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
249
269
  var endTimeSessionIds, response, convertedEndTimeSessionIds;
250
- return _regenerator.default.wrap(function _callee8$(_context8) {
251
- while (1) switch (_context8.prev = _context8.next) {
270
+ return _regenerator.default.wrap(function _callee9$(_context9) {
271
+ while (1) switch (_context9.prev = _context9.next) {
252
272
  case 0:
253
273
  endTimeSessionIds = [];
254
274
  global.fetch = jest.fn(function () {
@@ -257,10 +277,10 @@ describe('Call history tests', function () {
257
277
  ok: false
258
278
  });
259
279
  });
260
- _context8.next = 4;
280
+ _context9.next = 4;
261
281
  return callHistory.updateMissedCalls(endTimeSessionIds);
262
282
  case 4:
263
- response = _context8.sent;
283
+ response = _context9.sent;
264
284
  convertedEndTimeSessionIds = endTimeSessionIds.map(function (session) {
265
285
  return _objectSpread(_objectSpread({}, session), {}, {
266
286
  endTime: new Date(session.endTime).getTime()
@@ -268,38 +288,38 @@ describe('Call history tests', function () {
268
288
  });
269
289
  expect(response).toStrictEqual(_callHistoryFixtures.ERROR_DETAILS_400);
270
290
  expect(response.statusCode).toBe(400);
271
- _context8.t0 = expect(global.fetch);
272
- _context8.t1 = _callHistoryFixtures.janusSetReadStateUrl;
273
- _context8.t2 = _types2.HTTP_METHODS.POST;
274
- _context8.t3 = _defineProperty2.default;
275
- _context8.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
276
- _context8.next = 15;
291
+ _context9.t0 = expect(global.fetch);
292
+ _context9.t1 = _callHistoryFixtures.janusSetReadStateUrl;
293
+ _context9.t2 = _types2.HTTP_METHODS.POST;
294
+ _context9.t3 = _defineProperty2.default;
295
+ _context9.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
296
+ _context9.next = 15;
277
297
  return webex.credentials.getUserToken();
278
298
  case 15:
279
- _context8.t5 = _context8.sent;
280
- _context8.t6 = (0, _context8.t3)(_context8.t4, "Authorization", _context8.t5);
281
- _context8.t7 = (0, _stringify.default)({
299
+ _context9.t5 = _context9.sent;
300
+ _context9.t6 = (0, _context9.t3)(_context9.t4, "Authorization", _context9.t5);
301
+ _context9.t7 = (0, _stringify.default)({
282
302
  endTimeSessionIds: convertedEndTimeSessionIds
283
303
  });
284
- _context8.t8 = {
285
- method: _context8.t2,
286
- headers: _context8.t6,
287
- body: _context8.t7
304
+ _context9.t8 = {
305
+ method: _context9.t2,
306
+ headers: _context9.t6,
307
+ body: _context9.t7
288
308
  };
289
- _context8.t0.toBeCalledOnceWith.call(_context8.t0, _context8.t1, _context8.t8);
309
+ _context9.t0.toBeCalledOnceWith.call(_context9.t0, _context9.t1, _context9.t8);
290
310
  expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith({
291
311
  statusCode: 400
292
312
  }, methodDetails);
293
313
  case 21:
294
314
  case "end":
295
- return _context8.stop();
315
+ return _context9.stop();
296
316
  }
297
- }, _callee8);
317
+ }, _callee9);
298
318
  })));
299
- it('Error: updateMissedCalls throw 401 error', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
319
+ it('Error: updateMissedCalls throw 401 error', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {
300
320
  var endTimeSessionIds, response, convertedEndTimeSessionIds;
301
- return _regenerator.default.wrap(function _callee9$(_context9) {
302
- while (1) switch (_context9.prev = _context9.next) {
321
+ return _regenerator.default.wrap(function _callee10$(_context10) {
322
+ while (1) switch (_context10.prev = _context10.next) {
303
323
  case 0:
304
324
  endTimeSessionIds = [];
305
325
  global.fetch = jest.fn(function () {
@@ -308,10 +328,10 @@ describe('Call history tests', function () {
308
328
  ok: false
309
329
  });
310
330
  });
311
- _context9.next = 4;
331
+ _context10.next = 4;
312
332
  return callHistory.updateMissedCalls(endTimeSessionIds);
313
333
  case 4:
314
- response = _context9.sent;
334
+ response = _context10.sent;
315
335
  convertedEndTimeSessionIds = endTimeSessionIds.map(function (session) {
316
336
  return _objectSpread(_objectSpread({}, session), {}, {
317
337
  endTime: new Date(session.endTime).getTime()
@@ -319,69 +339,69 @@ describe('Call history tests', function () {
319
339
  });
320
340
  expect(response).toStrictEqual(_callHistoryFixtures.ERROR_DETAILS_401);
321
341
  expect(response.statusCode).toBe(401);
322
- _context9.t0 = expect(global.fetch);
323
- _context9.t1 = _callHistoryFixtures.janusSetReadStateUrl;
324
- _context9.t2 = _types2.HTTP_METHODS.POST;
325
- _context9.t3 = _defineProperty2.default;
326
- _context9.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
327
- _context9.next = 15;
342
+ _context10.t0 = expect(global.fetch);
343
+ _context10.t1 = _callHistoryFixtures.janusSetReadStateUrl;
344
+ _context10.t2 = _types2.HTTP_METHODS.POST;
345
+ _context10.t3 = _defineProperty2.default;
346
+ _context10.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
347
+ _context10.next = 15;
328
348
  return webex.credentials.getUserToken();
329
349
  case 15:
330
- _context9.t5 = _context9.sent;
331
- _context9.t6 = (0, _context9.t3)(_context9.t4, "Authorization", _context9.t5);
332
- _context9.t7 = (0, _stringify.default)({
350
+ _context10.t5 = _context10.sent;
351
+ _context10.t6 = (0, _context10.t3)(_context10.t4, "Authorization", _context10.t5);
352
+ _context10.t7 = (0, _stringify.default)({
333
353
  endTimeSessionIds: convertedEndTimeSessionIds
334
354
  });
335
- _context9.t8 = {
336
- method: _context9.t2,
337
- headers: _context9.t6,
338
- body: _context9.t7
355
+ _context10.t8 = {
356
+ method: _context10.t2,
357
+ headers: _context10.t6,
358
+ body: _context10.t7
339
359
  };
340
- _context9.t0.toBeCalledOnceWith.call(_context9.t0, _context9.t1, _context9.t8);
360
+ _context10.t0.toBeCalledOnceWith.call(_context10.t0, _context10.t1, _context10.t8);
341
361
  expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith({
342
362
  statusCode: 401
343
363
  }, methodDetails);
344
364
  case 21:
345
365
  case "end":
346
- return _context9.stop();
366
+ return _context10.stop();
347
367
  }
348
- }, _callee9);
368
+ }, _callee10);
349
369
  })));
350
370
  });
351
371
  describe('fetchUCMLinesData test', function () {
352
- it('verify successful UCM lines API case', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {
372
+ it('verify successful UCM lines API case', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11() {
353
373
  var ucmLinesAPIPayload, response;
354
- return _regenerator.default.wrap(function _callee10$(_context10) {
355
- while (1) switch (_context10.prev = _context10.next) {
374
+ return _regenerator.default.wrap(function _callee11$(_context11) {
375
+ while (1) switch (_context11.prev = _context11.next) {
356
376
  case 0:
357
377
  ucmLinesAPIPayload = _callHistoryFixtures.MOCK_LINES_API_CALL_RESPONSE;
358
378
  webex.request.mockResolvedValue(ucmLinesAPIPayload);
359
- _context10.next = 4;
379
+ _context11.next = 4;
360
380
  return callHistory['fetchUCMLinesData']();
361
381
  case 4:
362
- response = _context10.sent;
382
+ response = _context11.sent;
363
383
  expect(response.statusCode).toBe(200);
364
384
  expect(response.message).toBe('SUCCESS');
365
385
  case 7:
366
386
  case "end":
367
- return _context10.stop();
387
+ return _context11.stop();
368
388
  }
369
- }, _callee10);
389
+ }, _callee11);
370
390
  })));
371
- it('verify bad request failed UCM lines API case', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11() {
391
+ it('verify bad request failed UCM lines API case', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() {
372
392
  var failurePayload, ucmLinesAPIPayload, response;
373
- return _regenerator.default.wrap(function _callee11$(_context11) {
374
- while (1) switch (_context11.prev = _context11.next) {
393
+ return _regenerator.default.wrap(function _callee12$(_context12) {
394
+ while (1) switch (_context12.prev = _context12.next) {
375
395
  case 0:
376
396
  failurePayload = {
377
397
  statusCode: 400
378
398
  };
379
399
  ucmLinesAPIPayload = failurePayload;
380
400
  webex.request.mockRejectedValue(ucmLinesAPIPayload);
381
- _context11.next = 5;
401
+ _context12.next = 5;
382
402
  return callHistory['fetchUCMLinesData']();
383
403
  case 5:
384
- response = _context11.sent;
404
+ response = _context12.sent;
385
405
  expect(response).toStrictEqual(_callHistoryFixtures.ERROR_DETAILS_400);
386
406
  expect(response.data.error).toEqual(_callHistoryFixtures.ERROR_DETAILS_400.data.error);
387
407
  expect(response.statusCode).toBe(400);
@@ -394,14 +414,14 @@ describe('Call history tests', function () {
394
414
  });
395
415
  case 11:
396
416
  case "end":
397
- return _context11.stop();
417
+ return _context12.stop();
398
418
  }
399
- }, _callee11);
419
+ }, _callee12);
400
420
  })));
401
- it('should call fetchUCMLinesData when calling backend is UCM and userSessions contain valid cucmDN', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() {
421
+ it('should call fetchUCMLinesData when calling backend is UCM and userSessions contain valid cucmDN', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13() {
402
422
  var fetchUCMLinesDataSpy, mockCallHistoryPayload, response;
403
- return _regenerator.default.wrap(function _callee12$(_context12) {
404
- while (1) switch (_context12.prev = _context12.next) {
423
+ return _regenerator.default.wrap(function _callee13$(_context13) {
424
+ while (1) switch (_context13.prev = _context13.next) {
405
425
  case 0:
406
426
  jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(_types2.CALLING_BACKEND.UCM);
407
427
  // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.
@@ -409,23 +429,23 @@ describe('Call history tests', function () {
409
429
  fetchUCMLinesDataSpy = jest.spyOn(callHistory, 'fetchUCMLinesData').mockResolvedValue(_callHistoryFixtures.MOCK_LINES_API_CALL_RESPONSE);
410
430
  mockCallHistoryPayload = _callHistoryFixtures.MOCK_CALL_HISTORY_WITH_UCM_LINE_NUMBER;
411
431
  webex.request.mockResolvedValue(mockCallHistoryPayload);
412
- _context12.next = 6;
432
+ _context13.next = 6;
413
433
  return callHistory.getCallHistoryData(7, 10, _types2.SORT.DEFAULT, _types2.SORT_BY.DEFAULT);
414
434
  case 6:
415
- response = _context12.sent;
435
+ response = _context13.sent;
416
436
  expect(fetchUCMLinesDataSpy).toHaveBeenCalledTimes(1);
417
437
  expect(response.statusCode).toBe(200);
418
438
  expect(response.data.userSessions && response.data.userSessions[0].self.ucmLineNumber).toEqual(1);
419
439
  case 10:
420
440
  case "end":
421
- return _context12.stop();
441
+ return _context13.stop();
422
442
  }
423
- }, _callee12);
443
+ }, _callee13);
424
444
  })));
425
- it('should fetchUCMLinesData but not assign ucmLineNumber when UCM backend has no line data', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13() {
445
+ it('should fetchUCMLinesData but not assign ucmLineNumber when UCM backend has no line data', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14() {
426
446
  var fetchUCMLinesDataSpy, mockCallHistoryPayload, response;
427
- return _regenerator.default.wrap(function _callee13$(_context13) {
428
- while (1) switch (_context13.prev = _context13.next) {
447
+ return _regenerator.default.wrap(function _callee14$(_context14) {
448
+ while (1) switch (_context14.prev = _context14.next) {
429
449
  case 0:
430
450
  jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(_types2.CALLING_BACKEND.UCM);
431
451
 
@@ -434,24 +454,24 @@ describe('Call history tests', function () {
434
454
  fetchUCMLinesDataSpy = jest.spyOn(callHistory, 'fetchUCMLinesData').mockResolvedValue(_callHistoryFixtures.MOCK_LINES_API_CALL_RESPONSE_WITH_NO_LINEDATA);
435
455
  mockCallHistoryPayload = _callHistoryFixtures.MOCK_CALL_HISTORY_WITHOUT_UCM_LINE_NUMBER;
436
456
  webex.request.mockResolvedValue(mockCallHistoryPayload);
437
- _context13.next = 6;
457
+ _context14.next = 6;
438
458
  return callHistory.getCallHistoryData(7, 10, _types2.SORT.DEFAULT, _types2.SORT_BY.DEFAULT);
439
459
  case 6:
440
- response = _context13.sent;
460
+ response = _context14.sent;
441
461
  expect(fetchUCMLinesDataSpy).toHaveBeenCalledTimes(1);
442
462
  expect(response.statusCode).toBe(200);
443
463
  expect(response.data.userSessions && response.data.userSessions[0].self.cucmDN).toBeDefined();
444
464
  expect(response.data.userSessions && response.data.userSessions[0].self.ucmLineNumber).toEqual(undefined);
445
465
  case 11:
446
466
  case "end":
447
- return _context13.stop();
467
+ return _context14.stop();
448
468
  }
449
- }, _callee13);
469
+ }, _callee14);
450
470
  })));
451
- it('should not call fetchUCMLinesData when calling backend is UCM but no valid cucmDN is present', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14() {
471
+ it('should not call fetchUCMLinesData when calling backend is UCM but no valid cucmDN is present', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() {
452
472
  var fetchUCMLinesDataSpy, callHistoryPayload;
453
- return _regenerator.default.wrap(function _callee14$(_context14) {
454
- while (1) switch (_context14.prev = _context14.next) {
473
+ return _regenerator.default.wrap(function _callee15$(_context15) {
474
+ while (1) switch (_context15.prev = _context15.next) {
455
475
  case 0:
456
476
  jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(_types2.CALLING_BACKEND.UCM);
457
477
  // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.
@@ -459,20 +479,20 @@ describe('Call history tests', function () {
459
479
  fetchUCMLinesDataSpy = jest.spyOn(callHistory, 'fetchUCMLinesData').mockResolvedValue({});
460
480
  callHistoryPayload = _callHistoryFixtures.mockCallHistoryBody;
461
481
  webex.request.mockResolvedValue(callHistoryPayload);
462
- _context14.next = 6;
482
+ _context15.next = 6;
463
483
  return callHistory.getCallHistoryData(7, 10, _types2.SORT.DEFAULT, _types2.SORT_BY.DEFAULT);
464
484
  case 6:
465
485
  expect(fetchUCMLinesDataSpy).not.toHaveBeenCalled();
466
486
  case 7:
467
487
  case "end":
468
- return _context14.stop();
488
+ return _context15.stop();
469
489
  }
470
- }, _callee14);
490
+ }, _callee15);
471
491
  })));
472
- it('should not call fetchUCMLinesData when calling backend is not UCM', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() {
492
+ it('should not call fetchUCMLinesData when calling backend is not UCM', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
473
493
  var fetchUCMLinesDataSpy, callHistoryPayload;
474
- return _regenerator.default.wrap(function _callee15$(_context15) {
475
- while (1) switch (_context15.prev = _context15.next) {
494
+ return _regenerator.default.wrap(function _callee16$(_context16) {
495
+ while (1) switch (_context16.prev = _context16.next) {
476
496
  case 0:
477
497
  jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(_types2.CALLING_BACKEND.WXC);
478
498
  // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.
@@ -480,15 +500,218 @@ describe('Call history tests', function () {
480
500
  fetchUCMLinesDataSpy = jest.spyOn(callHistory, 'fetchUCMLinesData').mockResolvedValue({});
481
501
  callHistoryPayload = _callHistoryFixtures.mockCallHistoryBody;
482
502
  webex.request.mockResolvedValue(callHistoryPayload);
483
- _context15.next = 6;
503
+ _context16.next = 6;
484
504
  return callHistory.getCallHistoryData(7, 10, _types2.SORT.DEFAULT, _types2.SORT_BY.DEFAULT);
485
505
  case 6:
486
506
  expect(fetchUCMLinesDataSpy).not.toHaveBeenCalled(); // Check that fetchUCMLinesData was not called
487
507
  case 7:
488
508
  case "end":
489
- return _context15.stop();
509
+ return _context16.stop();
490
510
  }
491
- }, _callee15);
511
+ }, _callee16);
512
+ })));
513
+ });
514
+ describe('Delete call history records test', function () {
515
+ var methodDetails = {
516
+ file: _constants.CALL_HISTORY_FILE,
517
+ method: 'deleteCallHistoryRecords'
518
+ };
519
+ afterEach(function () {
520
+ jest.clearAllMocks();
521
+ });
522
+ beforeEach( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17() {
523
+ return _regenerator.default.wrap(function _callee17$(_context17) {
524
+ while (1) switch (_context17.prev = _context17.next) {
525
+ case 0:
526
+ serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');
527
+ global.fetch = jest.fn(function () {
528
+ return _promise.default.resolve({
529
+ status: 200,
530
+ ok: true,
531
+ json: function json() {
532
+ return _promise.default.resolve(_callHistoryFixtures.MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE);
533
+ }
534
+ });
535
+ });
536
+ case 2:
537
+ case "end":
538
+ return _context17.stop();
539
+ }
540
+ }, _callee17);
541
+ })));
542
+ it('successfully deletes the call history records', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18() {
543
+ var deleteSessionIds, response, convertedEndTimeSessionIds;
544
+ return _regenerator.default.wrap(function _callee18$(_context18) {
545
+ while (1) switch (_context18.prev = _context18.next) {
546
+ case 0:
547
+ deleteSessionIds = [{
548
+ endTime: '2024-10-22T08:50:48.603Z',
549
+ sessionId: '123'
550
+ }];
551
+ _context18.next = 3;
552
+ return callHistory.deleteCallHistoryRecords(deleteSessionIds);
553
+ case 3:
554
+ response = _context18.sent;
555
+ convertedEndTimeSessionIds = deleteSessionIds.map(function (session) {
556
+ return _objectSpread(_objectSpread({}, session), {}, {
557
+ endTime: new Date(session.endTime).getTime()
558
+ });
559
+ });
560
+ expect(response.statusCode).toEqual(200);
561
+ expect(response).toEqual(_callHistoryFixtures.MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE);
562
+ _context18.t0 = expect(global.fetch);
563
+ _context18.t1 = _callHistoryFixtures.janusMarkAsDeletedUrl;
564
+ _context18.t2 = _types2.HTTP_METHODS.POST;
565
+ _context18.t3 = _defineProperty2.default;
566
+ _context18.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
567
+ _context18.next = 14;
568
+ return webex.credentials.getUserToken();
569
+ case 14:
570
+ _context18.t5 = _context18.sent;
571
+ _context18.t6 = (0, _context18.t3)(_context18.t4, "Authorization", _context18.t5);
572
+ _context18.t7 = (0, _stringify.default)({
573
+ deleteSessionIds: convertedEndTimeSessionIds
574
+ });
575
+ _context18.t8 = {
576
+ method: _context18.t2,
577
+ headers: _context18.t6,
578
+ body: _context18.t7
579
+ };
580
+ _context18.t0.toBeCalledOnceWith.call(_context18.t0, _context18.t1, _context18.t8);
581
+ case 19:
582
+ case "end":
583
+ return _context18.stop();
584
+ }
585
+ }, _callee18);
586
+ })));
587
+ it('Error: deleteCallHistoryRecords throw 400 error', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
588
+ var deleteSessionIds, response, convertedEndTimeSessionIds;
589
+ return _regenerator.default.wrap(function _callee19$(_context19) {
590
+ while (1) switch (_context19.prev = _context19.next) {
591
+ case 0:
592
+ deleteSessionIds = [];
593
+ global.fetch = jest.fn(function () {
594
+ return _promise.default.resolve({
595
+ status: 400,
596
+ ok: false
597
+ });
598
+ });
599
+ _context19.next = 4;
600
+ return callHistory.deleteCallHistoryRecords(deleteSessionIds);
601
+ case 4:
602
+ response = _context19.sent;
603
+ convertedEndTimeSessionIds = deleteSessionIds.map(function (session) {
604
+ return _objectSpread(_objectSpread({}, session), {}, {
605
+ endTime: new Date(session.endTime).getTime()
606
+ });
607
+ });
608
+ expect(response).toStrictEqual(_callHistoryFixtures.ERROR_DETAILS_400);
609
+ expect(response.statusCode).toBe(400);
610
+ _context19.t0 = expect(global.fetch);
611
+ _context19.t1 = _callHistoryFixtures.janusMarkAsDeletedUrl;
612
+ _context19.t2 = _types2.HTTP_METHODS.POST;
613
+ _context19.t3 = _defineProperty2.default;
614
+ _context19.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
615
+ _context19.next = 15;
616
+ return webex.credentials.getUserToken();
617
+ case 15:
618
+ _context19.t5 = _context19.sent;
619
+ _context19.t6 = (0, _context19.t3)(_context19.t4, "Authorization", _context19.t5);
620
+ _context19.t7 = (0, _stringify.default)({
621
+ deleteSessionIds: convertedEndTimeSessionIds
622
+ });
623
+ _context19.t8 = {
624
+ method: _context19.t2,
625
+ headers: _context19.t6,
626
+ body: _context19.t7
627
+ };
628
+ _context19.t0.toBeCalledOnceWith.call(_context19.t0, _context19.t1, _context19.t8);
629
+ expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith({
630
+ statusCode: 400
631
+ }, methodDetails);
632
+ case 21:
633
+ case "end":
634
+ return _context19.stop();
635
+ }
636
+ }, _callee19);
637
+ })));
638
+ it('Error: deleteCallHistoryRecords throw 401 error', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
639
+ var deleteSessionIds, response, convertedEndTimeSessionIds;
640
+ return _regenerator.default.wrap(function _callee20$(_context20) {
641
+ while (1) switch (_context20.prev = _context20.next) {
642
+ case 0:
643
+ deleteSessionIds = [];
644
+ global.fetch = jest.fn(function () {
645
+ return _promise.default.resolve({
646
+ status: 401,
647
+ ok: false
648
+ });
649
+ });
650
+ _context20.next = 4;
651
+ return callHistory.deleteCallHistoryRecords(deleteSessionIds);
652
+ case 4:
653
+ response = _context20.sent;
654
+ convertedEndTimeSessionIds = deleteSessionIds.map(function (session) {
655
+ return _objectSpread(_objectSpread({}, session), {}, {
656
+ endTime: new Date(session.endTime).getTime()
657
+ });
658
+ });
659
+ expect(response).toStrictEqual(_callHistoryFixtures.ERROR_DETAILS_401);
660
+ expect(response.statusCode).toBe(401);
661
+ _context20.t0 = expect(global.fetch);
662
+ _context20.t1 = _callHistoryFixtures.janusMarkAsDeletedUrl;
663
+ _context20.t2 = _types2.HTTP_METHODS.POST;
664
+ _context20.t3 = _defineProperty2.default;
665
+ _context20.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
666
+ _context20.next = 15;
667
+ return webex.credentials.getUserToken();
668
+ case 15:
669
+ _context20.t5 = _context20.sent;
670
+ _context20.t6 = (0, _context20.t3)(_context20.t4, "Authorization", _context20.t5);
671
+ _context20.t7 = (0, _stringify.default)({
672
+ deleteSessionIds: convertedEndTimeSessionIds
673
+ });
674
+ _context20.t8 = {
675
+ method: _context20.t2,
676
+ headers: _context20.t6,
677
+ body: _context20.t7
678
+ };
679
+ _context20.t0.toBeCalledOnceWith.call(_context20.t0, _context20.t1, _context20.t8);
680
+ expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith({
681
+ statusCode: 401
682
+ }, methodDetails);
683
+ case 21:
684
+ case "end":
685
+ return _context20.stop();
686
+ }
687
+ }, _callee20);
688
+ })));
689
+ it('handles invalid date formats gracefully', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21() {
690
+ var deleteSessionIds, response;
691
+ return _regenerator.default.wrap(function _callee21$(_context21) {
692
+ while (1) switch (_context21.prev = _context21.next) {
693
+ case 0:
694
+ deleteSessionIds = [{
695
+ endTime: 'invalid-date',
696
+ sessionId: '123'
697
+ }]; // Mock the response to be 400 and trigger an error in your function
698
+ global.fetch = jest.fn(function () {
699
+ return _promise.default.resolve({
700
+ status: 400,
701
+ ok: false
702
+ });
703
+ });
704
+ _context21.next = 4;
705
+ return callHistory.deleteCallHistoryRecords(deleteSessionIds);
706
+ case 4:
707
+ response = _context21.sent;
708
+ expect(response.statusCode).toBe(400);
709
+ expect(response).toEqual(_callHistoryFixtures.MOCK_DELETE_CALL_HISTORY_INVALID_DATE_RESPONSE);
710
+ case 7:
711
+ case "end":
712
+ return _context21.stop();
713
+ }
714
+ }, _callee21);
492
715
  })));
493
716
  });
494
717
  });