@webex/calling 3.10.0-next.8 → 3.10.0-wxc-disconnect.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/CallHistory/CallHistory.js +41 -42
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +5 -120
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallSettings/UcmBackendConnector.js +6 -6
  6. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  7. package/dist/CallSettings/UcmBackendConnector.test.js +1 -2
  8. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  9. package/dist/CallSettings/WxCallBackendConnector.js +43 -38
  10. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  11. package/dist/CallSettings/WxCallBackendConnector.test.js +1 -4
  12. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  13. package/dist/CallingClient/CallingClient.js +207 -161
  14. package/dist/CallingClient/CallingClient.js.map +1 -1
  15. package/dist/CallingClient/CallingClient.test.js +290 -152
  16. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  17. package/dist/CallingClient/calling/call.js +53 -50
  18. package/dist/CallingClient/calling/call.js.map +1 -1
  19. package/dist/CallingClient/calling/call.test.js +51 -93
  20. package/dist/CallingClient/calling/call.test.js.map +1 -1
  21. package/dist/CallingClient/calling/callManager.test.js +1 -1
  22. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  23. package/dist/CallingClient/registration/register.js +4 -5
  24. package/dist/CallingClient/registration/register.js.map +1 -1
  25. package/dist/CallingClient/registration/webWorker.js +3 -3
  26. package/dist/CallingClient/registration/webWorker.js.map +1 -1
  27. package/dist/CallingClient/registration/webWorkerStr.js +1 -1
  28. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
  29. package/dist/Contacts/ContactsClient.js +45 -39
  30. package/dist/Contacts/ContactsClient.js.map +1 -1
  31. package/dist/Contacts/ContactsClient.test.js +3 -4
  32. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  33. package/dist/Events/impl/index.js +1 -1
  34. package/dist/Events/impl/index.js.map +1 -1
  35. package/dist/Logger/index.js +3 -3
  36. package/dist/Logger/index.js.map +1 -1
  37. package/dist/Logger/index.test.js +1 -1
  38. package/dist/Logger/index.test.js.map +1 -1
  39. package/dist/SDKConnector/types.js.map +1 -1
  40. package/dist/Voicemail/BroadworksBackendConnector.js +54 -47
  41. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  42. package/dist/Voicemail/BroadworksBackendConnector.test.js +2 -10
  43. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  44. package/dist/Voicemail/UcmBackendConnector.js +32 -29
  45. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  46. package/dist/Voicemail/Voicemail.js +102 -77
  47. package/dist/Voicemail/Voicemail.js.map +1 -1
  48. package/dist/Voicemail/WxCallBackendConnector.js +59 -46
  49. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  50. package/dist/Voicemail/WxCallBackendConnector.test.js +18 -44
  51. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  52. package/dist/common/Utils.js +2 -2
  53. package/dist/common/Utils.js.map +1 -1
  54. package/dist/common/Utils.test.js +8 -4
  55. package/dist/common/Utils.test.js.map +1 -1
  56. package/dist/common/testUtil.js +1 -2
  57. package/dist/common/testUtil.js.map +1 -1
  58. package/dist/module/CallHistory/CallHistory.js +11 -20
  59. package/dist/module/CallSettings/UcmBackendConnector.js +2 -1
  60. package/dist/module/CallSettings/WxCallBackendConnector.js +15 -10
  61. package/dist/module/CallingClient/CallingClient.js +123 -83
  62. package/dist/module/CallingClient/calling/call.js +23 -17
  63. package/dist/module/CallingClient/registration/register.js +3 -3
  64. package/dist/module/CallingClient/registration/webWorker.js +2 -2
  65. package/dist/module/CallingClient/registration/webWorkerStr.js +2 -2
  66. package/dist/module/Contacts/ContactsClient.js +25 -19
  67. package/dist/module/Events/impl/index.js +1 -1
  68. package/dist/module/Logger/index.js +2 -2
  69. package/dist/module/Voicemail/BroadworksBackendConnector.js +18 -10
  70. package/dist/module/Voicemail/UcmBackendConnector.js +11 -7
  71. package/dist/module/Voicemail/Voicemail.js +68 -42
  72. package/dist/module/Voicemail/WxCallBackendConnector.js +28 -14
  73. package/dist/module/common/Utils.js +2 -2
  74. package/dist/module/common/testUtil.js +0 -1
  75. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  76. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  77. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  78. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  79. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  80. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  81. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
  82. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
  83. package/dist/types/Contacts/ContactsClient.d.ts +0 -1
  84. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  85. package/dist/types/Logger/index.d.ts +2 -1
  86. package/dist/types/Logger/index.d.ts.map +1 -1
  87. package/dist/types/SDKConnector/types.d.ts +0 -10
  88. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  89. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  90. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  91. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
  92. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  93. package/dist/types/common/Utils.d.ts.map +1 -1
  94. package/dist/types/common/testUtil.d.ts +0 -1
  95. package/dist/types/common/testUtil.d.ts.map +1 -1
  96. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_testUtil","_types2","_CallHistory","_callHistoryFixtures","_types3","_constants","utils","_interopRequireWildcard","_Logger","_interopRequireDefault","_constants2","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","webex","getTestUtilsWebex","serviceErrorCodeHandlerSpy","uploadLogsSpy","describe","callHistory","infoSpy","jest","spyOn","log","mockImplementation","logSpy","errorSpy","beforeAll","CallHistory","level","LOGGER","INFO","mockResolvedValue","it","_asyncToGenerator2","_regenerator","mark","_callee","callHistoryPayload","response","wrap","_callee$","_context","prev","next","mockCallHistoryBody","request","getCallHistoryData","SORT","DEFAULT","SORT_BY","sent","expect","statusCode","toBe","message","toHaveBeenCalled","not","toHaveBeenCalledWith","file","CALL_HISTORY_FILE","method","METHODS","GET_CALL_HISTORY_DATA","stringContaining","stop","_callee2","failurePayload","_callee2$","_context2","mockRejectedValue","ASC","START_TIME","concat","_stringify","toHaveBeenCalledTimes","_callee3","_callee3$","_context3","_callee4","responseDetails","_callee4$","_context4","sortedCallHistory","body","data","userSessions","toEqual","mockOn","internal","mercury","on","beforeEach","createCallHistoryClient","done","COMMON_EVENT_KEYS","CALL_HISTORY_USER_SESSION_INFO","event","MOCK_SESSION_EVENT","mock","calls","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","callSessionCallback","MOCK_SESSION_EVENT_LEGACY","CALL_SESSION_EVENT_LEGACY","_callee5","_callee5$","_context5","_promise","resolve","CALL_HISTORY_USER_VIEWED_SESSIONS","MOCK_SESSION_EVENT_VIEWED","CALL_SESSION_EVENT_VIEWED","_callee6","_callee6$","_context6","CALL_HISTORY_USER_SESSIONS_DELETED","MOCK_SESSION_EVENT_DELETED","CALL_SESSION_EVENT_DELETED","methodDetails","UPDATE_MISSED_CALLS","afterEach","clearAllMocks","_callee7","_callee7$","_context7","global","fetch","fn","status","ok","json","MOCK_UPDATE_MISSED_CALL_RESPONSE","_callee8","endTimeSessionIds","convertedEndTimeSessionIds","_callee8$","_context8","endTime","sessionId","updateMissedCalls","map","session","Date","getTime","t0","t1","janusSetReadStateUrl","t2","HTTP_METHODS","POST","t3","t4","CONTENT_TYPE","APPLICATION_JSON","credentials","getUserToken","t5","t6","t7","t8","headers","toBeCalledOnceWith","METHOD_START_MESSAGE","_callee9","_callee9$","_context9","toStrictEqual","ERROR_DETAILS_400","toBeCalledWith","_callee0","_callee0$","_context0","ERROR_DETAILS_401","_callee1","ucmLinesAPIPayload","_callee1$","_context1","MOCK_LINES_API_CALL_RESPONSE","FETCH_UCM_LINES_DATA","_callee10","_callee10$","_context10","error","_callee11","fetchUCMLinesDataSpy","mockCallHistoryPayload","_callee11$","_context11","mockReturnValue","CALLING_BACKEND","UCM","MOCK_CALL_HISTORY_WITH_UCM_LINE_NUMBER","self","ucmLineNumber","_callee12","_callee12$","_context12","MOCK_LINES_API_CALL_RESPONSE_WITH_NO_LINEDATA","MOCK_CALL_HISTORY_WITHOUT_UCM_LINE_NUMBER","cucmDN","toBeDefined","undefined","_callee13","_callee13$","_context13","_callee14","_callee14$","_context14","WXC","DELETE_CALL_HISTORY_RECORDS","_callee15","_callee15$","_context15","MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE","_callee16","deleteSessionIds","_callee16$","_context16","deleteCallHistoryRecords","janusMarkAsDeletedUrl","_callee17","_callee17$","_context17","_callee18","_callee18$","_context18","_callee19","_callee19$","_context19","MOCK_DELETE_CALL_HISTORY_INVALID_DATE_RESPONSE","webexRequestSpy","restoreAllMocks","_callee20","callArgs","_callee20$","_context20","uri","toContain","GET","service","_callee21","_callee21$","_context21","_callee22","_callee22$","_context22","BWRKS","_callee23","_callee23$","_context23","_callee24","_callee24$","_context24","toMatch"],"sources":["CallHistory.test.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable dot-notation */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport {LOGGER} from '../Logger/types';\nimport {getTestUtilsWebex} from '../common/testUtil';\nimport {CALLING_BACKEND, HTTP_METHODS, SORT, SORT_BY, WebexRequestPayload} from '../common/types';\nimport {CallHistory, createCallHistoryClient} from './CallHistory';\nimport {ICallHistory} from './types';\nimport {\n sortedCallHistory,\n mockCallHistoryBody,\n MOCK_SESSION_EVENT,\n MOCK_SESSION_EVENT_LEGACY,\n MOCK_SESSION_EVENT_VIEWED,\n MOCK_UPDATE_MISSED_CALL_RESPONSE,\n janusSetReadStateUrl,\n ERROR_DETAILS_401,\n ERROR_DETAILS_400,\n MOCK_LINES_API_CALL_RESPONSE,\n MOCK_LINES_API_CALL_RESPONSE_WITH_NO_LINEDATA,\n MOCK_CALL_HISTORY_WITH_UCM_LINE_NUMBER,\n MOCK_CALL_HISTORY_WITHOUT_UCM_LINE_NUMBER,\n MOCK_SESSION_EVENT_DELETED,\n MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE,\n janusMarkAsDeletedUrl,\n MOCK_DELETE_CALL_HISTORY_INVALID_DATE_RESPONSE,\n} from './callHistoryFixtures';\nimport {\n COMMON_EVENT_KEYS,\n CallSessionDeletedEvent,\n CallSessionEvent,\n CallSessionViewedEvent,\n MOBIUS_EVENT_KEYS,\n} from '../Events/types';\nimport {APPLICATION_JSON, CALL_HISTORY_FILE, CONTENT_TYPE, METHODS} from './constants';\nimport * as utils from '../common/Utils';\nimport log from '../Logger';\nimport {METHOD_START_MESSAGE} from '../common/constants';\n\nconst webex = getTestUtilsWebex();\nlet serviceErrorCodeHandlerSpy: jest.SpyInstance;\nlet uploadLogsSpy: jest.SpyInstance;\n\ndescribe('Call history tests', () => {\n let callHistory: ICallHistory;\n const infoSpy = jest.spyOn(log, 'info').mockImplementation();\n const logSpy = jest.spyOn(log, 'log').mockImplementation();\n const errorSpy = jest.spyOn(log, 'error').mockImplementation();\n\n beforeAll(() => {\n callHistory = new CallHistory(webex, {level: LOGGER.INFO});\n uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n });\n\n it('verify successful call history case', async () => {\n const callHistoryPayload = <WebexRequestPayload>(<unknown>mockCallHistoryBody);\n\n webex.request.mockResolvedValue(callHistoryPayload);\n const response = await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n expect(response.statusCode).toBe(200);\n expect(response.message).toBe('SUCCESS');\n\n // Verify logging behavior\n expect(infoSpy).toHaveBeenCalled();\n expect(logSpy).toHaveBeenCalled();\n expect(errorSpy).not.toHaveBeenCalled();\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with days=7, limit=10, sort=DESC, sortBy=endTime',\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining('Successfully retrieved call history data'),\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n expect(errorSpy).not.toHaveBeenCalled();\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n\n it('verify bad request failed call history case', async () => {\n const failurePayload = {\n statusCode: 400,\n };\n const callHistoryPayload = <WebexRequestPayload>(<unknown>failurePayload);\n\n webex.request.mockRejectedValue(callHistoryPayload);\n const response = await callHistory.getCallHistoryData(7, 2000, SORT.ASC, SORT_BY.START_TIME);\n\n expect(response.statusCode).toBe(400);\n expect(response.message).toBe('FAILURE');\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with days=7, limit=2000, sort=ASC, sortBy=startTime',\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n expect(errorSpy).toHaveBeenCalledWith(\n `Failed to get call history: ${JSON.stringify(failurePayload)}`,\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.GET_CALL_HISTORY_DATA,\n }\n );\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('verify device not found call history case', async () => {\n const failurePayload = {\n statusCode: 404,\n };\n const callHistoryPayload = <WebexRequestPayload>(<unknown>failurePayload);\n\n webex.request.mockRejectedValue(callHistoryPayload);\n const response = await callHistory.getCallHistoryData(0, 0, SORT.ASC, SORT_BY.START_TIME);\n\n expect(response.statusCode).toBe(404);\n expect(response.message).toBe('FAILURE');\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with days=0, limit=0, sort=ASC, sortBy=startTime',\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n expect(errorSpy).toHaveBeenCalledWith(\n `Failed to get call history: ${JSON.stringify(failurePayload)}`,\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.GET_CALL_HISTORY_DATA,\n }\n );\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n describe('sorting user session response data by sortby', () => {\n it('Array should be sort.ASC by START TIME ', async () => {\n const callHistoryPayload = <WebexRequestPayload>(<unknown>mockCallHistoryBody);\n\n webex.request.mockResolvedValue(callHistoryPayload);\n const response = await callHistory.getCallHistoryData(10, 20, SORT.ASC, SORT_BY.START_TIME);\n\n const responseDetails = {\n statusCode: sortedCallHistory.body.statusCode,\n data: {\n userSessions: sortedCallHistory.body.userSessions,\n },\n message: 'SUCCESS',\n };\n\n expect(response).toEqual(responseDetails);\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with days=10, limit=20, sort=ASC, sortBy=startTime',\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n });\n });\n\n describe('Call History Session Event test', () => {\n const mockOn = webex.internal.mercury.on;\n let callHistory: ICallHistory;\n\n beforeEach(() => {\n callHistory = createCallHistoryClient(webex, {level: LOGGER.INFO});\n });\n\n it('verify the recent user session event ', (done) => {\n callHistory.on(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO,\n (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT.data);\n done();\n }\n );\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_SESSION_EVENT);\n });\n\n it('verify the user session event received for locus calls', (done) => {\n callHistory.on(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO,\n (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT_LEGACY.data);\n done();\n }\n );\n\n expect(mockOn.mock.calls[1][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_LEGACY);\n const callSessionCallback = mockOn.mock.calls[1][1];\n\n callSessionCallback(MOCK_SESSION_EVENT_LEGACY);\n });\n\n it('verify the user viewed session event for missed calls update', async () => {\n await new Promise<void>((resolve) => {\n callHistory.on(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_VIEWED_SESSIONS,\n (event: CallSessionViewedEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT_VIEWED.data);\n resolve();\n }\n );\n\n expect(mockOn.mock.calls[2][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_VIEWED);\n const callSessionCallback = mockOn.mock.calls[2][1];\n\n callSessionCallback(MOCK_SESSION_EVENT_VIEWED);\n });\n });\n\n it('verify the user sessions deleted event for deleting the call history records', async () => {\n await new Promise<void>((resolve) => {\n callHistory.on(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSIONS_DELETED,\n (event: CallSessionDeletedEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT_DELETED.data);\n resolve();\n }\n );\n\n expect(mockOn.mock.calls[3][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_DELETED);\n const callSessionCallback = mockOn.mock.calls[3][1];\n\n callSessionCallback(MOCK_SESSION_EVENT_DELETED);\n });\n });\n });\n\n describe('Update missed calls test', () => {\n const methodDetails = {\n file: CALL_HISTORY_FILE,\n method: METHODS.UPDATE_MISSED_CALLS,\n };\n afterEach(() => {\n jest.clearAllMocks();\n });\n beforeEach(async () => {\n serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 200,\n ok: true,\n json: () => Promise.resolve(MOCK_UPDATE_MISSED_CALL_RESPONSE),\n })\n ) as jest.Mock;\n });\n\n it('successfully updates missed calls', async () => {\n const endTimeSessionIds = [{endTime: '1234568', sessionId: '123'}];\n const response = await callHistory.updateMissedCalls(endTimeSessionIds);\n const convertedEndTimeSessionIds = endTimeSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response.statusCode).toEqual(200);\n expect(response).toEqual(MOCK_UPDATE_MISSED_CALL_RESPONSE);\n expect(global.fetch).toBeCalledOnceWith(janusSetReadStateUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({endTimeSessionIds: convertedEndTimeSessionIds}),\n });\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with sessions: ${JSON.stringify(convertedEndTimeSessionIds)}`,\n methodDetails\n );\n expect(logSpy).toHaveBeenCalledWith(\n 'Missed calls are successfully read by the user',\n methodDetails\n );\n expect(errorSpy).not.toHaveBeenCalled();\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n\n it('Error: updateMissedCalls throw 400 error', async () => {\n const endTimeSessionIds = [];\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 400,\n ok: false,\n })\n ) as jest.Mock;\n const response = await callHistory.updateMissedCalls(endTimeSessionIds);\n const convertedEndTimeSessionIds = endTimeSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response).toStrictEqual(ERROR_DETAILS_400);\n expect(response.statusCode).toBe(400);\n expect(global.fetch).toBeCalledOnceWith(janusSetReadStateUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({endTimeSessionIds: convertedEndTimeSessionIds}),\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n {\n statusCode: 400,\n },\n methodDetails\n );\n expect(errorSpy).toBeCalledWith(\n expect.stringContaining('Failed to update missed calls'),\n methodDetails\n );\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('Error: updateMissedCalls throw 401 error', async () => {\n const endTimeSessionIds = [];\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 401,\n ok: false,\n })\n ) as jest.Mock;\n\n const response = await callHistory.updateMissedCalls(endTimeSessionIds);\n const convertedEndTimeSessionIds = endTimeSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response).toStrictEqual(ERROR_DETAILS_401);\n expect(response.statusCode).toBe(401);\n expect(global.fetch).toBeCalledOnceWith(janusSetReadStateUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({endTimeSessionIds: convertedEndTimeSessionIds}),\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n {\n statusCode: 401,\n },\n methodDetails\n );\n expect(errorSpy).toHaveBeenCalled();\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n });\n\n describe('fetchUCMLinesData test', () => {\n beforeEach(() => {\n uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n });\n\n it('verify successful UCM lines API case', async () => {\n const ucmLinesAPIPayload = <WebexRequestPayload>(<unknown>MOCK_LINES_API_CALL_RESPONSE);\n\n webex.request.mockResolvedValue(ucmLinesAPIPayload);\n const response = await callHistory['fetchUCMLinesData']();\n\n expect(response.statusCode).toBe(200);\n expect(response.message).toBe('SUCCESS');\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with URL: https://gw.telemetry.int-ucmgmt.cisco.com/v1/uc/config/people/8a67806f-fc4d-446b-a131-31e71ea5b0e9/lines?orgId=1704d30d-a131-4bc7-9449-948487643793',\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n }\n );\n expect(logSpy).toHaveBeenCalledWith('Line details fetched successfully', {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n });\n expect(errorSpy).not.toHaveBeenCalled();\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n\n it('verify bad request failed UCM lines API case', async () => {\n const failurePayload = {\n statusCode: 400,\n };\n const ucmLinesAPIPayload = <WebexRequestPayload>(<unknown>failurePayload);\n\n webex.request.mockRejectedValue(ucmLinesAPIPayload);\n const response = await callHistory['fetchUCMLinesData']();\n\n expect(response).toStrictEqual(ERROR_DETAILS_400);\n expect(response.data.error).toEqual(ERROR_DETAILS_400.data.error);\n expect(response.statusCode).toBe(400);\n expect(response.message).toBe('FAILURE');\n expect(serviceErrorCodeHandlerSpy).toHaveBeenCalledWith(\n {statusCode: 400},\n {file: CALL_HISTORY_FILE, method: METHODS.FETCH_UCM_LINES_DATA}\n );\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with URL: https://gw.telemetry.int-ucmgmt.cisco.com/v1/uc/config/people/8a67806f-fc4d-446b-a131-31e71ea5b0e9/lines?orgId=1704d30d-a131-4bc7-9449-948487643793`,\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n }\n );\n expect(errorSpy).toHaveBeenCalled();\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('should call fetchUCMLinesData when calling backend is UCM and userSessions contain valid cucmDN', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.UCM);\n // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.\n // To bypass this restriction, we are using 'as any' to access and invoke the method for testing purposes.\n const fetchUCMLinesDataSpy = jest\n .spyOn(callHistory as any, 'fetchUCMLinesData')\n .mockResolvedValue(MOCK_LINES_API_CALL_RESPONSE);\n\n const mockCallHistoryPayload = <WebexRequestPayload>(\n (<unknown>MOCK_CALL_HISTORY_WITH_UCM_LINE_NUMBER)\n );\n webex.request.mockResolvedValue(mockCallHistoryPayload);\n\n const response = await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n expect(fetchUCMLinesDataSpy).toHaveBeenCalledTimes(1);\n\n expect(response.statusCode).toBe(200);\n expect(\n response.data.userSessions && response.data.userSessions[0].self.ucmLineNumber\n ).toEqual(1);\n });\n\n it('should fetchUCMLinesData but not assign ucmLineNumber when UCM backend has no line data', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.UCM);\n\n // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.\n // To bypass this restriction, we are using 'as any' to access and invoke the method for testing purposes.\n const fetchUCMLinesDataSpy = jest\n .spyOn(callHistory as any, 'fetchUCMLinesData')\n .mockResolvedValue(MOCK_LINES_API_CALL_RESPONSE_WITH_NO_LINEDATA);\n\n const mockCallHistoryPayload = <WebexRequestPayload>(\n (<unknown>MOCK_CALL_HISTORY_WITHOUT_UCM_LINE_NUMBER)\n );\n webex.request.mockResolvedValue(mockCallHistoryPayload);\n\n const response = await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n expect(fetchUCMLinesDataSpy).toHaveBeenCalledTimes(1);\n\n expect(response.statusCode).toBe(200);\n expect(response.data.userSessions && response.data.userSessions[0].self.cucmDN).toBeDefined();\n expect(\n response.data.userSessions && response.data.userSessions[0].self.ucmLineNumber\n ).toEqual(undefined);\n });\n\n it('should not call fetchUCMLinesData when calling backend is UCM but no valid cucmDN is present', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.UCM);\n // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.\n // To bypass this restriction, we are using 'as any' to access and invoke the method for testing purposes.\n const fetchUCMLinesDataSpy = jest\n .spyOn(callHistory as any, 'fetchUCMLinesData')\n .mockResolvedValue({});\n\n const callHistoryPayload = <WebexRequestPayload>(<unknown>mockCallHistoryBody);\n webex.request.mockResolvedValue(callHistoryPayload);\n\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n expect(fetchUCMLinesDataSpy).not.toHaveBeenCalled();\n });\n\n it('should not call fetchUCMLinesData when calling backend is not UCM', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.WXC);\n // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.\n // To bypass this restriction, we are using 'as any' to access and invoke the method for testing purposes.\n const fetchUCMLinesDataSpy = jest\n .spyOn(callHistory as any, 'fetchUCMLinesData')\n .mockResolvedValue({});\n\n const callHistoryPayload = <WebexRequestPayload>(<unknown>mockCallHistoryBody);\n webex.request.mockResolvedValue(callHistoryPayload);\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n expect(fetchUCMLinesDataSpy).not.toHaveBeenCalled(); // Check that fetchUCMLinesData was not called\n });\n });\n\n describe('Delete call history records test', () => {\n const methodDetails = {\n file: CALL_HISTORY_FILE,\n method: METHODS.DELETE_CALL_HISTORY_RECORDS,\n };\n\n afterEach(() => {\n jest.clearAllMocks();\n });\n\n beforeEach(async () => {\n serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 200,\n ok: true,\n json: () => Promise.resolve(MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE),\n })\n ) as jest.Mock;\n });\n\n it('successfully deletes the call history records', async () => {\n const deleteSessionIds = [{endTime: '2024-10-22T08:50:48.603Z', sessionId: '123'}];\n const response = await callHistory.deleteCallHistoryRecords(deleteSessionIds);\n const convertedEndTimeSessionIds = deleteSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response.statusCode).toEqual(200);\n expect(response).toEqual(MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE);\n expect(global.fetch).toBeCalledOnceWith(janusMarkAsDeletedUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({deleteSessionIds: convertedEndTimeSessionIds}),\n });\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with sessions: ${JSON.stringify(deleteSessionIds)}`,\n methodDetails\n );\n expect(logSpy).toHaveBeenCalledWith(\n `Successfully deleted ${deleteSessionIds.length} call history records`,\n methodDetails\n );\n expect(errorSpy).not.toHaveBeenCalled();\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n\n it('Error: deleteCallHistoryRecords throw 400 error', async () => {\n const deleteSessionIds = [];\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 400,\n ok: false,\n })\n ) as jest.Mock;\n const response = await callHistory.deleteCallHistoryRecords(deleteSessionIds);\n const convertedEndTimeSessionIds = deleteSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response).toStrictEqual(ERROR_DETAILS_400);\n expect(response.statusCode).toBe(400);\n expect(global.fetch).toBeCalledOnceWith(janusMarkAsDeletedUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({deleteSessionIds: convertedEndTimeSessionIds}),\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n {\n statusCode: 400,\n },\n methodDetails\n );\n expect(errorSpy).toHaveBeenCalled();\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('Error: deleteCallHistoryRecords throw 401 error', async () => {\n const deleteSessionIds = [];\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 401,\n ok: false,\n })\n ) as jest.Mock;\n\n const response = await callHistory.deleteCallHistoryRecords(deleteSessionIds);\n const convertedEndTimeSessionIds = deleteSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response).toStrictEqual(ERROR_DETAILS_401);\n expect(response.statusCode).toBe(401);\n expect(global.fetch).toBeCalledOnceWith(janusMarkAsDeletedUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({deleteSessionIds: convertedEndTimeSessionIds}),\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n {\n statusCode: 401,\n },\n methodDetails\n );\n expect(errorSpy).toBeCalledWith(\n expect.stringContaining('Failed to delete call history records'),\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.DELETE_CALL_HISTORY_RECORDS,\n }\n );\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('handles invalid date formats gracefully', async () => {\n const deleteSessionIds = [{endTime: 'invalid-date', sessionId: '123'}];\n\n // Mock the response to be 400 and trigger an error in your function\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 400,\n ok: false,\n })\n ) as jest.Mock;\n\n const response = await callHistory.deleteCallHistoryRecords(deleteSessionIds);\n\n expect(response.statusCode).toBe(400);\n expect(response).toEqual(MOCK_DELETE_CALL_HISTORY_INVALID_DATE_RESPONSE);\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n expect.stringContaining('The provided date is malformed or invalid'),\n methodDetails\n );\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n });\n\n describe('URL construction for shared sessions based on calling backend', () => {\n let webexRequestSpy: jest.SpyInstance;\n\n beforeEach(() => {\n webexRequestSpy = jest.spyOn(webex, 'request').mockResolvedValue({\n statusCode: 200,\n body: {\n statusCode: 200,\n userSessions: [],\n },\n });\n });\n\n afterEach(() => {\n jest.restoreAllMocks();\n });\n\n it('should include includeSharedSessions=true for WXC backend', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.WXC);\n\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n const callArgs = webexRequestSpy.mock.calls[0][0];\n expect(callArgs.uri).toContain('&includeSharedSessions=true');\n expect(callArgs.method).toBe(HTTP_METHODS.GET);\n expect(callArgs.service).toBe('janus');\n });\n\n it('should NOT include includeSharedSessions for UCM backend', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.UCM);\n\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n const callArgs = webexRequestSpy.mock.calls[0][0];\n expect(callArgs.uri).not.toContain('includeSharedSessions');\n expect(callArgs.method).toBe(HTTP_METHODS.GET);\n expect(callArgs.service).toBe('janus');\n });\n\n it('should NOT include includeSharedSessions for BWRKS backend', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.BWRKS);\n\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n const callArgs = webexRequestSpy.mock.calls[0][0];\n expect(callArgs.uri).not.toContain('includeSharedSessions');\n expect(callArgs.method).toBe(HTTP_METHODS.GET);\n expect(callArgs.service).toBe('janus');\n });\n\n it('should NOT include includeSharedSessions for unknown/other backends', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue('OTHER_BACKEND' as any);\n\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n const callArgs = webexRequestSpy.mock.calls[0][0];\n expect(callArgs.uri).not.toContain('includeSharedSessions');\n expect(callArgs.method).toBe(HTTP_METHODS.GET);\n expect(callArgs.service).toBe('janus');\n });\n\n it('should construct URL correctly with base parameters for all backends', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.WXC);\n\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n const callArgs = webexRequestSpy.mock.calls[0][0];\n expect(callArgs.uri).toMatch(\n /.*\\/history\\/userSessions.*limit=10.*includeNewSessionTypes=true.*sort=DESC.*/\n );\n expect(callArgs.uri).toContain('&includeSharedSessions=true');\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_types","require","_testUtil","_types2","_CallHistory","_callHistoryFixtures","_types3","_constants","utils","_interopRequireWildcard","_Logger","_interopRequireDefault","_constants2","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","webex","getTestUtilsWebex","serviceErrorCodeHandlerSpy","uploadLogsSpy","describe","callHistory","infoSpy","jest","spyOn","log","mockImplementation","logSpy","errorSpy","beforeAll","CallHistory","level","LOGGER","INFO","mockResolvedValue","it","_asyncToGenerator2","_regenerator","mark","_callee","callHistoryPayload","response","wrap","_callee$","_context","prev","next","mockCallHistoryBody","request","getCallHistoryData","SORT","DEFAULT","SORT_BY","sent","expect","statusCode","toBe","message","toHaveBeenCalled","not","toHaveBeenCalledWith","file","CALL_HISTORY_FILE","method","METHODS","GET_CALL_HISTORY_DATA","stringContaining","stop","_callee2","failurePayload","_callee2$","_context2","mockRejectedValue","ASC","START_TIME","toHaveBeenCalledTimes","_callee3","_callee3$","_context3","_callee4","responseDetails","_callee4$","_context4","sortedCallHistory","body","data","userSessions","toEqual","mockOn","internal","mercury","on","beforeEach","createCallHistoryClient","done","COMMON_EVENT_KEYS","CALL_HISTORY_USER_SESSION_INFO","event","MOCK_SESSION_EVENT","mock","calls","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","callSessionCallback","MOCK_SESSION_EVENT_LEGACY","CALL_SESSION_EVENT_LEGACY","_callee5","_callee5$","_context5","_promise","resolve","CALL_HISTORY_USER_VIEWED_SESSIONS","MOCK_SESSION_EVENT_VIEWED","CALL_SESSION_EVENT_VIEWED","_callee6","_callee6$","_context6","CALL_HISTORY_USER_SESSIONS_DELETED","MOCK_SESSION_EVENT_DELETED","CALL_SESSION_EVENT_DELETED","methodDetails","UPDATE_MISSED_CALLS","afterEach","clearAllMocks","_callee7","_callee7$","_context7","global","fetch","fn","status","ok","json","MOCK_UPDATE_MISSED_CALL_RESPONSE","_callee8","endTimeSessionIds","convertedEndTimeSessionIds","_callee8$","_context8","endTime","sessionId","updateMissedCalls","map","session","Date","getTime","t0","t1","janusSetReadStateUrl","t2","HTTP_METHODS","POST","t3","t4","CONTENT_TYPE","APPLICATION_JSON","credentials","getUserToken","t5","t6","t7","_stringify","t8","headers","toBeCalledOnceWith","concat","METHOD_START_MESSAGE","_callee9","_callee9$","_context9","toStrictEqual","ERROR_DETAILS_400","_callee0","_callee0$","_context0","ERROR_DETAILS_401","_callee1","ucmLinesAPIPayload","_callee1$","_context1","MOCK_LINES_API_CALL_RESPONSE","FETCH_UCM_LINES_DATA","_callee10","_callee10$","_context10","error","_callee11","fetchUCMLinesDataSpy","mockCallHistoryPayload","_callee11$","_context11","mockReturnValue","CALLING_BACKEND","UCM","MOCK_CALL_HISTORY_WITH_UCM_LINE_NUMBER","self","ucmLineNumber","_callee12","_callee12$","_context12","MOCK_LINES_API_CALL_RESPONSE_WITH_NO_LINEDATA","MOCK_CALL_HISTORY_WITHOUT_UCM_LINE_NUMBER","cucmDN","toBeDefined","undefined","_callee13","_callee13$","_context13","_callee14","_callee14$","_context14","WXC","DELETE_CALL_HISTORY_RECORDS","_callee15","_callee15$","_context15","MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE","_callee16","deleteSessionIds","_callee16$","_context16","deleteCallHistoryRecords","janusMarkAsDeletedUrl","_callee17","_callee17$","_context17","_callee18","_callee18$","_context18","any","Error","_callee19","_callee19$","_context19","MOCK_DELETE_CALL_HISTORY_INVALID_DATE_RESPONSE"],"sources":["CallHistory.test.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable dot-notation */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport {LOGGER} from '../Logger/types';\nimport {getTestUtilsWebex} from '../common/testUtil';\nimport {CALLING_BACKEND, HTTP_METHODS, SORT, SORT_BY, WebexRequestPayload} from '../common/types';\nimport {CallHistory, createCallHistoryClient} from './CallHistory';\nimport {ICallHistory} from './types';\nimport {\n sortedCallHistory,\n mockCallHistoryBody,\n MOCK_SESSION_EVENT,\n MOCK_SESSION_EVENT_LEGACY,\n MOCK_SESSION_EVENT_VIEWED,\n MOCK_UPDATE_MISSED_CALL_RESPONSE,\n janusSetReadStateUrl,\n ERROR_DETAILS_401,\n ERROR_DETAILS_400,\n MOCK_LINES_API_CALL_RESPONSE,\n MOCK_LINES_API_CALL_RESPONSE_WITH_NO_LINEDATA,\n MOCK_CALL_HISTORY_WITH_UCM_LINE_NUMBER,\n MOCK_CALL_HISTORY_WITHOUT_UCM_LINE_NUMBER,\n MOCK_SESSION_EVENT_DELETED,\n MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE,\n janusMarkAsDeletedUrl,\n MOCK_DELETE_CALL_HISTORY_INVALID_DATE_RESPONSE,\n} from './callHistoryFixtures';\nimport {\n COMMON_EVENT_KEYS,\n CallSessionDeletedEvent,\n CallSessionEvent,\n CallSessionViewedEvent,\n MOBIUS_EVENT_KEYS,\n} from '../Events/types';\nimport {APPLICATION_JSON, CALL_HISTORY_FILE, CONTENT_TYPE, METHODS} from './constants';\nimport * as utils from '../common/Utils';\nimport log from '../Logger';\nimport {METHOD_START_MESSAGE} from '../common/constants';\n\nconst webex = getTestUtilsWebex();\nlet serviceErrorCodeHandlerSpy: jest.SpyInstance;\nlet uploadLogsSpy: jest.SpyInstance;\n\ndescribe('Call history tests', () => {\n let callHistory: ICallHistory;\n const infoSpy = jest.spyOn(log, 'info').mockImplementation();\n const logSpy = jest.spyOn(log, 'log').mockImplementation();\n const errorSpy = jest.spyOn(log, 'error').mockImplementation();\n\n beforeAll(() => {\n callHistory = new CallHistory(webex, {level: LOGGER.INFO});\n uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n });\n\n it('verify successful call history case', async () => {\n const callHistoryPayload = <WebexRequestPayload>(<unknown>mockCallHistoryBody);\n\n webex.request.mockResolvedValue(callHistoryPayload);\n const response = await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n expect(response.statusCode).toBe(200);\n expect(response.message).toBe('SUCCESS');\n\n // Verify logging behavior\n expect(infoSpy).toHaveBeenCalled();\n expect(logSpy).toHaveBeenCalled();\n expect(errorSpy).not.toHaveBeenCalled();\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with days=7, limit=10, sort=DESC, sortBy=endTime',\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining('Successfully retrieved call history data'),\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n expect(errorSpy).not.toHaveBeenCalled();\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n\n it('verify bad request failed call history case', async () => {\n const failurePayload = {\n statusCode: 400,\n };\n const callHistoryPayload = <WebexRequestPayload>(<unknown>failurePayload);\n\n webex.request.mockRejectedValue(callHistoryPayload);\n const response = await callHistory.getCallHistoryData(7, 2000, SORT.ASC, SORT_BY.START_TIME);\n\n expect(response.statusCode).toBe(400);\n expect(response.message).toBe('FAILURE');\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with days=7, limit=2000, sort=ASC, sortBy=startTime',\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n expect(errorSpy).toHaveBeenCalled();\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('verify device not found call history case', async () => {\n const failurePayload = {\n statusCode: 404,\n };\n const callHistoryPayload = <WebexRequestPayload>(<unknown>failurePayload);\n\n webex.request.mockRejectedValue(callHistoryPayload);\n const response = await callHistory.getCallHistoryData(0, 0, SORT.ASC, SORT_BY.START_TIME);\n\n expect(response.statusCode).toBe(404);\n expect(response.message).toBe('FAILURE');\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with days=0, limit=0, sort=ASC, sortBy=startTime',\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n expect(errorSpy).toHaveBeenCalled();\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n describe('sorting user session response data by sortby', () => {\n it('Array should be sort.ASC by START TIME ', async () => {\n const callHistoryPayload = <WebexRequestPayload>(<unknown>mockCallHistoryBody);\n\n webex.request.mockResolvedValue(callHistoryPayload);\n const response = await callHistory.getCallHistoryData(10, 20, SORT.ASC, SORT_BY.START_TIME);\n\n const responseDetails = {\n statusCode: sortedCallHistory.body.statusCode,\n data: {\n userSessions: sortedCallHistory.body.userSessions,\n },\n message: 'SUCCESS',\n };\n\n expect(response).toEqual(responseDetails);\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with days=10, limit=20, sort=ASC, sortBy=startTime',\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n });\n });\n\n describe('Call History Session Event test', () => {\n const mockOn = webex.internal.mercury.on;\n let callHistory: ICallHistory;\n\n beforeEach(() => {\n callHistory = createCallHistoryClient(webex, {level: LOGGER.INFO});\n });\n\n it('verify the recent user session event ', (done) => {\n callHistory.on(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO,\n (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT.data);\n done();\n }\n );\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_SESSION_EVENT);\n });\n\n it('verify the user session event received for locus calls', (done) => {\n callHistory.on(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO,\n (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT_LEGACY.data);\n done();\n }\n );\n\n expect(mockOn.mock.calls[1][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_LEGACY);\n const callSessionCallback = mockOn.mock.calls[1][1];\n\n callSessionCallback(MOCK_SESSION_EVENT_LEGACY);\n });\n\n it('verify the user viewed session event for missed calls update', async () => {\n await new Promise<void>((resolve) => {\n callHistory.on(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_VIEWED_SESSIONS,\n (event: CallSessionViewedEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT_VIEWED.data);\n resolve();\n }\n );\n\n expect(mockOn.mock.calls[2][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_VIEWED);\n const callSessionCallback = mockOn.mock.calls[2][1];\n\n callSessionCallback(MOCK_SESSION_EVENT_VIEWED);\n });\n });\n\n it('verify the user sessions deleted event for deleting the call history records', async () => {\n await new Promise<void>((resolve) => {\n callHistory.on(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSIONS_DELETED,\n (event: CallSessionDeletedEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT_DELETED.data);\n resolve();\n }\n );\n\n expect(mockOn.mock.calls[3][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_DELETED);\n const callSessionCallback = mockOn.mock.calls[3][1];\n\n callSessionCallback(MOCK_SESSION_EVENT_DELETED);\n });\n });\n });\n\n describe('Update missed calls test', () => {\n const methodDetails = {\n file: CALL_HISTORY_FILE,\n method: METHODS.UPDATE_MISSED_CALLS,\n };\n afterEach(() => {\n jest.clearAllMocks();\n });\n beforeEach(async () => {\n serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 200,\n ok: true,\n json: () => Promise.resolve(MOCK_UPDATE_MISSED_CALL_RESPONSE),\n })\n ) as jest.Mock;\n });\n\n it('successfully updates missed calls', async () => {\n const endTimeSessionIds = [{endTime: '1234568', sessionId: '123'}];\n const response = await callHistory.updateMissedCalls(endTimeSessionIds);\n const convertedEndTimeSessionIds = endTimeSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response.statusCode).toEqual(200);\n expect(response).toEqual(MOCK_UPDATE_MISSED_CALL_RESPONSE);\n expect(global.fetch).toBeCalledOnceWith(janusSetReadStateUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({endTimeSessionIds: convertedEndTimeSessionIds}),\n });\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with sessions: ${JSON.stringify(convertedEndTimeSessionIds)}`,\n methodDetails\n );\n expect(logSpy).toHaveBeenCalledWith(\n 'Missed calls are successfully read by the user',\n methodDetails\n );\n expect(errorSpy).not.toHaveBeenCalled();\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n\n it('Error: updateMissedCalls throw 400 error', async () => {\n const endTimeSessionIds = [];\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 400,\n ok: false,\n })\n ) as jest.Mock;\n const response = await callHistory.updateMissedCalls(endTimeSessionIds);\n const convertedEndTimeSessionIds = endTimeSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response).toStrictEqual(ERROR_DETAILS_400);\n expect(response.statusCode).toBe(400);\n expect(global.fetch).toBeCalledOnceWith(janusSetReadStateUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({endTimeSessionIds: convertedEndTimeSessionIds}),\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n {\n statusCode: 400,\n },\n methodDetails\n );\n expect(errorSpy).toHaveBeenCalled();\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('Error: updateMissedCalls throw 401 error', async () => {\n const endTimeSessionIds = [];\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 401,\n ok: false,\n })\n ) as jest.Mock;\n\n const response = await callHistory.updateMissedCalls(endTimeSessionIds);\n const convertedEndTimeSessionIds = endTimeSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response).toStrictEqual(ERROR_DETAILS_401);\n expect(response.statusCode).toBe(401);\n expect(global.fetch).toBeCalledOnceWith(janusSetReadStateUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({endTimeSessionIds: convertedEndTimeSessionIds}),\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n {\n statusCode: 401,\n },\n methodDetails\n );\n expect(errorSpy).toHaveBeenCalled();\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n });\n\n describe('fetchUCMLinesData test', () => {\n beforeEach(() => {\n uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n });\n\n it('verify successful UCM lines API case', async () => {\n const ucmLinesAPIPayload = <WebexRequestPayload>(<unknown>MOCK_LINES_API_CALL_RESPONSE);\n\n webex.request.mockResolvedValue(ucmLinesAPIPayload);\n const response = await callHistory['fetchUCMLinesData']();\n\n expect(response.statusCode).toBe(200);\n expect(response.message).toBe('SUCCESS');\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with URL: https://gw.telemetry.int-ucmgmt.cisco.com/v1/uc/config/people/8a67806f-fc4d-446b-a131-31e71ea5b0e9/lines?orgId=1704d30d-a131-4bc7-9449-948487643793',\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n }\n );\n expect(logSpy).toHaveBeenCalledWith('Line details fetched successfully', {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n });\n expect(errorSpy).not.toHaveBeenCalled();\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n\n it('verify bad request failed UCM lines API case', async () => {\n const failurePayload = {\n statusCode: 400,\n };\n const ucmLinesAPIPayload = <WebexRequestPayload>(<unknown>failurePayload);\n\n webex.request.mockRejectedValue(ucmLinesAPIPayload);\n const response = await callHistory['fetchUCMLinesData']();\n\n expect(response).toStrictEqual(ERROR_DETAILS_400);\n expect(response.data.error).toEqual(ERROR_DETAILS_400.data.error);\n expect(response.statusCode).toBe(400);\n expect(response.message).toBe('FAILURE');\n expect(serviceErrorCodeHandlerSpy).toHaveBeenCalledWith(\n {statusCode: 400},\n {file: CALL_HISTORY_FILE, method: METHODS.FETCH_UCM_LINES_DATA}\n );\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with URL: https://gw.telemetry.int-ucmgmt.cisco.com/v1/uc/config/people/8a67806f-fc4d-446b-a131-31e71ea5b0e9/lines?orgId=1704d30d-a131-4bc7-9449-948487643793`,\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n }\n );\n expect(errorSpy).toHaveBeenCalled();\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('should call fetchUCMLinesData when calling backend is UCM and userSessions contain valid cucmDN', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.UCM);\n // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.\n // To bypass this restriction, we are using 'as any' to access and invoke the method for testing purposes.\n const fetchUCMLinesDataSpy = jest\n .spyOn(callHistory as any, 'fetchUCMLinesData')\n .mockResolvedValue(MOCK_LINES_API_CALL_RESPONSE);\n\n const mockCallHistoryPayload = <WebexRequestPayload>(\n (<unknown>MOCK_CALL_HISTORY_WITH_UCM_LINE_NUMBER)\n );\n webex.request.mockResolvedValue(mockCallHistoryPayload);\n\n const response = await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n expect(fetchUCMLinesDataSpy).toHaveBeenCalledTimes(1);\n\n expect(response.statusCode).toBe(200);\n expect(\n response.data.userSessions && response.data.userSessions[0].self.ucmLineNumber\n ).toEqual(1);\n });\n\n it('should fetchUCMLinesData but not assign ucmLineNumber when UCM backend has no line data', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.UCM);\n\n // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.\n // To bypass this restriction, we are using 'as any' to access and invoke the method for testing purposes.\n const fetchUCMLinesDataSpy = jest\n .spyOn(callHistory as any, 'fetchUCMLinesData')\n .mockResolvedValue(MOCK_LINES_API_CALL_RESPONSE_WITH_NO_LINEDATA);\n\n const mockCallHistoryPayload = <WebexRequestPayload>(\n (<unknown>MOCK_CALL_HISTORY_WITHOUT_UCM_LINE_NUMBER)\n );\n webex.request.mockResolvedValue(mockCallHistoryPayload);\n\n const response = await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n expect(fetchUCMLinesDataSpy).toHaveBeenCalledTimes(1);\n\n expect(response.statusCode).toBe(200);\n expect(response.data.userSessions && response.data.userSessions[0].self.cucmDN).toBeDefined();\n expect(\n response.data.userSessions && response.data.userSessions[0].self.ucmLineNumber\n ).toEqual(undefined);\n });\n\n it('should not call fetchUCMLinesData when calling backend is UCM but no valid cucmDN is present', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.UCM);\n // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.\n // To bypass this restriction, we are using 'as any' to access and invoke the method for testing purposes.\n const fetchUCMLinesDataSpy = jest\n .spyOn(callHistory as any, 'fetchUCMLinesData')\n .mockResolvedValue({});\n\n const callHistoryPayload = <WebexRequestPayload>(<unknown>mockCallHistoryBody);\n webex.request.mockResolvedValue(callHistoryPayload);\n\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n expect(fetchUCMLinesDataSpy).not.toHaveBeenCalled();\n });\n\n it('should not call fetchUCMLinesData when calling backend is not UCM', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.WXC);\n // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.\n // To bypass this restriction, we are using 'as any' to access and invoke the method for testing purposes.\n const fetchUCMLinesDataSpy = jest\n .spyOn(callHistory as any, 'fetchUCMLinesData')\n .mockResolvedValue({});\n\n const callHistoryPayload = <WebexRequestPayload>(<unknown>mockCallHistoryBody);\n webex.request.mockResolvedValue(callHistoryPayload);\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n expect(fetchUCMLinesDataSpy).not.toHaveBeenCalled(); // Check that fetchUCMLinesData was not called\n });\n });\n\n describe('Delete call history records test', () => {\n const methodDetails = {\n file: CALL_HISTORY_FILE,\n method: METHODS.DELETE_CALL_HISTORY_RECORDS,\n };\n\n afterEach(() => {\n jest.clearAllMocks();\n });\n\n beforeEach(async () => {\n serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 200,\n ok: true,\n json: () => Promise.resolve(MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE),\n })\n ) as jest.Mock;\n });\n\n it('successfully deletes the call history records', async () => {\n const deleteSessionIds = [{endTime: '2024-10-22T08:50:48.603Z', sessionId: '123'}];\n const response = await callHistory.deleteCallHistoryRecords(deleteSessionIds);\n const convertedEndTimeSessionIds = deleteSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response.statusCode).toEqual(200);\n expect(response).toEqual(MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE);\n expect(global.fetch).toBeCalledOnceWith(janusMarkAsDeletedUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({deleteSessionIds: convertedEndTimeSessionIds}),\n });\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with sessions: ${JSON.stringify(deleteSessionIds)}`,\n methodDetails\n );\n expect(logSpy).toHaveBeenCalledWith(\n `Successfully deleted ${deleteSessionIds.length} call history records`,\n methodDetails\n );\n expect(errorSpy).not.toHaveBeenCalled();\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n\n it('Error: deleteCallHistoryRecords throw 400 error', async () => {\n const deleteSessionIds = [];\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 400,\n ok: false,\n })\n ) as jest.Mock;\n const response = await callHistory.deleteCallHistoryRecords(deleteSessionIds);\n const convertedEndTimeSessionIds = deleteSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response).toStrictEqual(ERROR_DETAILS_400);\n expect(response.statusCode).toBe(400);\n expect(global.fetch).toBeCalledOnceWith(janusMarkAsDeletedUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({deleteSessionIds: convertedEndTimeSessionIds}),\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n {\n statusCode: 400,\n },\n methodDetails\n );\n expect(errorSpy).toHaveBeenCalled();\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('Error: deleteCallHistoryRecords throw 401 error', async () => {\n const deleteSessionIds = [];\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 401,\n ok: false,\n })\n ) as jest.Mock;\n\n const response = await callHistory.deleteCallHistoryRecords(deleteSessionIds);\n const convertedEndTimeSessionIds = deleteSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response).toStrictEqual(ERROR_DETAILS_401);\n expect(response.statusCode).toBe(401);\n expect(global.fetch).toBeCalledOnceWith(janusMarkAsDeletedUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({deleteSessionIds: convertedEndTimeSessionIds}),\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n {\n statusCode: 401,\n },\n methodDetails\n );\n expect(errorSpy).toHaveBeenCalledWith(expect.any(Error), {\n file: CALL_HISTORY_FILE,\n method: METHODS.DELETE_CALL_HISTORY_RECORDS,\n });\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('handles invalid date formats gracefully', async () => {\n const deleteSessionIds = [{endTime: 'invalid-date', sessionId: '123'}];\n\n // Mock the response to be 400 and trigger an error in your function\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 400,\n ok: false,\n })\n ) as jest.Mock;\n\n const response = await callHistory.deleteCallHistoryRecords(deleteSessionIds);\n\n expect(response.statusCode).toBe(400);\n expect(response).toEqual(MOCK_DELETE_CALL_HISTORY_INVALID_DATE_RESPONSE);\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n expect.stringContaining('The provided date is malformed or invalid'),\n methodDetails\n );\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,6 @@ _Object$defineProperty(exports, "__esModule", {
8
8
  exports.UcmBackendConnector = void 0;
9
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
10
10
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
11
- var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
12
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
13
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
14
13
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
@@ -173,7 +172,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
173
172
  key: "getCallForwardAlwaysSetting",
174
173
  value: (function () {
175
174
  var _getCallForwardAlwaysSetting = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(directoryNumber) {
176
- var loggerContext, webexApisUrl, resp, _ref, callForwarding, cfa, _response, _response2, response, errorInfo, errorStatus;
175
+ var loggerContext, webexApisUrl, resp, _ref, callForwarding, cfa, _response, _response2, response, errorInfo, extendedError, errorStatus;
177
176
  return _regenerator.default.wrap(function _callee$(_context) {
178
177
  while (1) switch (_context.prev = _context.next) {
179
178
  case 0:
@@ -238,13 +237,14 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
238
237
  _context.prev = 21;
239
238
  _context.t0 = _context["catch"](3);
240
239
  errorInfo = _context.t0;
241
- _Logger.default.error("Failed to get call forward always setting: ".concat((0, _stringify.default)(_context.t0)), loggerContext);
242
- _context.next = 27;
240
+ extendedError = new Error("Failed to get call forward always setting: ".concat(_context.t0));
241
+ _Logger.default.error(extendedError, loggerContext);
242
+ _context.next = 28;
243
243
  return (0, _Utils.uploadLogs)();
244
- case 27:
244
+ case 28:
245
245
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
246
246
  return _context.abrupt("return", errorStatus);
247
- case 29:
247
+ case 30:
248
248
  case "end":
249
249
  return _context.stop();
250
250
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_Logger","_interopRequireDefault","require","_SDKConnector","_Utils","_constants","_types","_constants2","UcmBackendConnector","exports","webex","logger","useProdWebexApis","arguments","length","undefined","_classCallCheck2","default","_defineProperty2","sdkConnector","SDKConnector","getWebex","setWebex","log","setLogger","level","UCM_CONNECTOR_FILE","userId","internal","device","orgId","_createClass2","key","value","getCallWaitingSetting","loggerContext","file","method","METHODS","GET_CALL_WAITING_SETTING","info","METHOD_START_MESSAGE","getMethodNotSupportedResponse","getDoNotDisturbSetting","GET_DO_NOT_DISTURB_SETTING","setDoNotDisturbSetting","SET_DO_NOT_DISTURB_SETTING","getCallForwardSetting","GET_CALL_FORWARD_SETTING","setCallForwardSetting","SET_CALL_FORWARD_SETTING","getVoicemailSetting","GET_VOICEMAIL_SETTING","setVoicemailSetting","SET_VOICEMAIL_SETTING","GET_METHOD_NOT_SUPPORTED_RESPONSE","response","serviceErrorCodeHandler","statusCode","_promise","resolve","_getCallForwardAlwaysSetting","_asyncToGenerator2","_regenerator","mark","_callee","directoryNumber","webexApisUrl","resp","_ref","callForwarding","cfa","_response","_response2","errorInfo","errorStatus","wrap","_callee$","_context","prev","next","GET_CALL_FORWARD_ALWAYS_SETTING","concat","WEBEX_API_CONFIG_PROD_URL","WEBEX_API_CONFIG_INT_URL","request","uri","PEOPLE_ENDPOINT","CF_ENDPOINT","toLowerCase","ORG_ENDPOINT","HTTP_METHODS","GET","sent","body","always","find","item","dn","endsWith","e164Number","Number","STATUS_CODE","message","SUCCESS_MESSAGE","data","callSetting","enabled","destinationVoicemailEnabled","destination","VOICEMAIL","abrupt","FAILURE_MESSAGE","error","t0","_stringify","uploadLogs","stop","getCallForwardAlwaysSetting","_x","apply"],"sources":["UcmBackendConnector.ts"],"sourcesContent":["import log from '../Logger';\nimport SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {serviceErrorCodeHandler, uploadLogs} from '../common/Utils';\nimport {\n FAILURE_MESSAGE,\n METHOD_START_MESSAGE,\n STATUS_CODE,\n SUCCESS_MESSAGE,\n UCM_CONNECTOR_FILE,\n VOICEMAIL,\n WEBEX_API_CONFIG_INT_URL,\n WEBEX_API_CONFIG_PROD_URL,\n} from '../common/constants';\nimport {HTTP_METHODS, WebexRequestPayload} from '../common/types';\nimport {CF_ENDPOINT, METHODS, ORG_ENDPOINT, PEOPLE_ENDPOINT} from './constants';\nimport {\n CallForwardAlwaysSetting,\n CallForwardingSettingsUCM,\n CallSettingResponse,\n IUcmBackendConnector,\n LoggerInterface,\n} from './types';\n\n/**\n * This Connector class will implement child interface of ICallSettings and\n * has methods for the CCUC with UCM backend.\n */\nexport class UcmBackendConnector implements IUcmBackendConnector {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private userId: string;\n\n private orgId: string;\n\n private useProdWebexApis: boolean;\n\n /**\n * @param useProdWebexApis - default value is true\n */\n constructor(webex: WebexSDK, logger: LoggerInterface, useProdWebexApis = true) {\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n\n this.webex = this.sdkConnector.getWebex();\n log.setLogger(logger.level, UCM_CONNECTOR_FILE);\n this.userId = this.webex.internal.device.userId;\n this.orgId = this.webex.internal.device.orgId;\n this.useProdWebexApis = useProdWebexApis;\n }\n\n /**\n * Reads call waiting setting at the backend.\n */\n public getCallWaitingSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_CALL_WAITING_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads DND setting at the backend.\n */\n public getDoNotDisturbSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_DO_NOT_DISTURB_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates DND setting at the backend.\n */\n public setDoNotDisturbSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.SET_DO_NOT_DISTURB_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads Call Forward setting at the backend.\n */\n public getCallForwardSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_CALL_FORWARD_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates Call Forward setting at the backend.\n */\n public setCallForwardSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.SET_CALL_FORWARD_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads Voicemail setting at the backend.\n */\n public getVoicemailSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_VOICEMAIL_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates Voicemail setting at the backend.\n */\n public setVoicemailSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.SET_VOICEMAIL_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Returns a default error response for unsupported methods.\n */\n private getMethodNotSupportedResponse(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_METHOD_NOT_SUPPORTED_RESPONSE,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n const response = serviceErrorCodeHandler({statusCode: 501}, loggerContext);\n\n return Promise.resolve(response);\n }\n\n /**\n * Reads the Call Forwarding Always settings at the backend.\n * This will also check if CFA is set to Voicemail.\n * If CFA is set to destination, that will take precedence.\n * For UCM backend, relevant fields in the response are `enabled` & `destination`.\n *\n * @param directoryNumber - Directory number for which CFA needs to returned.\n */\n public async getCallForwardAlwaysSetting(directoryNumber?: string): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_CALL_FORWARD_ALWAYS_SETTING,\n };\n\n log.info(\n directoryNumber ? `${METHOD_START_MESSAGE} with ${directoryNumber}` : METHOD_START_MESSAGE,\n loggerContext\n );\n\n const webexApisUrl = this.useProdWebexApis\n ? WEBEX_API_CONFIG_PROD_URL\n : WEBEX_API_CONFIG_INT_URL;\n\n try {\n if (directoryNumber) {\n const resp = <WebexRequestPayload>await this.webex.request({\n uri: `${webexApisUrl}/${PEOPLE_ENDPOINT}/${\n this.userId\n }/${CF_ENDPOINT.toLowerCase()}?${ORG_ENDPOINT}=${this.orgId}`,\n method: HTTP_METHODS.GET,\n });\n\n log.log(`Response code: ${resp.statusCode}`, loggerContext);\n\n const {callForwarding} = resp.body as CallForwardingSettingsUCM;\n const cfa = callForwarding.always.find(\n (item) => item.dn.endsWith(directoryNumber) || item.e164Number.endsWith(directoryNumber)\n );\n\n if (cfa) {\n const response = {\n statusCode: Number(resp[STATUS_CODE]),\n message: SUCCESS_MESSAGE,\n data: {\n callSetting: {\n enabled: cfa.destinationVoicemailEnabled || !!cfa.destination,\n destination: cfa.destinationVoicemailEnabled ? VOICEMAIL : cfa.destination,\n } as CallForwardAlwaysSetting,\n },\n };\n\n log.log(\n `Successfully retrieved call forward always setting for directory number: ${directoryNumber}`,\n loggerContext\n );\n\n return response;\n }\n const response = {\n statusCode: 404,\n message: FAILURE_MESSAGE,\n data: {\n error: 'Directory Number is not assigned to the user',\n },\n };\n\n return response;\n }\n const response = {\n statusCode: 400,\n message: FAILURE_MESSAGE,\n data: {\n error: 'Directory Number is mandatory for UCM backend',\n },\n };\n\n return response;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n log.error(`Failed to get call forward always setting: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAUA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AASA;AACA;AACA;AACA;AAHA,IAIaM,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA;EAW9B;AACF;AACA;EACE,SAAAA,oBAAYE,KAAe,EAAEC,MAAuB,EAA2B;IAAA,IAAzBC,gBAAgB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAAA,IAAAG,gBAAA,CAAAC,OAAA,QAAAT,mBAAA;IAAA,IAAAU,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAC3E,IAAI,CAACE,YAAY,GAAGC,qBAAY;IAEhC,IAAI,CAAC,IAAI,CAACD,YAAY,CAACE,QAAQ,CAAC,CAAC,EAAE;MACjCD,qBAAY,CAACE,QAAQ,CAACZ,KAAK,CAAC;IAC9B;IAEA,IAAI,CAACA,KAAK,GAAG,IAAI,CAACS,YAAY,CAACE,QAAQ,CAAC,CAAC;IACzCE,eAAG,CAACC,SAAS,CAACb,MAAM,CAACc,KAAK,EAAEC,6BAAkB,CAAC;IAC/C,IAAI,CAACC,MAAM,GAAG,IAAI,CAACjB,KAAK,CAACkB,QAAQ,CAACC,MAAM,CAACF,MAAM;IAC/C,IAAI,CAACG,KAAK,GAAG,IAAI,CAACpB,KAAK,CAACkB,QAAQ,CAACC,MAAM,CAACC,KAAK;IAC7C,IAAI,CAAClB,gBAAgB,GAAGA,gBAAgB;EAC1C;;EAEA;AACF;AACA;EAFE,IAAAmB,aAAA,CAAAd,OAAA,EAAAT,mBAAA;IAAAwB,GAAA;IAAAC,KAAA,EAGA,SAAAC,sBAAA,EAA6D;MAC3D,IAAMC,aAAa,GAAG;QACpBC,IAAI,EAAEV,6BAAkB;QACxBW,MAAM,EAAEC,mBAAO,CAACC;MAClB,CAAC;MAEDhB,eAAG,CAACiB,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAE7C,OAAO,IAAI,CAACO,6BAA6B,CAAC,CAAC;IAC7C;;IAEA;AACF;AACA;EAFE;IAAAV,GAAA;IAAAC,KAAA,EAGA,SAAAU,uBAAA,EAA8D;MAC5D,IAAMR,aAAa,GAAG;QACpBC,IAAI,EAAEV,6BAAkB;QACxBW,MAAM,EAAEC,mBAAO,CAACM;MAClB,CAAC;MAEDrB,eAAG,CAACiB,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAE7C,OAAO,IAAI,CAACO,6BAA6B,CAAC,CAAC;IAC7C;;IAEA;AACF;AACA;EAFE;IAAAV,GAAA;IAAAC,KAAA,EAGA,SAAAY,uBAAA,EAA8D;MAC5D,IAAMV,aAAa,GAAG;QACpBC,IAAI,EAAEV,6BAAkB;QACxBW,MAAM,EAAEC,mBAAO,CAACQ;MAClB,CAAC;MAEDvB,eAAG,CAACiB,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAE7C,OAAO,IAAI,CAACO,6BAA6B,CAAC,CAAC;IAC7C;;IAEA;AACF;AACA;EAFE;IAAAV,GAAA;IAAAC,KAAA,EAGA,SAAAc,sBAAA,EAA6D;MAC3D,IAAMZ,aAAa,GAAG;QACpBC,IAAI,EAAEV,6BAAkB;QACxBW,MAAM,EAAEC,mBAAO,CAACU;MAClB,CAAC;MAEDzB,eAAG,CAACiB,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAE7C,OAAO,IAAI,CAACO,6BAA6B,CAAC,CAAC;IAC7C;;IAEA;AACF;AACA;EAFE;IAAAV,GAAA;IAAAC,KAAA,EAGA,SAAAgB,sBAAA,EAA6D;MAC3D,IAAMd,aAAa,GAAG;QACpBC,IAAI,EAAEV,6BAAkB;QACxBW,MAAM,EAAEC,mBAAO,CAACY;MAClB,CAAC;MAED3B,eAAG,CAACiB,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAE7C,OAAO,IAAI,CAACO,6BAA6B,CAAC,CAAC;IAC7C;;IAEA;AACF;AACA;EAFE;IAAAV,GAAA;IAAAC,KAAA,EAGA,SAAAkB,oBAAA,EAA2D;MACzD,IAAMhB,aAAa,GAAG;QACpBC,IAAI,EAAEV,6BAAkB;QACxBW,MAAM,EAAEC,mBAAO,CAACc;MAClB,CAAC;MAED7B,eAAG,CAACiB,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAE7C,OAAO,IAAI,CAACO,6BAA6B,CAAC,CAAC;IAC7C;;IAEA;AACF;AACA;EAFE;IAAAV,GAAA;IAAAC,KAAA,EAGA,SAAAoB,oBAAA,EAA2D;MACzD,IAAMlB,aAAa,GAAG;QACpBC,IAAI,EAAEV,6BAAkB;QACxBW,MAAM,EAAEC,mBAAO,CAACgB;MAClB,CAAC;MAED/B,eAAG,CAACiB,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAE7C,OAAO,IAAI,CAACO,6BAA6B,CAAC,CAAC;IAC7C;;IAEA;AACF;AACA;EAFE;IAAAV,GAAA;IAAAC,KAAA,EAGA,SAAAS,8BAAA,EAAsE;MACpE,IAAMP,aAAa,GAAG;QACpBC,IAAI,EAAEV,6BAAkB;QACxBW,MAAM,EAAEC,mBAAO,CAACiB;MAClB,CAAC;MAEDhC,eAAG,CAACiB,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAE7C,IAAMqB,QAAQ,GAAG,IAAAC,8BAAuB,EAAC;QAACC,UAAU,EAAE;MAAG,CAAC,EAAEvB,aAAa,CAAC;MAE1E,OAAOwB,QAAA,CAAA1C,OAAA,CAAQ2C,OAAO,CAACJ,QAAQ,CAAC;IAClC;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAAxB,GAAA;IAAAC,KAAA;MAAA,IAAA4B,4BAAA,OAAAC,kBAAA,CAAA7C,OAAA,eAAA8C,YAAA,CAAA9C,OAAA,CAAA+C,IAAA,CAQA,SAAAC,QAAyCC,eAAwB;QAAA,IAAA/B,aAAA,EAAAgC,YAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,cAAA,EAAAC,GAAA,EAAAC,SAAA,EAAAC,UAAA,EAAAjB,QAAA,EAAAkB,SAAA,EAAAC,WAAA;QAAA,OAAAZ,YAAA,CAAA9C,OAAA,CAAA2D,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cACzD7C,aAAa,GAAG;gBACpBC,IAAI,EAAEV,6BAAkB;gBACxBW,MAAM,EAAEC,mBAAO,CAAC2C;cAClB,CAAC;cAED1D,eAAG,CAACiB,IAAI,CACN0B,eAAe,MAAAgB,MAAA,CAAMzC,+BAAoB,YAAAyC,MAAA,CAAShB,eAAe,IAAKzB,+BAAoB,EAC1FN,aACF,CAAC;cAEKgC,YAAY,GAAG,IAAI,CAACvD,gBAAgB,GACtCuE,oCAAyB,GACzBC,mCAAwB;cAAAN,QAAA,CAAAC,IAAA;cAAA,KAGtBb,eAAe;gBAAAY,QAAA,CAAAE,IAAA;gBAAA;cAAA;cAAAF,QAAA,CAAAE,IAAA;cAAA,OACuB,IAAI,CAACtE,KAAK,CAAC2E,OAAO,CAAC;gBACzDC,GAAG,KAAAJ,MAAA,CAAKf,YAAY,OAAAe,MAAA,CAAIK,2BAAe,OAAAL,MAAA,CACrC,IAAI,CAACvD,MAAM,OAAAuD,MAAA,CACTM,uBAAW,CAACC,WAAW,CAAC,CAAC,OAAAP,MAAA,CAAIQ,wBAAY,OAAAR,MAAA,CAAI,IAAI,CAACpD,KAAK,CAAE;gBAC7DO,MAAM,EAAEsD,mBAAY,CAACC;cACvB,CAAC,CAAC;YAAA;cALIxB,IAAI,GAAAU,QAAA,CAAAe,IAAA;cAOVtE,eAAG,CAACA,GAAG,mBAAA2D,MAAA,CAAmBd,IAAI,CAACV,UAAU,GAAIvB,aAAa,CAAC;cAACkC,IAAA,GAEnCD,IAAI,CAAC0B,IAAI,EAA3BxB,cAAc,GAAAD,IAAA,CAAdC,cAAc;cACfC,GAAG,GAAGD,cAAc,CAACyB,MAAM,CAACC,IAAI,CACpC,UAACC,IAAI;gBAAA,OAAKA,IAAI,CAACC,EAAE,CAACC,QAAQ,CAACjC,eAAe,CAAC,IAAI+B,IAAI,CAACG,UAAU,CAACD,QAAQ,CAACjC,eAAe,CAAC;cAAA,CAC1F,CAAC;cAAA,KAEGK,GAAG;gBAAAO,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACCxB,SAAQ,GAAG;gBACfE,UAAU,EAAE2C,MAAM,CAACjC,IAAI,CAACkC,sBAAW,CAAC,CAAC;gBACrCC,OAAO,EAAEC,0BAAe;gBACxBC,IAAI,EAAE;kBACJC,WAAW,EAAE;oBACXC,OAAO,EAAEpC,GAAG,CAACqC,2BAA2B,IAAI,CAAC,CAACrC,GAAG,CAACsC,WAAW;oBAC7DA,WAAW,EAAEtC,GAAG,CAACqC,2BAA2B,GAAGE,oBAAS,GAAGvC,GAAG,CAACsC;kBACjE;gBACF;cACF,CAAC;cAEDtF,eAAG,CAACA,GAAG,6EAAA2D,MAAA,CACuEhB,eAAe,GAC3F/B,aACF,CAAC;cAAC,OAAA2C,QAAA,CAAAiC,MAAA,WAEKvD,SAAQ;YAAA;cAEXA,UAAQ,GAAG;gBACfE,UAAU,EAAE,GAAG;gBACf6C,OAAO,EAAES,0BAAe;gBACxBP,IAAI,EAAE;kBACJQ,KAAK,EAAE;gBACT;cACF,CAAC;cAAA,OAAAnC,QAAA,CAAAiC,MAAA,WAEMvD,UAAQ;YAAA;cAEXA,QAAQ,GAAG;gBACfE,UAAU,EAAE,GAAG;gBACf6C,OAAO,EAAES,0BAAe;gBACxBP,IAAI,EAAE;kBACJQ,KAAK,EAAE;gBACT;cACF,CAAC;cAAA,OAAAnC,QAAA,CAAAiC,MAAA,WAEMvD,QAAQ;YAAA;cAAAsB,QAAA,CAAAC,IAAA;cAAAD,QAAA,CAAAoC,EAAA,GAAApC,QAAA;cAETJ,SAAS,GAAAI,QAAA,CAAAoC,EAAA;cACf3F,eAAG,CAAC0F,KAAK,+CAAA/B,MAAA,CAA+C,IAAAiC,UAAA,CAAAlG,OAAA,EAAA6D,QAAA,CAAAoC,EAAkB,CAAC,GAAI/E,aAAa,CAAC;cAAC2C,QAAA,CAAAE,IAAA;cAAA,OACxF,IAAAoC,iBAAU,EAAC,CAAC;YAAA;cACZzC,WAAW,GAAG,IAAAlB,8BAAuB,EAACiB,SAAS,EAAEvC,aAAa,CAAC;cAAA,OAAA2C,QAAA,CAAAiC,MAAA,WAE9DpC,WAAW;YAAA;YAAA;cAAA,OAAAG,QAAA,CAAAuC,IAAA;UAAA;QAAA,GAAApD,OAAA;MAAA,CAErB;MAAA,SAAAqD,4BAAAC,EAAA;QAAA,OAAA1D,4BAAA,CAAA2D,KAAA,OAAA3G,SAAA;MAAA;MAAA,OAAAyG,2BAAA;IAAA;EAAA;EAAA,OAAA9G,mBAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_Logger","_interopRequireDefault","require","_SDKConnector","_Utils","_constants","_types","_constants2","UcmBackendConnector","exports","webex","logger","useProdWebexApis","arguments","length","undefined","_classCallCheck2","default","_defineProperty2","sdkConnector","SDKConnector","getWebex","setWebex","log","setLogger","level","UCM_CONNECTOR_FILE","userId","internal","device","orgId","_createClass2","key","value","getCallWaitingSetting","loggerContext","file","method","METHODS","GET_CALL_WAITING_SETTING","info","METHOD_START_MESSAGE","getMethodNotSupportedResponse","getDoNotDisturbSetting","GET_DO_NOT_DISTURB_SETTING","setDoNotDisturbSetting","SET_DO_NOT_DISTURB_SETTING","getCallForwardSetting","GET_CALL_FORWARD_SETTING","setCallForwardSetting","SET_CALL_FORWARD_SETTING","getVoicemailSetting","GET_VOICEMAIL_SETTING","setVoicemailSetting","SET_VOICEMAIL_SETTING","GET_METHOD_NOT_SUPPORTED_RESPONSE","response","serviceErrorCodeHandler","statusCode","_promise","resolve","_getCallForwardAlwaysSetting","_asyncToGenerator2","_regenerator","mark","_callee","directoryNumber","webexApisUrl","resp","_ref","callForwarding","cfa","_response","_response2","errorInfo","extendedError","errorStatus","wrap","_callee$","_context","prev","next","GET_CALL_FORWARD_ALWAYS_SETTING","concat","WEBEX_API_CONFIG_PROD_URL","WEBEX_API_CONFIG_INT_URL","request","uri","PEOPLE_ENDPOINT","CF_ENDPOINT","toLowerCase","ORG_ENDPOINT","HTTP_METHODS","GET","sent","body","always","find","item","dn","endsWith","e164Number","Number","STATUS_CODE","message","SUCCESS_MESSAGE","data","callSetting","enabled","destinationVoicemailEnabled","destination","VOICEMAIL","abrupt","FAILURE_MESSAGE","error","t0","Error","uploadLogs","stop","getCallForwardAlwaysSetting","_x","apply"],"sources":["UcmBackendConnector.ts"],"sourcesContent":["import ExtendedError from 'Errors/catalog/ExtendedError';\nimport log from '../Logger';\nimport SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {serviceErrorCodeHandler, uploadLogs} from '../common/Utils';\nimport {\n FAILURE_MESSAGE,\n METHOD_START_MESSAGE,\n STATUS_CODE,\n SUCCESS_MESSAGE,\n UCM_CONNECTOR_FILE,\n VOICEMAIL,\n WEBEX_API_CONFIG_INT_URL,\n WEBEX_API_CONFIG_PROD_URL,\n} from '../common/constants';\nimport {HTTP_METHODS, WebexRequestPayload} from '../common/types';\nimport {CF_ENDPOINT, METHODS, ORG_ENDPOINT, PEOPLE_ENDPOINT} from './constants';\nimport {\n CallForwardAlwaysSetting,\n CallForwardingSettingsUCM,\n CallSettingResponse,\n IUcmBackendConnector,\n LoggerInterface,\n} from './types';\n\n/**\n * This Connector class will implement child interface of ICallSettings and\n * has methods for the CCUC with UCM backend.\n */\nexport class UcmBackendConnector implements IUcmBackendConnector {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private userId: string;\n\n private orgId: string;\n\n private useProdWebexApis: boolean;\n\n /**\n * @param useProdWebexApis - default value is true\n */\n constructor(webex: WebexSDK, logger: LoggerInterface, useProdWebexApis = true) {\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n\n this.webex = this.sdkConnector.getWebex();\n log.setLogger(logger.level, UCM_CONNECTOR_FILE);\n this.userId = this.webex.internal.device.userId;\n this.orgId = this.webex.internal.device.orgId;\n this.useProdWebexApis = useProdWebexApis;\n }\n\n /**\n * Reads call waiting setting at the backend.\n */\n public getCallWaitingSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_CALL_WAITING_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads DND setting at the backend.\n */\n public getDoNotDisturbSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_DO_NOT_DISTURB_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates DND setting at the backend.\n */\n public setDoNotDisturbSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.SET_DO_NOT_DISTURB_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads Call Forward setting at the backend.\n */\n public getCallForwardSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_CALL_FORWARD_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates Call Forward setting at the backend.\n */\n public setCallForwardSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.SET_CALL_FORWARD_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads Voicemail setting at the backend.\n */\n public getVoicemailSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_VOICEMAIL_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates Voicemail setting at the backend.\n */\n public setVoicemailSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.SET_VOICEMAIL_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Returns a default error response for unsupported methods.\n */\n private getMethodNotSupportedResponse(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_METHOD_NOT_SUPPORTED_RESPONSE,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n const response = serviceErrorCodeHandler({statusCode: 501}, loggerContext);\n\n return Promise.resolve(response);\n }\n\n /**\n * Reads the Call Forwarding Always settings at the backend.\n * This will also check if CFA is set to Voicemail.\n * If CFA is set to destination, that will take precedence.\n * For UCM backend, relevant fields in the response are `enabled` & `destination`.\n *\n * @param directoryNumber - Directory number for which CFA needs to returned.\n */\n public async getCallForwardAlwaysSetting(directoryNumber?: string): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_CALL_FORWARD_ALWAYS_SETTING,\n };\n\n log.info(\n directoryNumber ? `${METHOD_START_MESSAGE} with ${directoryNumber}` : METHOD_START_MESSAGE,\n loggerContext\n );\n\n const webexApisUrl = this.useProdWebexApis\n ? WEBEX_API_CONFIG_PROD_URL\n : WEBEX_API_CONFIG_INT_URL;\n\n try {\n if (directoryNumber) {\n const resp = <WebexRequestPayload>await this.webex.request({\n uri: `${webexApisUrl}/${PEOPLE_ENDPOINT}/${\n this.userId\n }/${CF_ENDPOINT.toLowerCase()}?${ORG_ENDPOINT}=${this.orgId}`,\n method: HTTP_METHODS.GET,\n });\n\n log.log(`Response code: ${resp.statusCode}`, loggerContext);\n\n const {callForwarding} = resp.body as CallForwardingSettingsUCM;\n const cfa = callForwarding.always.find(\n (item) => item.dn.endsWith(directoryNumber) || item.e164Number.endsWith(directoryNumber)\n );\n\n if (cfa) {\n const response = {\n statusCode: Number(resp[STATUS_CODE]),\n message: SUCCESS_MESSAGE,\n data: {\n callSetting: {\n enabled: cfa.destinationVoicemailEnabled || !!cfa.destination,\n destination: cfa.destinationVoicemailEnabled ? VOICEMAIL : cfa.destination,\n } as CallForwardAlwaysSetting,\n },\n };\n\n log.log(\n `Successfully retrieved call forward always setting for directory number: ${directoryNumber}`,\n loggerContext\n );\n\n return response;\n }\n const response = {\n statusCode: 404,\n message: FAILURE_MESSAGE,\n data: {\n error: 'Directory Number is not assigned to the user',\n },\n };\n\n return response;\n }\n const response = {\n statusCode: 400,\n message: FAILURE_MESSAGE,\n data: {\n error: 'Directory Number is mandatory for UCM backend',\n },\n };\n\n return response;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n const extendedError = new Error(\n `Failed to get call forward always setting: ${err}`\n ) as ExtendedError;\n log.error(extendedError, loggerContext);\n await uploadLogs();\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,6 @@ var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
5
5
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
6
6
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
7
7
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
8
- var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
9
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
10
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
11
10
  var _types = require("../Logger/types");
@@ -228,7 +227,7 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
228
227
  file: _constants.UCM_CONNECTOR_FILE,
229
228
  method: 'getCallForwardAlwaysSetting'
230
229
  });
231
- expect(_Logger.default.error).toHaveBeenCalledWith("Failed to get call forward always setting: ".concat((0, _stringify.default)(responsePayload)), {
230
+ expect(_Logger.default.error).toHaveBeenCalledWith(new Error('Failed to get call forward always setting: [object Object]'), {
232
231
  file: _constants.UCM_CONNECTOR_FILE,
233
232
  method: 'getCallForwardAlwaysSetting'
234
233
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_Logger","_interopRequireDefault","utils","_interopRequireWildcard","_constants","_testUtil","_types2","_UcmBackendConnector","_constants2","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","jest","spyOn","mockResolvedValue","undefined","describe","webex","getTestUtilsWebex","userId","orgId","callSettingsClient","callForwardPayload","callForwarding","always","dn","destination","destinationVoicemailEnabled","e164Number","callForwardingUri","concat","WEBEX_API_CONFIG_INT_URL","PEOPLE_ENDPOINT","CF_ENDPOINT","toLowerCase","ORG_ENDPOINT","beforeAll","UcmBackendConnector","level","LOGGER","INFO","beforeEach","responsePayload","statusCode","body","request","log","mockImplementation","it","_asyncToGenerator2","_regenerator","mark","_callee","response","callForwardSetting","wrap","_callee$","_context","prev","next","getCallForwardAlwaysSetting","sent","data","callSetting","expect","toEqual","message","SUCCESS_MESSAGE","enabled","toBeCalledOnceWith","method","HTTP_METHODS","GET","uri","info","toHaveBeenCalledWith","file","UCM_CONNECTOR_FILE","error","not","toHaveBeenCalled","stop","_callee2","_callee2$","_context2","_callee3","_callee3$","_context3","toBeFalsy","_callee4","_callee4$","_context4","_callee5","serviceErrorCodeHandlerSpy","_callee5$","_context5","mockClear","mockRejectedValue","FAILURE_MESSAGE","name","_stringify","_callee6","_callee6$","_context6","_callee7","_callee7$","_context7","toBeCalled","unsupportedMethods","each","_ref8","_callee8","methodName","_callee8$","_context8","_x","apply","arguments"],"sources":["UcmBackendConnector.test.ts"],"sourcesContent":["import {LOGGER} from '../Logger/types';\nimport log from '../Logger';\nimport * as utils from '../common/Utils';\nimport {\n FAILURE_MESSAGE,\n SUCCESS_MESSAGE,\n UCM_CONNECTOR_FILE,\n WEBEX_API_CONFIG_INT_URL,\n} from '../common/constants';\nimport {getTestUtilsWebex} from '../common/testUtil';\nimport {HTTP_METHODS, WebexRequestPayload} from '../common/types';\nimport {UcmBackendConnector} from './UcmBackendConnector';\nimport {CF_ENDPOINT, ORG_ENDPOINT, PEOPLE_ENDPOINT} from './constants';\nimport {CallForwardAlwaysSetting, CallForwardingSettingsUCM, IUcmBackendConnector} from './types';\n\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('Call Settings Client Tests for UcmBackendConnector', () => {\n const webex = getTestUtilsWebex();\n\n const userId = '8a67806f-fc4d-446b-a131-31e71ea5b0e9';\n const orgId = '1704d30d-a131-4bc7-9449-948487643793';\n\n describe('Call Forward Always test', () => {\n let callSettingsClient: IUcmBackendConnector;\n const callForwardPayload: CallForwardingSettingsUCM = {\n callForwarding: {\n always: [\n {\n dn: '8001',\n destination: '8004',\n destinationVoicemailEnabled: false,\n e164Number: '+14922999903',\n },\n {\n dn: '8002',\n destinationVoicemailEnabled: true,\n e164Number: '',\n },\n {\n dn: '8003',\n destinationVoicemailEnabled: false,\n e164Number: '',\n },\n {\n dn: '8000',\n destination: '8007',\n destinationVoicemailEnabled: false,\n e164Number: '8006',\n },\n ],\n },\n };\n\n const callForwardingUri = `${WEBEX_API_CONFIG_INT_URL}/${PEOPLE_ENDPOINT}/${userId}/${CF_ENDPOINT.toLowerCase()}?${ORG_ENDPOINT}=${orgId}`;\n\n beforeAll(() => {\n callSettingsClient = new UcmBackendConnector(webex, {level: LOGGER.INFO}, false);\n });\n\n beforeEach(() => {\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: callForwardPayload,\n });\n\n webex.request.mockResolvedValue(responsePayload);\n\n // Setup log spies\n jest.spyOn(log, 'log').mockImplementation(() => {});\n jest.spyOn(log, 'info').mockImplementation(() => {});\n jest.spyOn(log, 'warn').mockImplementation(() => {});\n jest.spyOn(log, 'error').mockImplementation(() => {});\n });\n\n it('Success: Get Call Forward Always setting when set to destination', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8001');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('8004');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8001', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8001',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Success: Get Call Forward Always setting when set to voicemail', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8002');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('VOICEMAIL');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8002', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8002',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Success: Get Call Forward Always setting when not set', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8003');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(false);\n expect(callForwardSetting.destination).toBeFalsy();\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8003', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8003',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Success: Get Call Forward Always setting when directory num matching with e16number and set to destination', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8006');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('8007');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8006', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8006',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Failure: Get Call Forward Always setting fails', async () => {\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 503,\n });\n\n webex.request.mockClear();\n webex.request.mockRejectedValue(responsePayload);\n const serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8002');\n\n expect(response.statusCode).toEqual(503);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Unable to establish a connection with the server');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(responsePayload, {\n file: UCM_CONNECTOR_FILE,\n method: callSettingsClient.getCallForwardAlwaysSetting.name,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8002', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.error).toHaveBeenCalledWith(\n `Failed to get call forward always setting: ${JSON.stringify(responsePayload)}`,\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.log).not.toHaveBeenCalled();\n });\n\n it('Failure: Get Call Forward Always setting fails - wrong directoryNumber', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8005');\n\n expect(response.statusCode).toEqual(404);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Directory Number is not assigned to the user');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8005', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Failure: Get Call Forward Always setting fails when no directoryNumberProvided', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting();\n\n expect(response.statusCode).toEqual(400);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Directory Number is mandatory for UCM backend');\n expect(webex.request).not.toBeCalled();\n\n expect(log.info).toHaveBeenCalledWith('invoking', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.error).not.toHaveBeenCalled();\n });\n\n describe('Unsupported methods return failure', () => {\n const unsupportedMethods = [\n 'getCallWaitingSetting',\n 'getDoNotDisturbSetting',\n 'setDoNotDisturbSetting',\n 'getCallForwardSetting',\n 'setCallForwardSetting',\n 'getVoicemailSetting',\n 'setVoicemailSetting',\n ];\n\n it.each(unsupportedMethods)('%s', async (methodName) => {\n const response = await callSettingsClient[methodName]();\n\n expect(response.statusCode).toEqual(501);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Method is not implemented at the backend');\n expect(webex.request).not.toBeCalled();\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_types","require","_Logger","_interopRequireDefault","utils","_interopRequireWildcard","_constants","_testUtil","_types2","_UcmBackendConnector","_constants2","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","jest","spyOn","mockResolvedValue","undefined","describe","webex","getTestUtilsWebex","userId","orgId","callSettingsClient","callForwardPayload","callForwarding","always","dn","destination","destinationVoicemailEnabled","e164Number","callForwardingUri","concat","WEBEX_API_CONFIG_INT_URL","PEOPLE_ENDPOINT","CF_ENDPOINT","toLowerCase","ORG_ENDPOINT","beforeAll","UcmBackendConnector","level","LOGGER","INFO","beforeEach","responsePayload","statusCode","body","request","log","mockImplementation","it","_asyncToGenerator2","_regenerator","mark","_callee","response","callForwardSetting","wrap","_callee$","_context","prev","next","getCallForwardAlwaysSetting","sent","data","callSetting","expect","toEqual","message","SUCCESS_MESSAGE","enabled","toBeCalledOnceWith","method","HTTP_METHODS","GET","uri","info","toHaveBeenCalledWith","file","UCM_CONNECTOR_FILE","error","not","toHaveBeenCalled","stop","_callee2","_callee2$","_context2","_callee3","_callee3$","_context3","toBeFalsy","_callee4","_callee4$","_context4","_callee5","serviceErrorCodeHandlerSpy","_callee5$","_context5","mockClear","mockRejectedValue","FAILURE_MESSAGE","name","Error","_callee6","_callee6$","_context6","_callee7","_callee7$","_context7","toBeCalled","unsupportedMethods","each","_ref8","_callee8","methodName","_callee8$","_context8","_x","apply","arguments"],"sources":["UcmBackendConnector.test.ts"],"sourcesContent":["import {LOGGER} from '../Logger/types';\nimport log from '../Logger';\nimport * as utils from '../common/Utils';\nimport {\n FAILURE_MESSAGE,\n SUCCESS_MESSAGE,\n UCM_CONNECTOR_FILE,\n WEBEX_API_CONFIG_INT_URL,\n} from '../common/constants';\nimport {getTestUtilsWebex} from '../common/testUtil';\nimport {HTTP_METHODS, WebexRequestPayload} from '../common/types';\nimport {UcmBackendConnector} from './UcmBackendConnector';\nimport {CF_ENDPOINT, ORG_ENDPOINT, PEOPLE_ENDPOINT} from './constants';\nimport {CallForwardAlwaysSetting, CallForwardingSettingsUCM, IUcmBackendConnector} from './types';\n\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('Call Settings Client Tests for UcmBackendConnector', () => {\n const webex = getTestUtilsWebex();\n\n const userId = '8a67806f-fc4d-446b-a131-31e71ea5b0e9';\n const orgId = '1704d30d-a131-4bc7-9449-948487643793';\n\n describe('Call Forward Always test', () => {\n let callSettingsClient: IUcmBackendConnector;\n const callForwardPayload: CallForwardingSettingsUCM = {\n callForwarding: {\n always: [\n {\n dn: '8001',\n destination: '8004',\n destinationVoicemailEnabled: false,\n e164Number: '+14922999903',\n },\n {\n dn: '8002',\n destinationVoicemailEnabled: true,\n e164Number: '',\n },\n {\n dn: '8003',\n destinationVoicemailEnabled: false,\n e164Number: '',\n },\n {\n dn: '8000',\n destination: '8007',\n destinationVoicemailEnabled: false,\n e164Number: '8006',\n },\n ],\n },\n };\n\n const callForwardingUri = `${WEBEX_API_CONFIG_INT_URL}/${PEOPLE_ENDPOINT}/${userId}/${CF_ENDPOINT.toLowerCase()}?${ORG_ENDPOINT}=${orgId}`;\n\n beforeAll(() => {\n callSettingsClient = new UcmBackendConnector(webex, {level: LOGGER.INFO}, false);\n });\n\n beforeEach(() => {\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: callForwardPayload,\n });\n\n webex.request.mockResolvedValue(responsePayload);\n\n // Setup log spies\n jest.spyOn(log, 'log').mockImplementation(() => {});\n jest.spyOn(log, 'info').mockImplementation(() => {});\n jest.spyOn(log, 'warn').mockImplementation(() => {});\n jest.spyOn(log, 'error').mockImplementation(() => {});\n });\n\n it('Success: Get Call Forward Always setting when set to destination', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8001');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('8004');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8001', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8001',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Success: Get Call Forward Always setting when set to voicemail', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8002');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('VOICEMAIL');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8002', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8002',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Success: Get Call Forward Always setting when not set', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8003');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(false);\n expect(callForwardSetting.destination).toBeFalsy();\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8003', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8003',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Success: Get Call Forward Always setting when directory num matching with e16number and set to destination', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8006');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('8007');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8006', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8006',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Failure: Get Call Forward Always setting fails', async () => {\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 503,\n });\n\n webex.request.mockClear();\n webex.request.mockRejectedValue(responsePayload);\n const serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8002');\n\n expect(response.statusCode).toEqual(503);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Unable to establish a connection with the server');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(responsePayload, {\n file: UCM_CONNECTOR_FILE,\n method: callSettingsClient.getCallForwardAlwaysSetting.name,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8002', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.error).toHaveBeenCalledWith(\n new Error('Failed to get call forward always setting: [object Object]'),\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.log).not.toHaveBeenCalled();\n });\n\n it('Failure: Get Call Forward Always setting fails - wrong directoryNumber', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8005');\n\n expect(response.statusCode).toEqual(404);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Directory Number is not assigned to the user');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8005', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Failure: Get Call Forward Always setting fails when no directoryNumberProvided', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting();\n\n expect(response.statusCode).toEqual(400);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Directory Number is mandatory for UCM backend');\n expect(webex.request).not.toBeCalled();\n\n expect(log.info).toHaveBeenCalledWith('invoking', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.error).not.toHaveBeenCalled();\n });\n\n describe('Unsupported methods return failure', () => {\n const unsupportedMethods = [\n 'getCallWaitingSetting',\n 'getDoNotDisturbSetting',\n 'setDoNotDisturbSetting',\n 'getCallForwardSetting',\n 'setCallForwardSetting',\n 'getVoicemailSetting',\n 'setVoicemailSetting',\n ];\n\n it.each(unsupportedMethods)('%s', async (methodName) => {\n const response = await callSettingsClient[methodName]();\n\n expect(response.statusCode).toEqual(501);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Method is not implemented at the backend');\n expect(webex.request).not.toBeCalled();\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}