@webex/calling 3.10.0-next.7 → 3.10.0-next.9

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.
@@ -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"],"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"],"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","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":[]}
@@ -1671,33 +1671,34 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1671
1671
  case 0:
1672
1672
  _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with: ").concat(this.getCorrelationId()), {
1673
1673
  file: _constants.CALL_FILE,
1674
- method: _constants.METHODS.HANDLE_OUTGOING_CALL_DISCONNECT
1674
+ method: _constants.METHODS.HANDLE_INCOMING_CALL_DISCONNECT
1675
1675
  });
1676
+ this.emit(_types3.CALL_EVENT_KEYS.DISCONNECT, this.correlationId);
1676
1677
  this.setDisconnectReason();
1677
- _context0.prev = 2;
1678
- _context0.next = 5;
1678
+ _context0.prev = 3;
1679
+ _context0.next = 6;
1679
1680
  return this.delete();
1680
- case 5:
1681
+ case 6:
1681
1682
  response = _context0.sent;
1682
1683
  _Logger.default.log("Response code: ".concat(response.statusCode), {
1683
1684
  file: _constants.CALL_FILE,
1684
- method: _constants.METHODS.HANDLE_OUTGOING_CALL_DISCONNECT
1685
+ method: _constants.METHODS.HANDLE_INCOMING_CALL_DISCONNECT
1685
1686
  });
1686
- _context0.next = 13;
1687
+ _context0.next = 14;
1687
1688
  break;
1688
- case 9:
1689
- _context0.prev = 9;
1690
- _context0.t0 = _context0["catch"](2);
1689
+ case 10:
1690
+ _context0.prev = 10;
1691
+ _context0.t0 = _context0["catch"](3);
1691
1692
  _Logger.default.warn("Failed to delete the call: ".concat((0, _stringify.default)(_context0.t0)), {
1692
1693
  file: _constants.CALL_FILE,
1693
- method: _constants.METHODS.HANDLE_OUTGOING_CALL_DISCONNECT
1694
+ method: _constants.METHODS.HANDLE_INCOMING_CALL_DISCONNECT
1694
1695
  });
1695
1696
  (0, _Utils.uploadLogs)({
1696
1697
  correlationId: this.correlationId,
1697
1698
  callId: this.callId,
1698
1699
  broadworksCorrelationInfo: this.broadworksCorrelationInfo
1699
1700
  });
1700
- case 13:
1701
+ case 14:
1701
1702
  this.deleteCb(this.correlationId);
1702
1703
 
1703
1704
  /* Clear the stream listeners */
@@ -1722,12 +1723,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1722
1723
  this.sendCallStateMachineEvt({
1723
1724
  type: 'E_CALL_CLEARED'
1724
1725
  });
1725
- this.emit(_types3.CALL_EVENT_KEYS.DISCONNECT, this.correlationId);
1726
1726
  case 20:
1727
1727
  case "end":
1728
1728
  return _context0.stop();
1729
1729
  }
1730
- }, _callee0, this, [[2, 9]]);
1730
+ }, _callee0, this, [[3, 10]]);
1731
1731
  }));
1732
1732
  function handleIncomingCallDisconnect(_x8) {
1733
1733
  return _handleIncomingCallDisconnect.apply(this, arguments);