@webex/calling 3.12.0-mobius-socket.19 → 3.12.0-mobius-socket.21
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.
- package/dist/CallingClient/CallingClient.js +49 -49
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +4 -12
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/mobius-socket/errors.js +47 -6
- package/dist/mobius-socket/errors.js.map +1 -1
- package/dist/mobius-socket/index.js +4 -10
- package/dist/mobius-socket/index.js.map +1 -1
- package/dist/mobius-socket/mobius-socket.js +151 -140
- package/dist/mobius-socket/mobius-socket.js.map +1 -1
- package/dist/mobius-socket/mobius-socket.test.js +18 -11
- package/dist/mobius-socket/mobius-socket.test.js.map +1 -1
- package/dist/mobius-socket/socket/constants.js +14 -0
- package/dist/mobius-socket/socket/constants.js.map +1 -1
- package/dist/mobius-socket/socket/socket-base.js +93 -138
- package/dist/mobius-socket/socket/socket-base.js.map +1 -1
- package/dist/mobius-socket/socket/types.js.map +1 -1
- package/dist/mobius-socket/socket.test.js +3 -3
- package/dist/mobius-socket/socket.test.js.map +1 -1
- package/dist/mobius-socket/types.js.map +1 -1
- package/dist/module/CallingClient/CallingClient.js +2 -5
- package/dist/module/mobius-socket/errors.js +17 -0
- package/dist/module/mobius-socket/mobius-socket.js +39 -41
- package/dist/module/mobius-socket/socket/socket-base.js +26 -58
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/mobius-socket/errors.d.ts +4 -1
- package/dist/types/mobius-socket/errors.d.ts.map +1 -1
- package/dist/types/mobius-socket/index.d.ts.map +1 -1
- package/dist/types/mobius-socket/mobius-socket.d.ts +14 -1
- package/dist/types/mobius-socket/mobius-socket.d.ts.map +1 -1
- package/dist/types/mobius-socket/socket/constants.d.ts.map +1 -1
- package/dist/types/mobius-socket/socket/socket-base.d.ts +0 -1
- package/dist/types/mobius-socket/socket/socket-base.d.ts.map +1 -1
- package/dist/types/mobius-socket/socket/types.d.ts +0 -8
- package/dist/types/mobius-socket/socket/types.d.ts.map +1 -1
- package/dist/types/mobius-socket/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_asyncMutex","require","Media","_interopRequireWildcard","_types","_testUtil","_types2","_types3","_Logger","_interopRequireDefault","_CallingClient","_Utils","utils","_callManager","_constants","_callRecordFixtures","_callingClientFixtures","_line","_registerFixtures","_constants2","_types4","_windowsChromiumIceWarmupUtils","_request","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t5","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys2","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","jest","mock","getMobiusSocketInstance","fn","mockReturnValue","sendWssRequest","connect","on","off","global","crypto","randomUUID","spyOn","mockResolvedValue","undefined","describe","handleErrorSpy","setLoggerSpy","webex","getTestUtilsWebex","internal","services","mockCatalogUS","getMobiusClusters","mockUSServiceHosts","defaultServiceIndicator","ServiceIndicator","CALLING","callManager","getCallManager","infoSpy","log","logSpy","warnSpy","originalProcessNextTick","process","nextTick","flushPromises","_promise","resolve","beforeEach","APIRequest","resetInstance","getInstance","afterAll","removeAllListeners","it","_asyncToGenerator2","_regenerator","mark","_callee","callingClient","wrap","_context","prev","next","_hostCatalog","_serviceUrls","mobius","createClient","logger","level","LOGGER","INFO","sent","expect","toHaveBeenCalledTimes","toStrictEqual","stop","skip","_callee2","_context2","mockCatalogEU","mockEUServiceHosts","toBe","afterEach","_callee4","_context4","_callee3","_context3","toBeTruthy","not","toThrow","Error","_callee6","serviceDataObj","_context6","indicator","domain","_callee5","_context5","serviceData","_callee7","_t","_context7","message","toEqual","assertions","_callee8","_t2","_context8","_callee0","_context0","_callee9","_context9","_callee1","_t3","_context1","CONTACT_CENTER","_callee11","_context11","_callee10","_context10","_callee12","_context12","getLoggingLevel","clearAllTimers","clearAllMocks","useRealTimers","_callee13","_context13","request","mockResolvedValueOnce","regionPayload","discoveryPayload","toBeCalledTimes","primaryMobiusUris","primaryUrl","toBeCalled","nthCalledWith","method","uri","concat","DISCOVERY_URL","addAuthHeader","headers","SPARK_USER_AGENT","getMockRequestTemplate","URL_ENDPOINT","regionBody","clientRegion","countryCode","_callee14","failurePayload","_context14","statusCode","mockRejectedValueOnce","toBeCalledWith","anything","file","CALLING_CLIENT_FILE","objectContaining","_callee15","_context15","mockReset","discovery","region","country","toHaveBeenCalledWith","METHOD_START_MESSAGE","toBeCalledOnceWith","toHaveBeenCalled","mobiusCluster","checkCluster","_ref16","_callee16","mockServiceHosts","mockCatalog","_context16","_x","_x2","each","_ref17","_callee17","clusterName","_t4","_context17","abrupt","mockIntServiceHosts","mockCatalogUSInt","mockEUIntServiceHosts","mockCatalogEUInt","_x3","line","_callee18","_context18","_values","lineDict","_keys","getLines","reg","windowEventSpy","deRegSpy","restoreSpy","restartRegisterSpy","registerSpy","metricSpy","_callee19","_context19","useFakeTimers","registrationPayload","window","registration","register","callCollection","_callee20","g","clearKeepaliveSpy","offlineCb","_context20","fetch","calls","stringContaining","_callee21","_context21","any","_callee22","onlineCb","_context22","String","_callee23","mercuryOfflineCb","_context23","mercury","METRIC_EVENT","CONNECTION_ERROR","CONNECTION_ACTION","MERCURY_DOWN","METRIC_TYPE","BEHAVIORAL","_callee24","handleConnectionRestoreSpy","mercuryOnlineCb","_context24","advanceTimersByTime","NETWORK_FLAP_TIMEOUT","REGISTRATION_FILE","getActiveMobiusUrl","NETWORK_FLAP","_callee25","_context25","setStatus","RegistrationStatus","IDLE","_callee26","callKeepaliveSpy","deleteSpy","_context26","createCall","getActiveCalls","state","value","_callee27","_context27","MERCURY_UP","mutex","Mutex","userId","device","clientDeviceUri","url","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","URL","primary","backupMobiusUris","backup","beforeAll","_callee28","_context28","Line","end","getSDKConnector","getWebex","makeCall","address","type","CallType","URI","getConnectedCall","mockCall","mockCall2","mockActiveCalls","mockCorrelationId","mockCorrelationId2","mockDeviceId","lineId","mockDeviceId2","mockCall3","mockCorrelationId3","mockLineId","mockLineId2","mockOn","_callee29","_context29","done","CALLING_CLIENT_EVENT_KEYS","USER_SESSION_INFO","event","data","MOCK_SESSION_EVENT","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","callSessionCallback","userSessions","MOCK_MULTIPLE_SESSIONS_EVENT","asyncEventCallback","mobiusSocketMock","_callee30","asyncEventOnCall","_context30","features","developer","requireMock","mockClear","find","_callee31","callEventSpy","_context31","mockImplementation","eventType","callId","callUrl","deviceId","correlationId","primaryMobius","backupMobius","_callee32","_context32","_callee33","devices","responsePayload","response","_context33","status","lastSeen","addresses","body","getDevices","HTTP_METHODS","GET","service","ALLOWED_SERVICES","MOBIUS","CISCO_DEVICE_URL","CALLING_USER_AGENT","_callee34","requestCalls","_context34","origRTCPeerConnection","_Class","RTCPeerConnection","_classCallCheck2","constructor","instances","_createClass2","key","createDataChannel","addTransceiver","createOffer","sdp","setLocalDescription","desc","localDescription","setRemoteDescription","remoteDescription","createAnswer","addIceCandidate","close","addEventListener","removeEventListener","_callee35","_context35","windowsChromiumIceWarmup","resolves"],"sources":["CallingClient.test.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport * as Media from '@webex/internal-media-core';\nimport {LOGGER} from '../Logger/types';\nimport {\n getTestUtilsWebex,\n getMockRequestTemplate,\n getMobiusDiscoveryResponse,\n} from '../common/testUtil';\nimport {\n CallType,\n RegistrationStatus,\n ServiceIndicator,\n ALLOWED_SERVICES,\n HTTP_METHODS,\n WebexRequestPayload,\n} from '../common/types';\n/* eslint-disable dot-notation */\nimport {CALLING_CLIENT_EVENT_KEYS, CallSessionEvent, MOBIUS_EVENT_KEYS} from '../Events/types';\nimport log from '../Logger';\nimport {createClient} from './CallingClient';\nimport {ICallingClient} from './types';\nimport * as utils from '../common/Utils';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n DISCOVERY_URL,\n NETWORK_FLAP_TIMEOUT,\n REGISTRATION_FILE,\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n} from './constants';\nimport {MOCK_MULTIPLE_SESSIONS_EVENT, MOCK_SESSION_EVENT} from './callRecordFixtures';\nimport {ILine} from './line/types';\nimport {\n regionBody,\n regionPayload,\n primaryUrl,\n discoveryPayload,\n registrationPayload,\n mockEUServiceHosts,\n mockIntServiceHosts,\n mockEUIntServiceHosts,\n mockCatalogEU,\n mockCatalogUSInt,\n mockCatalogUS,\n mockCatalogEUInt,\n mockUSServiceHosts,\n} from './callingClientFixtures';\nimport Line from './line';\nimport {filterMobiusUris} from '../common/Utils';\nimport {URL} from './registration/registerFixtures';\nimport {ICall} from './calling/types';\nimport {ServiceHost} from '../SDKConnector/types';\nimport {METHOD_START_MESSAGE} from '../common/constants';\nimport {METRIC_EVENT, CONNECTION_ACTION, METRIC_TYPE} from '../Metrics/types';\nimport windowsChromiumIceWarmup from './windowsChromiumIceWarmupUtils';\nimport {APIRequest} from './utils/request';\n\njest.mock('../mobius-socket', () => ({\n getMobiusSocketInstance: jest.fn().mockReturnValue({\n sendWssRequest: jest.fn(),\n connect: jest.fn(),\n on: jest.fn(),\n off: jest.fn(),\n }),\n}));\n\nglobal.crypto = {\n randomUUID: () => '12345678-1234-5678-1234-567812345678',\n} as unknown as Crypto;\n\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('CallingClient Tests', () => {\n // Common initializers\n\n const handleErrorSpy = jest.spyOn(utils, 'handleCallingClientErrors');\n const setLoggerSpy = jest.spyOn(Media, 'setLogger');\n const webex = getTestUtilsWebex();\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockUSServiceHosts);\n const defaultServiceIndicator = ServiceIndicator.CALLING;\n const callManager = getCallManager(webex, defaultServiceIndicator);\n\n const infoSpy = jest.spyOn(log, 'info');\n const logSpy = jest.spyOn(log, 'log');\n const warnSpy = jest.spyOn(log, 'warn');\n\n const originalProcessNextTick = process.nextTick;\n function flushPromises() {\n return new Promise((resolve) => {\n originalProcessNextTick(resolve);\n });\n }\n\n beforeEach(() => {\n APIRequest.resetInstance();\n APIRequest.getInstance({webex});\n });\n\n describe('CallingClient pick Mobius cluster using Service Host Tests', () => {\n afterAll(() => {\n callManager.removeAllListeners();\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1';\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n });\n\n it('should use default mobius service host when Service URL is invalid', async () => {\n webex.internal.services._hostCatalog = mockCatalogUS;\n webex.internal.services._serviceUrls.mobius = 'invalid-url';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(setLoggerSpy).toHaveBeenCalledTimes(1);\n expect(callingClient['mobiusClusters']).toStrictEqual(mockUSServiceHosts);\n });\n\n // MOBIUS TODO: Remove the skip later. Added for testing purposes.\n it.skip('should set mobiusServiceHost correctly when URL is valid', async () => {\n webex.internal.services._hostCatalog = mockCatalogEU;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockEUServiceHosts);\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusHost']).toBe(\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1'\n );\n expect(callingClient['mobiusClusters']).toStrictEqual(mockEUServiceHosts);\n });\n });\n\n describe('ServiceData tests', () => {\n let callingClient: ICallingClient | undefined;\n\n afterEach(() => {\n callManager.removeAllListeners();\n callingClient = undefined;\n });\n\n /**\n * No input sdk config to callingClient, it should default to service type\n * calling and empty domain value.\n */\n it('Verify valid calling serviceData with no input sdk config', async () => {\n expect(async () => {\n callingClient = await createClient(webex);\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying empty string for\n * both indicator and domain in it.\n *\n * It should default to service type calling and empty domain value.\n *\n */\n it('Verify invalid empty service indicator, empty domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: '', domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying invalid value for indicator\n * and valid domain type string for domain field in it.\n *\n * It should throw error and abort execution as indicator value is invalid.\n *\n * INDICATOR value MUST MATCH with one of the values in ServiceIndicator enum.\n */\n it('Verify invalid service indicator, valid domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: 'test', domain: 'test.example.com'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual(\n 'Invalid service indicator, Allowed values are: calling, contactcenter and guestcalling'\n );\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', but an invalid domain type string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type calling is allowed to be empty but if it carries a non-empty\n * string then it must be of valid domain type.\n */\n it('CALLING: verify invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: 'test'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', and an empty string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'calling' is allowed to be empty.\n */\n it('CALLING: verify valid empty service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter', but an empty string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify empty invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CONTACT_CENTER, domain: ''};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter' , and a valid domain type string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify valid service domain', async () => {\n const serviceDataObj = {\n indicator: ServiceIndicator.CONTACT_CENTER,\n domain: 'test.example.com',\n };\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n it('Get current log level', async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(callingClient).toBeTruthy();\n expect(callingClient.getLoggingLevel).toBeTruthy();\n expect(callingClient.getLoggingLevel()).toEqual(LOGGER.INFO);\n });\n });\n\n describe('Mobius Server discovery tests', () => {\n let callingClient;\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n // MOBIUS TODO: Remove the skip later. Added for testing purposes.\n it.skip('verify successful mobius server url discovery', async () => {\n webex.request.mockResolvedValueOnce(regionPayload).mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).toBeCalledTimes(2);\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n uri: `${DISCOVERY_URL}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(webex.request).nthCalledWith(2, {\n method: 'GET',\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n });\n });\n\n // MOBIUS TODO: Remove the skip later. Added for testing purposes.\n it.skip('when region discovery succeeds but region based mobius url discovery fails with final error', async () => {\n const failurePayload = {\n statusCode: 401,\n };\n\n webex.request.mockResolvedValueOnce(regionPayload).mockRejectedValueOnce(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(handleErrorSpy).toBeCalledWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n expect(webex.request).toBeCalledTimes(2);\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n uri: `${DISCOVERY_URL}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n expect.objectContaining({\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n })\n );\n });\n\n // MOBIUS TODO: Remove the skip later. Added for testing purposes.\n it.skip('Verify successful mobius server url discovery after initializing callingClient through a config', async () => {\n infoSpy.mockReset();\n webex.request.mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {\n discovery: {\n region: 'AP-SOUTHEAST',\n country: 'IN',\n },\n logger: {\n level: LOGGER.INFO,\n },\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: 'CallingClient',\n method: 'getMobiusServers',\n });\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n method: 'GET',\n });\n\n expect(handleErrorSpy).not.toHaveBeenCalled();\n });\n });\n\n describe('Testing each cluster present withing host catalog', () => {\n const mobiusCluster = [\n 'mobius-eu-central-1.prod.infra.webex.com',\n 'mobius-us-east-1.int.infra.webex.com',\n 'mobius-eu-central-1.int.infra.webex.com',\n ];\n\n const checkCluster = async (\n mockServiceHosts: ServiceHost[],\n mockCatalog: Record<string, ServiceHost[]>\n ) => {\n webex.internal.services._hostCatalog = mockCatalog;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockServiceHosts);\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusClusters']).toStrictEqual(mockServiceHosts);\n };\n\n it.each(mobiusCluster)('%s', async (clusterName) => {\n switch (clusterName) {\n case 'mobius-eu-central-1.prod.infra.webex.com':\n checkCluster(mockEUServiceHosts, mockCatalogEU);\n break;\n case 'mobius-us-east-1.int.infra.webex.com':\n checkCluster(mockIntServiceHosts, mockCatalogUSInt);\n break;\n case 'mobius-eu-central-1.int.infra.webex.com':\n checkCluster(mockEUIntServiceHosts, mockCatalogEUInt);\n break;\n default:\n break;\n }\n });\n });\n\n describe('Line creation tests', () => {\n let callingClient;\n let line;\n\n beforeEach(async () => {\n callingClient = await createClient(webex);\n line = Object.values(callingClient.lineDict)[0];\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify line dict successfully created', () => {\n expect(callingClient.lineDict).toBeTruthy();\n expect(line).toBeTruthy();\n expect(Object.keys(callingClient.lineDict).length).toEqual(1);\n });\n\n it('verify getLines response', () => {\n expect(callingClient.getLines).toBeTruthy();\n expect(callingClient.getLines()).toEqual(callingClient.lineDict);\n });\n });\n\n describe('Connectivity and Mercury event handlers', () => {\n let callingClient: ICallingClient;\n let line;\n let reg;\n let windowEventSpy: jest.SpyInstance;\n let deRegSpy;\n let restoreSpy;\n let restartRegisterSpy;\n let registerSpy;\n let metricSpy;\n\n beforeEach(async () => {\n jest.useFakeTimers();\n webex.request\n .mockResolvedValueOnce(regionPayload)\n .mockResolvedValueOnce(discoveryPayload)\n .mockResolvedValueOnce(registrationPayload);\n\n windowEventSpy = jest.spyOn(window, 'addEventListener');\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n line = Object.values(callingClient.lineDict)[0] as ILine;\n reg = line.registration;\n await line.register();\n\n deRegSpy = jest.spyOn(reg, 'deregister');\n restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n restartRegisterSpy = jest.spyOn(reg, 'restartRegistration');\n registerSpy = jest.spyOn(reg, 'attemptRegistrationWithServers');\n metricSpy = jest.spyOn(callingClient['metricManager'], 'submitConnectionMetrics');\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callingClient['callManager'].callCollection = {};\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('window offline handler sets networkDown and clears keepalive when network is unreachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockRejectedValueOnce(new Error('network fail'));\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Network connectivity probe failed'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'pingExternal',\n }\n );\n expect(callingClient['isNetworkDown']).toBe(true);\n expect(clearKeepaliveSpy).toHaveBeenCalled();\n });\n\n it('window offline handler does not clear keepalive when network is reachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockResolvedValueOnce({});\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(g.fetch).toHaveBeenCalledWith(\n 'https://www.google.com/generate_204',\n expect.any(Object)\n );\n expect(callingClient['isNetworkDown']).toBe(false);\n expect(clearKeepaliveSpy).not.toHaveBeenCalled();\n });\n\n it('window online handler sets networkUpTimestamp and logs', async () => {\n const onlineCb = windowEventSpy.mock.calls[0][1];\n await onlineCb();\n\n expect(callingClient['networkUpTimestamp']).toEqual(expect.any(String));\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: 'handleNetworkOnline',\n });\n });\n\n it('mercury offline submits metrics and sets timestamp', async () => {\n const mercuryOfflineCb = webex.internal.mercury.on.mock.calls[1][1];\n await mercuryOfflineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Mercury down, waiting for connection to be up'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'handleMercuryOffline',\n }\n );\n expect(callingClient['mercuryDownTimestamp']).toEqual(expect.any(String));\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_DOWN,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n ''\n );\n });\n\n it('handles reconnection with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).toHaveBeenCalledWith(true);\n expect(logSpy).toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).toHaveBeenCalledWith();\n expect(restoreSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('no reconnection for idle registration with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n reg.setStatus(RegistrationStatus.IDLE);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).not.toHaveBeenCalledWith(true);\n expect(logSpy).not.toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).not.toHaveBeenCalledWith();\n expect(restoreSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('handle calls status check once mercury comes back up after a network flap', async () => {\n callingClient['isNetworkDown'] = true;\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n\n it('handle calls status check once mercury comes back up with stable network', async () => {\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_UP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n });\n\n // Calling related test cases\n describe('Calling tests', () => {\n const mutex = new Mutex();\n const userId = webex.internal.device.userId;\n const clientDeviceUri = webex.internal.device.url;\n const mobiusUris = filterMobiusUris(getMobiusDiscoveryResponse(), URL);\n const primaryMobiusUris = jest.fn(() => mobiusUris.primary);\n const backupMobiusUris = jest.fn(() => mobiusUris.backup);\n\n let callingClient;\n let line: Line;\n\n beforeAll(async () => {\n callingClient = await createClient(webex);\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n const calls = Object.values(callManager.getActiveCalls());\n calls.forEach((call) => {\n call.end();\n });\n });\n\n afterAll(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify calling client object', () => {\n expect(callingClient.getSDKConnector().getWebex().internal.device.userId).toBe(\n '8a67806f-fc4d-446b-a131-31e71ea5b0e9'\n );\n });\n\n it('returns undefined when there is no connected call', () => {\n line.register();\n line.makeCall({address: '123456', type: CallType.URI});\n expect(callingClient.getConnectedCall()).toEqual(undefined);\n });\n\n it('returns the connected call', () => {\n line.register();\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n // Connected call\n mockCall['connected'] = true;\n mockCall['earlyMedia'] = false;\n mockCall['callStateMachine'].state.value = 'S_CALL_ESTABLISHED';\n\n // Held call\n mockCall2['connected'] = true;\n mockCall2['held'] = true;\n mockCall2['earlyMedia'] = false;\n mockCall2['callStateMachine'].state.value = 'S_CALL_HOLD';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getConnectedCall()).toEqual(mockCall);\n });\n it('returns all active calls', () => {\n callingClient.lineDict = {\n mockDeviceId: {lineId: 'mockLineId'} as ILine,\n mockDeviceId2: {lineId: 'mockLineId2'} as ILine,\n };\n\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n const mockCall3 = line.makeCall({address: '9101', type: CallType.URI});\n\n mockCall.lineId = 'mockLineId';\n mockCall2.lineId = 'mockLineId2';\n mockCall3.lineId = 'mockLineId2';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n mockCorrelationId3: mockCall3 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getActiveCalls()).toEqual({\n mockLineId: [mockCall],\n mockLineId2: [mockCall2, mockCall3],\n });\n });\n });\n\n describe('Call Session Event test', () => {\n const mockOn = webex.internal.mercury.on;\n let callingClient: ICallingClient;\n\n beforeEach(async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify the recent user session event ', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT.data);\n done();\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('drop the recent user session if there is no webex calling type', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data.userSessions.userSessions.length).toEqual(1);\n done();\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_MULTIPLE_SESSIONS_EVENT);\n });\n });\n\n describe('Mobius async_event routing', () => {\n let callingClient: ICallingClient;\n let asyncEventCallback;\n let mobiusSocketMock;\n\n beforeEach(async () => {\n webex.internal.device.features.developer.get = jest.fn().mockReturnValue({value: true});\n APIRequest.resetInstance();\n APIRequest.getInstance({webex});\n\n mobiusSocketMock = (\n jest.requireMock('../mobius-socket') as {\n getMobiusSocketInstance: (w: unknown) => unknown;\n }\n ).getMobiusSocketInstance(webex) as {\n on: jest.Mock;\n off: jest.Mock;\n };\n (mobiusSocketMock.on as jest.Mock).mockClear();\n (mobiusSocketMock.off as jest.Mock).mockClear();\n\n callingClient = await createClient(webex, {\n logger: {level: LOGGER.INFO},\n });\n\n const asyncEventOnCall = (mobiusSocketMock.on as jest.Mock).mock.calls.find(\n (call) => call[0] === 'event:async_event'\n );\n asyncEventCallback = asyncEventOnCall[1];\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n webex.internal.device.features.developer.get = jest.fn().mockReturnValue({value: false});\n });\n\n it('routes mobius.* async events to callManager', async () => {\n const callEventSpy = jest\n .spyOn(callingClient['callManager'], 'dequeueWsEvents')\n .mockImplementation(() => undefined);\n\n await asyncEventCallback({\n type: 'async_event',\n data: {\n eventType: 'mobius.call',\n callId: 'fcf86aa5-5539-4c9f-8b72-667786ae9b6c',\n callUrl: 'https://mobius-a.wbx2.com/api/v1/calling/web/devices/d1/calls/c1',\n deviceId: 'd1',\n correlationId: 'corr-1',\n },\n });\n\n expect(callEventSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n type: 'async_event',\n data: expect.objectContaining({\n eventType: 'mobius.call',\n }),\n })\n );\n });\n });\n\n describe('getDevices', () => {\n let callingClient: ICallingClient;\n const primaryMobius = 'https://mobius.primary/api/v1/calling/web/';\n const backupMobius = 'https://mobius.backup/api/v1/calling/web/';\n\n beforeEach(async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n callingClient.primaryMobiusUris = [primaryMobius];\n callingClient.backupMobiusUris = [backupMobius];\n (webex.request as jest.Mock).mockClear();\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n });\n\n it('fetches devices for the provided userId', async () => {\n const devices = [\n {\n deviceId: 'device-1',\n uri: 'https://mobius.test/api/v1/calling/web/devices/device-1',\n status: 'ACTIVE',\n lastSeen: '2024-01-01T00:00:00Z',\n addresses: [],\n clientDeviceUri: 'client-device-uri',\n },\n ];\n\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: {userId: 'user-123', devices},\n });\n\n (webex.request as jest.Mock).mockResolvedValue(responsePayload);\n\n const response = await callingClient.getDevices('user-123');\n\n expect(webex.request).toHaveBeenCalledWith({\n uri: 'https://mobius.primary/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(response).toEqual(devices);\n });\n\n it('falls back to backup Mobius when primary fails', async () => {\n const devices = [\n {\n deviceId: 'device-2',\n uri: 'https://mobius.backup/api/v1/calling/web/devices/device-2',\n status: 'ACTIVE',\n lastSeen: '2024-01-01T00:00:00Z',\n addresses: [],\n clientDeviceUri: 'client-device-uri',\n },\n ];\n\n const failurePayload = {\n statusCode: 404,\n };\n\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: {userId: 'user-123', devices},\n });\n\n (webex.request as jest.Mock)\n .mockRejectedValueOnce(failurePayload)\n .mockResolvedValueOnce(responsePayload);\n\n const response = await callingClient.getDevices('user-123');\n\n const requestCalls = (webex.request as jest.Mock).mock.calls;\n expect(requestCalls[0][0]).toEqual({\n uri: 'https://mobius.primary/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(requestCalls[1][0]).toEqual({\n uri: 'https://mobius.backup/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(response).toEqual(devices);\n });\n });\n\n describe('windowsChromiumIceWarmup', () => {\n let origRTCPeerConnection: any;\n\n beforeAll(() => {\n origRTCPeerConnection = global.RTCPeerConnection;\n // Minimal mock for RTCPeerConnection\n global.RTCPeerConnection = class {\n static instances: any[] = [];\n iceGatheringState = 'complete';\n localDescription = null;\n remoteDescription = null;\n onicecandidate: ((e: any) => void) | null = null;\n constructor() {\n (this.constructor as any).instances.push(this);\n }\n\n createDataChannel() {\n return {};\n }\n\n addTransceiver() {\n return {};\n }\n\n createOffer() {\n return Promise.resolve({sdp: 'offer', type: 'offer'});\n }\n\n setLocalDescription(desc: any) {\n this.localDescription = desc;\n\n return Promise.resolve();\n }\n\n setRemoteDescription(desc: any) {\n this.remoteDescription = desc;\n\n return Promise.resolve();\n }\n\n createAnswer() {\n return Promise.resolve({sdp: 'answer', type: 'answer'});\n }\n\n addIceCandidate() {\n return Promise.resolve();\n }\n\n close() {}\n addEventListener() {}\n removeEventListener() {}\n };\n });\n\n afterAll(() => {\n global.RTCPeerConnection = origRTCPeerConnection;\n });\n\n it('should complete without throwing', async () => {\n await expect(windowsChromiumIceWarmup({})).resolves.not.toThrow();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_asyncMutex","require","Media","_interopRequireWildcard","_types","_testUtil","_types2","_types3","_Logger","_interopRequireDefault","_CallingClient","_Utils","utils","_callManager","_constants","_callRecordFixtures","_callingClientFixtures","_line","_registerFixtures","_constants2","_types4","_windowsChromiumIceWarmupUtils","_request","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t5","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys2","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","jest","mock","getMobiusSocketInstance","fn","mockReturnValue","sendWssRequest","connect","on","off","global","crypto","randomUUID","spyOn","mockResolvedValue","undefined","describe","handleErrorSpy","setLoggerSpy","webex","getTestUtilsWebex","internal","services","mockCatalogUS","getMobiusClusters","mockUSServiceHosts","defaultServiceIndicator","ServiceIndicator","CALLING","callManager","getCallManager","infoSpy","log","logSpy","warnSpy","originalProcessNextTick","process","nextTick","flushPromises","_promise","resolve","beforeEach","APIRequest","resetInstance","getInstance","afterAll","removeAllListeners","it","_asyncToGenerator2","_regenerator","mark","_callee","callingClient","wrap","_context","prev","next","_hostCatalog","_serviceUrls","mobius","createClient","logger","level","LOGGER","INFO","sent","expect","toHaveBeenCalledTimes","toStrictEqual","stop","_callee2","_context2","mockCatalogEU","mockEUServiceHosts","toBe","afterEach","_callee4","_context4","_callee3","_context3","toBeTruthy","not","toThrow","Error","_callee6","serviceDataObj","_context6","indicator","domain","_callee5","_context5","serviceData","_callee7","_t","_context7","message","toEqual","assertions","_callee8","_t2","_context8","_callee0","_context0","_callee9","_context9","_callee1","_t3","_context1","CONTACT_CENTER","_callee11","_context11","_callee10","_context10","_callee12","_context12","getLoggingLevel","clearAllTimers","clearAllMocks","useRealTimers","_callee13","_context13","request","mockResolvedValueOnce","regionPayload","discoveryPayload","toBeCalledTimes","primaryMobiusUris","primaryUrl","toBeCalled","nthCalledWith","method","uri","concat","DISCOVERY_URL","addAuthHeader","headers","SPARK_USER_AGENT","getMockRequestTemplate","URL_ENDPOINT","regionBody","clientRegion","countryCode","_callee14","failurePayload","_context14","statusCode","mockRejectedValueOnce","toBeCalledWith","anything","file","CALLING_CLIENT_FILE","objectContaining","_callee15","_context15","mockReset","discovery","region","country","toHaveBeenCalledWith","METHOD_START_MESSAGE","toBeCalledOnceWith","toHaveBeenCalled","mobiusCluster","checkCluster","_ref16","_callee16","mockServiceHosts","mockCatalog","_context16","_x","_x2","each","_ref17","_callee17","clusterName","_t4","_context17","abrupt","mockIntServiceHosts","mockCatalogUSInt","mockEUIntServiceHosts","mockCatalogEUInt","_x3","line","_callee18","_context18","_values","lineDict","_keys","getLines","reg","windowEventSpy","deRegSpy","restoreSpy","restartRegisterSpy","registerSpy","metricSpy","_callee19","_context19","useFakeTimers","registrationPayload","window","registration","register","callCollection","_callee20","g","clearKeepaliveSpy","offlineCb","_context20","fetch","calls","stringContaining","_callee21","_context21","any","_callee22","onlineCb","_context22","String","_callee23","mercuryOfflineCb","_context23","mercury","METRIC_EVENT","CONNECTION_ERROR","CONNECTION_ACTION","MERCURY_DOWN","METRIC_TYPE","BEHAVIORAL","_callee24","handleConnectionRestoreSpy","mercuryOnlineCb","_context24","advanceTimersByTime","NETWORK_FLAP_TIMEOUT","REGISTRATION_FILE","getActiveMobiusUrl","NETWORK_FLAP","_callee25","_context25","setStatus","RegistrationStatus","IDLE","_callee26","callKeepaliveSpy","deleteSpy","_context26","createCall","getActiveCalls","state","value","_callee27","_context27","MERCURY_UP","mutex","Mutex","userId","device","clientDeviceUri","url","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","URL","primary","backupMobiusUris","backup","beforeAll","_callee28","_context28","Line","end","getSDKConnector","getWebex","makeCall","address","type","CallType","URI","getConnectedCall","mockCall","mockCall2","mockActiveCalls","mockCorrelationId","mockCorrelationId2","mockDeviceId","lineId","mockDeviceId2","mockCall3","mockCorrelationId3","mockLineId","mockLineId2","mockOn","_callee29","_context29","done","CALLING_CLIENT_EVENT_KEYS","USER_SESSION_INFO","event","data","MOCK_SESSION_EVENT","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","callSessionCallback","userSessions","MOCK_MULTIPLE_SESSIONS_EVENT","asyncEventCallback","mobiusSocketMock","_callee30","asyncEventOnCall","_context30","features","developer","requireMock","mockClear","find","_callee31","callEventSpy","_context31","mockImplementation","eventType","callId","callUrl","deviceId","correlationId","primaryMobius","backupMobius","_callee32","_context32","_callee33","devices","responsePayload","response","_context33","status","lastSeen","addresses","body","getDevices","HTTP_METHODS","GET","service","ALLOWED_SERVICES","MOBIUS","CISCO_DEVICE_URL","CALLING_USER_AGENT","_callee34","requestCalls","_context34","origRTCPeerConnection","_Class","RTCPeerConnection","_classCallCheck2","constructor","instances","_createClass2","key","createDataChannel","addTransceiver","createOffer","sdp","setLocalDescription","desc","localDescription","setRemoteDescription","remoteDescription","createAnswer","addIceCandidate","close","addEventListener","removeEventListener","_callee35","_context35","windowsChromiumIceWarmup","resolves"],"sources":["CallingClient.test.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport * as Media from '@webex/internal-media-core';\nimport {LOGGER} from '../Logger/types';\nimport {\n getTestUtilsWebex,\n getMockRequestTemplate,\n getMobiusDiscoveryResponse,\n} from '../common/testUtil';\nimport {\n CallType,\n RegistrationStatus,\n ServiceIndicator,\n ALLOWED_SERVICES,\n HTTP_METHODS,\n WebexRequestPayload,\n} from '../common/types';\n/* eslint-disable dot-notation */\nimport {CALLING_CLIENT_EVENT_KEYS, CallSessionEvent, MOBIUS_EVENT_KEYS} from '../Events/types';\nimport log from '../Logger';\nimport {createClient} from './CallingClient';\nimport {ICallingClient} from './types';\nimport * as utils from '../common/Utils';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n DISCOVERY_URL,\n NETWORK_FLAP_TIMEOUT,\n REGISTRATION_FILE,\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n} from './constants';\nimport {MOCK_MULTIPLE_SESSIONS_EVENT, MOCK_SESSION_EVENT} from './callRecordFixtures';\nimport {ILine} from './line/types';\nimport {\n regionBody,\n regionPayload,\n primaryUrl,\n discoveryPayload,\n registrationPayload,\n mockEUServiceHosts,\n mockIntServiceHosts,\n mockEUIntServiceHosts,\n mockCatalogEU,\n mockCatalogUSInt,\n mockCatalogUS,\n mockCatalogEUInt,\n mockUSServiceHosts,\n} from './callingClientFixtures';\nimport Line from './line';\nimport {filterMobiusUris} from '../common/Utils';\nimport {URL} from './registration/registerFixtures';\nimport {ICall} from './calling/types';\nimport {ServiceHost} from '../SDKConnector/types';\nimport {METHOD_START_MESSAGE} from '../common/constants';\nimport {METRIC_EVENT, CONNECTION_ACTION, METRIC_TYPE} from '../Metrics/types';\nimport windowsChromiumIceWarmup from './windowsChromiumIceWarmupUtils';\nimport {APIRequest} from './utils/request';\n\njest.mock('../mobius-socket', () => ({\n getMobiusSocketInstance: jest.fn().mockReturnValue({\n sendWssRequest: jest.fn(),\n connect: jest.fn(),\n on: jest.fn(),\n off: jest.fn(),\n }),\n}));\n\nglobal.crypto = {\n randomUUID: () => '12345678-1234-5678-1234-567812345678',\n} as unknown as Crypto;\n\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('CallingClient Tests', () => {\n // Common initializers\n\n const handleErrorSpy = jest.spyOn(utils, 'handleCallingClientErrors');\n const setLoggerSpy = jest.spyOn(Media, 'setLogger');\n const webex = getTestUtilsWebex();\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockUSServiceHosts);\n const defaultServiceIndicator = ServiceIndicator.CALLING;\n const callManager = getCallManager(webex, defaultServiceIndicator);\n\n const infoSpy = jest.spyOn(log, 'info');\n const logSpy = jest.spyOn(log, 'log');\n const warnSpy = jest.spyOn(log, 'warn');\n\n const originalProcessNextTick = process.nextTick;\n function flushPromises() {\n return new Promise((resolve) => {\n originalProcessNextTick(resolve);\n });\n }\n\n beforeEach(() => {\n APIRequest.resetInstance();\n APIRequest.getInstance({webex});\n });\n\n describe('CallingClient pick Mobius cluster using Service Host Tests', () => {\n afterAll(() => {\n callManager.removeAllListeners();\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1';\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n });\n\n it('should use default mobius service host when Service URL is invalid', async () => {\n webex.internal.services._hostCatalog = mockCatalogUS;\n webex.internal.services._serviceUrls.mobius = 'invalid-url';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(setLoggerSpy).toHaveBeenCalledTimes(1);\n expect(callingClient['mobiusClusters']).toStrictEqual(mockUSServiceHosts);\n });\n\n it('should set mobiusServiceHost correctly when URL is valid', async () => {\n webex.internal.services._hostCatalog = mockCatalogEU;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockEUServiceHosts);\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusHost']).toBe(\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1'\n );\n expect(callingClient['mobiusClusters']).toStrictEqual(mockEUServiceHosts);\n });\n });\n\n describe('ServiceData tests', () => {\n let callingClient: ICallingClient | undefined;\n\n afterEach(() => {\n callManager.removeAllListeners();\n callingClient = undefined;\n });\n\n /**\n * No input sdk config to callingClient, it should default to service type\n * calling and empty domain value.\n */\n it('Verify valid calling serviceData with no input sdk config', async () => {\n expect(async () => {\n callingClient = await createClient(webex);\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying empty string for\n * both indicator and domain in it.\n *\n * It should default to service type calling and empty domain value.\n *\n */\n it('Verify invalid empty service indicator, empty domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: '', domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying invalid value for indicator\n * and valid domain type string for domain field in it.\n *\n * It should throw error and abort execution as indicator value is invalid.\n *\n * INDICATOR value MUST MATCH with one of the values in ServiceIndicator enum.\n */\n it('Verify invalid service indicator, valid domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: 'test', domain: 'test.example.com'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual(\n 'Invalid service indicator, Allowed values are: calling, contactcenter and guestcalling'\n );\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', but an invalid domain type string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type calling is allowed to be empty but if it carries a non-empty\n * string then it must be of valid domain type.\n */\n it('CALLING: verify invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: 'test'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', and an empty string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'calling' is allowed to be empty.\n */\n it('CALLING: verify valid empty service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter', but an empty string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify empty invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CONTACT_CENTER, domain: ''};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter' , and a valid domain type string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify valid service domain', async () => {\n const serviceDataObj = {\n indicator: ServiceIndicator.CONTACT_CENTER,\n domain: 'test.example.com',\n };\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n it('Get current log level', async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(callingClient).toBeTruthy();\n expect(callingClient.getLoggingLevel).toBeTruthy();\n expect(callingClient.getLoggingLevel()).toEqual(LOGGER.INFO);\n });\n });\n\n describe('Mobius Server discovery tests', () => {\n let callingClient;\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify successful mobius server url discovery', async () => {\n webex.request.mockResolvedValueOnce(regionPayload).mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).toBeCalledTimes(2);\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n uri: `${DISCOVERY_URL}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(webex.request).nthCalledWith(2, {\n method: 'GET',\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n });\n });\n\n it('when region discovery succeeds but region based mobius url discovery fails with final error', async () => {\n const failurePayload = {\n statusCode: 401,\n };\n\n webex.request.mockResolvedValueOnce(regionPayload).mockRejectedValueOnce(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(handleErrorSpy).toBeCalledWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n expect(webex.request).toBeCalledTimes(2);\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n uri: `${DISCOVERY_URL}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n expect.objectContaining({\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n })\n );\n });\n\n it('Verify successful mobius server url discovery after initializing callingClient through a config', async () => {\n infoSpy.mockReset();\n webex.request.mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {\n discovery: {\n region: 'AP-SOUTHEAST',\n country: 'IN',\n },\n logger: {\n level: LOGGER.INFO,\n },\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: 'CallingClient',\n method: 'getMobiusServers',\n });\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n method: 'GET',\n });\n\n expect(handleErrorSpy).not.toHaveBeenCalled();\n });\n });\n\n describe('Testing each cluster present withing host catalog', () => {\n const mobiusCluster = [\n 'mobius-eu-central-1.prod.infra.webex.com',\n 'mobius-us-east-1.int.infra.webex.com',\n 'mobius-eu-central-1.int.infra.webex.com',\n ];\n\n const checkCluster = async (\n mockServiceHosts: ServiceHost[],\n mockCatalog: Record<string, ServiceHost[]>\n ) => {\n webex.internal.services._hostCatalog = mockCatalog;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockServiceHosts);\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusClusters']).toStrictEqual(mockServiceHosts);\n };\n\n it.each(mobiusCluster)('%s', async (clusterName) => {\n switch (clusterName) {\n case 'mobius-eu-central-1.prod.infra.webex.com':\n checkCluster(mockEUServiceHosts, mockCatalogEU);\n break;\n case 'mobius-us-east-1.int.infra.webex.com':\n checkCluster(mockIntServiceHosts, mockCatalogUSInt);\n break;\n case 'mobius-eu-central-1.int.infra.webex.com':\n checkCluster(mockEUIntServiceHosts, mockCatalogEUInt);\n break;\n default:\n break;\n }\n });\n });\n\n describe('Line creation tests', () => {\n let callingClient;\n let line;\n\n beforeEach(async () => {\n callingClient = await createClient(webex);\n line = Object.values(callingClient.lineDict)[0];\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify line dict successfully created', () => {\n expect(callingClient.lineDict).toBeTruthy();\n expect(line).toBeTruthy();\n expect(Object.keys(callingClient.lineDict).length).toEqual(1);\n });\n\n it('verify getLines response', () => {\n expect(callingClient.getLines).toBeTruthy();\n expect(callingClient.getLines()).toEqual(callingClient.lineDict);\n });\n });\n\n describe('Connectivity and Mercury event handlers', () => {\n let callingClient: ICallingClient;\n let line;\n let reg;\n let windowEventSpy: jest.SpyInstance;\n let deRegSpy;\n let restoreSpy;\n let restartRegisterSpy;\n let registerSpy;\n let metricSpy;\n\n beforeEach(async () => {\n jest.useFakeTimers();\n webex.request\n .mockResolvedValueOnce(regionPayload)\n .mockResolvedValueOnce(discoveryPayload)\n .mockResolvedValueOnce(registrationPayload);\n\n windowEventSpy = jest.spyOn(window, 'addEventListener');\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n line = Object.values(callingClient.lineDict)[0] as ILine;\n reg = line.registration;\n await line.register();\n\n deRegSpy = jest.spyOn(reg, 'deregister');\n restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n restartRegisterSpy = jest.spyOn(reg, 'restartRegistration');\n registerSpy = jest.spyOn(reg, 'attemptRegistrationWithServers');\n metricSpy = jest.spyOn(callingClient['metricManager'], 'submitConnectionMetrics');\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callingClient['callManager'].callCollection = {};\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('window offline handler sets networkDown and clears keepalive when network is unreachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockRejectedValueOnce(new Error('network fail'));\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Network connectivity probe failed'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'pingExternal',\n }\n );\n expect(callingClient['isNetworkDown']).toBe(true);\n expect(clearKeepaliveSpy).toHaveBeenCalled();\n });\n\n it('window offline handler does not clear keepalive when network is reachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockResolvedValueOnce({});\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(g.fetch).toHaveBeenCalledWith(\n 'https://www.google.com/generate_204',\n expect.any(Object)\n );\n expect(callingClient['isNetworkDown']).toBe(false);\n expect(clearKeepaliveSpy).not.toHaveBeenCalled();\n });\n\n it('window online handler sets networkUpTimestamp and logs', async () => {\n const onlineCb = windowEventSpy.mock.calls[0][1];\n await onlineCb();\n\n expect(callingClient['networkUpTimestamp']).toEqual(expect.any(String));\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: 'handleNetworkOnline',\n });\n });\n\n it('mercury offline submits metrics and sets timestamp', async () => {\n const mercuryOfflineCb = webex.internal.mercury.on.mock.calls[1][1];\n await mercuryOfflineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Mercury down, waiting for connection to be up'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'handleMercuryOffline',\n }\n );\n expect(callingClient['mercuryDownTimestamp']).toEqual(expect.any(String));\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_DOWN,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n ''\n );\n });\n\n it('handles reconnection with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).toHaveBeenCalledWith(true);\n expect(logSpy).toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).toHaveBeenCalledWith();\n expect(restoreSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('no reconnection for idle registration with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n reg.setStatus(RegistrationStatus.IDLE);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).not.toHaveBeenCalledWith(true);\n expect(logSpy).not.toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).not.toHaveBeenCalledWith();\n expect(restoreSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('handle calls status check once mercury comes back up after a network flap', async () => {\n callingClient['isNetworkDown'] = true;\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n\n it('handle calls status check once mercury comes back up with stable network', async () => {\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_UP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n });\n\n // Calling related test cases\n describe('Calling tests', () => {\n const mutex = new Mutex();\n const userId = webex.internal.device.userId;\n const clientDeviceUri = webex.internal.device.url;\n const mobiusUris = filterMobiusUris(getMobiusDiscoveryResponse(), URL);\n const primaryMobiusUris = jest.fn(() => mobiusUris.primary);\n const backupMobiusUris = jest.fn(() => mobiusUris.backup);\n\n let callingClient;\n let line: Line;\n\n beforeAll(async () => {\n callingClient = await createClient(webex);\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n const calls = Object.values(callManager.getActiveCalls());\n calls.forEach((call) => {\n call.end();\n });\n });\n\n afterAll(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify calling client object', () => {\n expect(callingClient.getSDKConnector().getWebex().internal.device.userId).toBe(\n '8a67806f-fc4d-446b-a131-31e71ea5b0e9'\n );\n });\n\n it('returns undefined when there is no connected call', () => {\n line.register();\n line.makeCall({address: '123456', type: CallType.URI});\n expect(callingClient.getConnectedCall()).toEqual(undefined);\n });\n\n it('returns the connected call', () => {\n line.register();\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n // Connected call\n mockCall['connected'] = true;\n mockCall['earlyMedia'] = false;\n mockCall['callStateMachine'].state.value = 'S_CALL_ESTABLISHED';\n\n // Held call\n mockCall2['connected'] = true;\n mockCall2['held'] = true;\n mockCall2['earlyMedia'] = false;\n mockCall2['callStateMachine'].state.value = 'S_CALL_HOLD';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getConnectedCall()).toEqual(mockCall);\n });\n it('returns all active calls', () => {\n callingClient.lineDict = {\n mockDeviceId: {lineId: 'mockLineId'} as ILine,\n mockDeviceId2: {lineId: 'mockLineId2'} as ILine,\n };\n\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n const mockCall3 = line.makeCall({address: '9101', type: CallType.URI});\n\n mockCall.lineId = 'mockLineId';\n mockCall2.lineId = 'mockLineId2';\n mockCall3.lineId = 'mockLineId2';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n mockCorrelationId3: mockCall3 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getActiveCalls()).toEqual({\n mockLineId: [mockCall],\n mockLineId2: [mockCall2, mockCall3],\n });\n });\n });\n\n describe('Call Session Event test', () => {\n const mockOn = webex.internal.mercury.on;\n let callingClient: ICallingClient;\n\n beforeEach(async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify the recent user session event ', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT.data);\n done();\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('drop the recent user session if there is no webex calling type', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data.userSessions.userSessions.length).toEqual(1);\n done();\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_MULTIPLE_SESSIONS_EVENT);\n });\n });\n\n describe('Mobius async_event routing', () => {\n let callingClient: ICallingClient;\n let asyncEventCallback;\n let mobiusSocketMock;\n\n beforeEach(async () => {\n webex.internal.device.features.developer.get = jest.fn().mockReturnValue({value: true});\n APIRequest.resetInstance();\n APIRequest.getInstance({webex});\n\n mobiusSocketMock = (\n jest.requireMock('../mobius-socket') as {\n getMobiusSocketInstance: (w: unknown) => unknown;\n }\n ).getMobiusSocketInstance(webex) as {\n on: jest.Mock;\n off: jest.Mock;\n };\n (mobiusSocketMock.on as jest.Mock).mockClear();\n (mobiusSocketMock.off as jest.Mock).mockClear();\n\n callingClient = await createClient(webex, {\n logger: {level: LOGGER.INFO},\n });\n\n const asyncEventOnCall = (mobiusSocketMock.on as jest.Mock).mock.calls.find(\n (call) => call[0] === 'event:async_event'\n );\n asyncEventCallback = asyncEventOnCall[1];\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n webex.internal.device.features.developer.get = jest.fn().mockReturnValue({value: false});\n });\n\n it('routes mobius.* async events to callManager', async () => {\n const callEventSpy = jest\n .spyOn(callingClient['callManager'], 'dequeueWsEvents')\n .mockImplementation(() => undefined);\n\n await asyncEventCallback({\n type: 'async_event',\n data: {\n eventType: 'mobius.call',\n callId: 'fcf86aa5-5539-4c9f-8b72-667786ae9b6c',\n callUrl: 'https://mobius-a.wbx2.com/api/v1/calling/web/devices/d1/calls/c1',\n deviceId: 'd1',\n correlationId: 'corr-1',\n },\n });\n\n expect(callEventSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n type: 'async_event',\n data: expect.objectContaining({\n eventType: 'mobius.call',\n }),\n })\n );\n });\n });\n\n describe('getDevices', () => {\n let callingClient: ICallingClient;\n const primaryMobius = 'https://mobius.primary/api/v1/calling/web/';\n const backupMobius = 'https://mobius.backup/api/v1/calling/web/';\n\n beforeEach(async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n callingClient.primaryMobiusUris = [primaryMobius];\n callingClient.backupMobiusUris = [backupMobius];\n (webex.request as jest.Mock).mockClear();\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n });\n\n it('fetches devices for the provided userId', async () => {\n const devices = [\n {\n deviceId: 'device-1',\n uri: 'https://mobius.test/api/v1/calling/web/devices/device-1',\n status: 'ACTIVE',\n lastSeen: '2024-01-01T00:00:00Z',\n addresses: [],\n clientDeviceUri: 'client-device-uri',\n },\n ];\n\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: {userId: 'user-123', devices},\n });\n\n (webex.request as jest.Mock).mockResolvedValue(responsePayload);\n\n const response = await callingClient.getDevices('user-123');\n\n expect(webex.request).toHaveBeenCalledWith({\n uri: 'https://mobius.primary/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(response).toEqual(devices);\n });\n\n it('falls back to backup Mobius when primary fails', async () => {\n const devices = [\n {\n deviceId: 'device-2',\n uri: 'https://mobius.backup/api/v1/calling/web/devices/device-2',\n status: 'ACTIVE',\n lastSeen: '2024-01-01T00:00:00Z',\n addresses: [],\n clientDeviceUri: 'client-device-uri',\n },\n ];\n\n const failurePayload = {\n statusCode: 404,\n };\n\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: {userId: 'user-123', devices},\n });\n\n (webex.request as jest.Mock)\n .mockRejectedValueOnce(failurePayload)\n .mockResolvedValueOnce(responsePayload);\n\n const response = await callingClient.getDevices('user-123');\n\n const requestCalls = (webex.request as jest.Mock).mock.calls;\n expect(requestCalls[0][0]).toEqual({\n uri: 'https://mobius.primary/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(requestCalls[1][0]).toEqual({\n uri: 'https://mobius.backup/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(response).toEqual(devices);\n });\n });\n\n describe('windowsChromiumIceWarmup', () => {\n let origRTCPeerConnection: any;\n\n beforeAll(() => {\n origRTCPeerConnection = global.RTCPeerConnection;\n // Minimal mock for RTCPeerConnection\n global.RTCPeerConnection = class {\n static instances: any[] = [];\n iceGatheringState = 'complete';\n localDescription = null;\n remoteDescription = null;\n onicecandidate: ((e: any) => void) | null = null;\n constructor() {\n (this.constructor as any).instances.push(this);\n }\n\n createDataChannel() {\n return {};\n }\n\n addTransceiver() {\n return {};\n }\n\n createOffer() {\n return Promise.resolve({sdp: 'offer', type: 'offer'});\n }\n\n setLocalDescription(desc: any) {\n this.localDescription = desc;\n\n return Promise.resolve();\n }\n\n setRemoteDescription(desc: any) {\n this.remoteDescription = desc;\n\n return Promise.resolve();\n }\n\n createAnswer() {\n return Promise.resolve({sdp: 'answer', type: 'answer'});\n }\n\n addIceCandidate() {\n return Promise.resolve();\n }\n\n close() {}\n addEventListener() {}\n removeEventListener() {}\n };\n });\n\n afterAll(() => {\n global.RTCPeerConnection = origRTCPeerConnection;\n });\n\n it('should complete without throwing', async () => {\n await expect(windowsChromiumIceWarmup({})).resolves.not.toThrow();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,6 +7,8 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
7
7
|
value: true
|
|
8
8
|
});
|
|
9
9
|
exports.UnknownResponse = exports.NotAuthorized = exports.Forbidden = exports.ConnectionError = exports.BadRequest = void 0;
|
|
10
|
+
exports.createTimeoutError = createTimeoutError;
|
|
11
|
+
exports.createWssResponseError = createWssResponseError;
|
|
10
12
|
var _defineProperties = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/define-properties"));
|
|
11
13
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
12
14
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
@@ -20,7 +22,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
20
22
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
21
23
|
*/ // @ts-expect-error `@webex/common` is still JS-only and does not ship declarations.
|
|
22
24
|
/**
|
|
23
|
-
* Exception thrown when a websocket gets closed
|
|
25
|
+
* Exception thrown when a websocket gets closed.
|
|
24
26
|
*/
|
|
25
27
|
var ConnectionError = exports.ConnectionError = /*#__PURE__*/function (_Exception) {
|
|
26
28
|
// eslint-disable-next-line no-useless-constructor
|
|
@@ -34,7 +36,9 @@ var ConnectionError = exports.ConnectionError = /*#__PURE__*/function (_Exceptio
|
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
/**
|
|
37
|
-
*
|
|
39
|
+
* Parses a close event and sets the code and reason properties.
|
|
40
|
+
* @param event - Socket close event to parse
|
|
41
|
+
* @returns The reason string from the event
|
|
38
42
|
*/
|
|
39
43
|
(0, _inherits2.default)(ConnectionError, _Exception);
|
|
40
44
|
return (0, _createClass2.default)(ConnectionError, [{
|
|
@@ -54,7 +58,9 @@ var ConnectionError = exports.ConnectionError = /*#__PURE__*/function (_Exceptio
|
|
|
54
58
|
}]);
|
|
55
59
|
}(_common.Exception);
|
|
56
60
|
/**
|
|
57
|
-
*
|
|
61
|
+
* Thrown for CloseCode 1005.
|
|
62
|
+
* UnknownResponse is produced by IE when we receive a 4XXX close code.
|
|
63
|
+
* This should typically be treated like a NotFound error.
|
|
58
64
|
*/
|
|
59
65
|
(0, _defineProperty2.default)(ConnectionError, "defaultMessage", 'Failed to connect to socket');
|
|
60
66
|
var UnknownResponse = exports.UnknownResponse = /*#__PURE__*/function (_ConnectionError2) {
|
|
@@ -67,7 +73,8 @@ var UnknownResponse = exports.UnknownResponse = /*#__PURE__*/function (_Connecti
|
|
|
67
73
|
return (0, _createClass2.default)(UnknownResponse);
|
|
68
74
|
}(ConnectionError);
|
|
69
75
|
/**
|
|
70
|
-
*
|
|
76
|
+
* Thrown for CloseCode 4400.
|
|
77
|
+
* BadRequest usually implies an attempt to use service account credentials.
|
|
71
78
|
*/
|
|
72
79
|
(0, _defineProperty2.default)(UnknownResponse, "defaultMessage", 'UnknownResponse is produced by IE when we receive a 4XXX. You probably want to treat this like a NotFound');
|
|
73
80
|
var BadRequest = exports.BadRequest = /*#__PURE__*/function (_ConnectionError3) {
|
|
@@ -80,7 +87,8 @@ var BadRequest = exports.BadRequest = /*#__PURE__*/function (_ConnectionError3)
|
|
|
80
87
|
return (0, _createClass2.default)(BadRequest);
|
|
81
88
|
}(ConnectionError);
|
|
82
89
|
/**
|
|
83
|
-
*
|
|
90
|
+
* Thrown for CloseCode 4401.
|
|
91
|
+
* Indicates an authorization failure requiring a token refresh.
|
|
84
92
|
*/
|
|
85
93
|
(0, _defineProperty2.default)(BadRequest, "defaultMessage", 'BadRequest usually implies an attempt to use service account credentials');
|
|
86
94
|
var NotAuthorized = exports.NotAuthorized = /*#__PURE__*/function (_ConnectionError4) {
|
|
@@ -93,7 +101,8 @@ var NotAuthorized = exports.NotAuthorized = /*#__PURE__*/function (_ConnectionEr
|
|
|
93
101
|
return (0, _createClass2.default)(NotAuthorized);
|
|
94
102
|
}(ConnectionError);
|
|
95
103
|
/**
|
|
96
|
-
*
|
|
104
|
+
* Thrown for CloseCode 4403.
|
|
105
|
+
* Forbidden usually implies the credentials are not entitled for Webex.
|
|
97
106
|
*/
|
|
98
107
|
(0, _defineProperty2.default)(NotAuthorized, "defaultMessage", 'Please refresh your access token');
|
|
99
108
|
var Forbidden = exports.Forbidden = /*#__PURE__*/function (_ConnectionError5) {
|
|
@@ -105,5 +114,37 @@ var Forbidden = exports.Forbidden = /*#__PURE__*/function (_ConnectionError5) {
|
|
|
105
114
|
(0, _inherits2.default)(Forbidden, _ConnectionError5);
|
|
106
115
|
return (0, _createClass2.default)(Forbidden);
|
|
107
116
|
}(ConnectionError);
|
|
117
|
+
/**
|
|
118
|
+
* Creates a MobiusSocketResponseError from a socket response.
|
|
119
|
+
*
|
|
120
|
+
* @param response - The socket response that triggered the error
|
|
121
|
+
* @param statusCode - HTTP-style status code for the error
|
|
122
|
+
* @param statusMessage - Human-readable status message
|
|
123
|
+
* @returns A formatted error object with response details
|
|
124
|
+
*/
|
|
108
125
|
(0, _defineProperty2.default)(Forbidden, "defaultMessage", 'Forbidden usually implies these credentials are not entitled for Webex');
|
|
126
|
+
function createWssResponseError(response, statusCode, statusMessage) {
|
|
127
|
+
var error = new Error(statusMessage || "Mobius websocket request failed with status ".concat(statusCode || 'unknown'));
|
|
128
|
+
error.name = 'MobiusSocketResponseError';
|
|
129
|
+
error.statusCode = statusCode;
|
|
130
|
+
error.statusMessage = statusMessage;
|
|
131
|
+
error.response = response;
|
|
132
|
+
error.trackingId = response === null || response === void 0 ? void 0 : response.trackingId;
|
|
133
|
+
return error;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Creates a timeout error for a socket request that didn't receive a response.
|
|
138
|
+
*
|
|
139
|
+
* @param request - The socket request that timed out
|
|
140
|
+
* @returns A timeout error with status code 408
|
|
141
|
+
*/
|
|
142
|
+
function createTimeoutError(request) {
|
|
143
|
+
var errorPayload = {
|
|
144
|
+
type: 'response_event',
|
|
145
|
+
subtype: request.type,
|
|
146
|
+
trackingId: request.trackingId
|
|
147
|
+
};
|
|
148
|
+
return createWssResponseError(errorPayload, 408, 'Mobius websocket response timed out');
|
|
149
|
+
}
|
|
109
150
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_common","require","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","apply","Boolean","prototype","valueOf","call","ConnectionError","exports","_Exception","event","_this","_classCallCheck2","_defineProperty2","_inherits2","_createClass2","key","value","parse","arguments","length","undefined","_defineProperties","code","reason","Exception","UnknownResponse","_ConnectionError2","BadRequest","_ConnectionError3","NotAuthorized","_ConnectionError4","Forbidden","_ConnectionError5"],"sources":["errors.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n// @ts-expect-error `@webex/common` is still JS-only and does not ship declarations.\nimport {Exception} from '@webex/common';\nimport type {SocketCloseEvent} from './socket/types';\n\n/**\n * Exception thrown when a websocket gets closed
|
|
1
|
+
{"version":3,"names":["_common","require","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","apply","Boolean","prototype","valueOf","call","ConnectionError","exports","_Exception","event","_this","_classCallCheck2","_defineProperty2","_inherits2","_createClass2","key","value","parse","arguments","length","undefined","_defineProperties","code","reason","Exception","UnknownResponse","_ConnectionError2","BadRequest","_ConnectionError3","NotAuthorized","_ConnectionError4","Forbidden","_ConnectionError5","createWssResponseError","response","statusCode","statusMessage","error","Error","concat","name","trackingId","createTimeoutError","request","errorPayload","type","subtype"],"sources":["errors.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n// @ts-expect-error `@webex/common` is still JS-only and does not ship declarations.\nimport {Exception} from '@webex/common';\nimport type {SocketCloseEvent, SocketResponse} from './socket/types';\nimport {MobiusSocketResponseError} from './types';\n\n/**\n * Exception thrown when a websocket gets closed.\n */\nexport class ConnectionError extends Exception {\n static defaultMessage = 'Failed to connect to socket';\n\n code?: number;\n\n reason?: string;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(event?: SocketCloseEvent) {\n super(event);\n }\n\n /**\n * Parses a close event and sets the code and reason properties.\n * @param event - Socket close event to parse\n * @returns The reason string from the event\n */\n parse(event: SocketCloseEvent = {}) {\n Object.defineProperties(this, {\n code: {\n value: event.code,\n },\n reason: {\n value: event.reason,\n },\n });\n\n return event.reason;\n }\n}\n\n/**\n * Thrown for CloseCode 1005.\n * UnknownResponse is produced by IE when we receive a 4XXX close code.\n * This should typically be treated like a NotFound error.\n */\nexport class UnknownResponse extends ConnectionError {\n static defaultMessage =\n 'UnknownResponse is produced by IE when we receive a 4XXX. You probably want to treat this like a NotFound';\n\n // eslint-disable-next-line no-useless-constructor\n constructor(event?: SocketCloseEvent) {\n super(event);\n }\n}\n\n/**\n * Thrown for CloseCode 4400.\n * BadRequest usually implies an attempt to use service account credentials.\n */\nexport class BadRequest extends ConnectionError {\n static defaultMessage =\n 'BadRequest usually implies an attempt to use service account credentials';\n\n // eslint-disable-next-line no-useless-constructor\n constructor(event?: SocketCloseEvent) {\n super(event);\n }\n}\n\n/**\n * Thrown for CloseCode 4401.\n * Indicates an authorization failure requiring a token refresh.\n */\nexport class NotAuthorized extends ConnectionError {\n static defaultMessage = 'Please refresh your access token';\n\n // eslint-disable-next-line no-useless-constructor\n constructor(event?: SocketCloseEvent) {\n super(event);\n }\n}\n\n/**\n * Thrown for CloseCode 4403.\n * Forbidden usually implies the credentials are not entitled for Webex.\n */\nexport class Forbidden extends ConnectionError {\n static defaultMessage = 'Forbidden usually implies these credentials are not entitled for Webex';\n\n // eslint-disable-next-line no-useless-constructor\n constructor(event?: SocketCloseEvent) {\n super(event);\n }\n}\n\n/**\n * Creates a MobiusSocketResponseError from a socket response.\n *\n * @param response - The socket response that triggered the error\n * @param statusCode - HTTP-style status code for the error\n * @param statusMessage - Human-readable status message\n * @returns A formatted error object with response details\n */\nexport function createWssResponseError(\n response: SocketResponse,\n statusCode?: number,\n statusMessage?: string\n): MobiusSocketResponseError {\n const error = new Error(\n statusMessage || `Mobius websocket request failed with status ${statusCode || 'unknown'}`\n ) as MobiusSocketResponseError;\n\n error.name = 'MobiusSocketResponseError';\n error.statusCode = statusCode;\n error.statusMessage = statusMessage;\n error.response = response;\n error.trackingId = response?.trackingId;\n\n return error;\n}\n\n/**\n * Creates a timeout error for a socket request that didn't receive a response.\n *\n * @param request - The socket request that timed out\n * @returns A timeout error with status code 408\n */\nexport function createTimeoutError(request: SocketResponse): MobiusSocketResponseError {\n const errorPayload = {\n type: 'response_event',\n subtype: request.type,\n trackingId: request.trackingId,\n };\n\n return createWssResponseError(errorPayload, 408, 'Mobius websocket response timed out');\n}\n"],"mappings":"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","ignoreList":[]}
|