@webex/calling 3.3.1 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/CallingClient/calling/CallerId/types.js.map +1 -1
  2. package/dist/CallingClient/calling/call.js +5 -3
  3. package/dist/CallingClient/calling/call.js.map +1 -1
  4. package/dist/CallingClient/calling/call.test.js +17 -15
  5. package/dist/CallingClient/calling/call.test.js.map +1 -1
  6. package/dist/CallingClient/constants.js +5 -8
  7. package/dist/CallingClient/constants.js.map +1 -1
  8. package/dist/Contacts/ContactsClient.js +258 -292
  9. package/dist/Contacts/ContactsClient.js.map +1 -1
  10. package/dist/Contacts/ContactsClient.test.js +46 -12
  11. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  12. package/dist/Contacts/constants.js +3 -1
  13. package/dist/Contacts/constants.js.map +1 -1
  14. package/dist/Contacts/contactFixtures.js +141 -48
  15. package/dist/Contacts/contactFixtures.js.map +1 -1
  16. package/dist/Contacts/types.js.map +1 -1
  17. package/dist/Metrics/index.js +9 -9
  18. package/dist/Metrics/index.js.map +1 -1
  19. package/dist/Metrics/index.test.js +37 -10
  20. package/dist/Metrics/index.test.js.map +1 -1
  21. package/dist/SDKConnector/types.js.map +1 -1
  22. package/dist/common/Utils.js +3 -3
  23. package/dist/common/Utils.js.map +1 -1
  24. package/dist/common/Utils.test.js +1 -1
  25. package/dist/common/Utils.test.js.map +1 -1
  26. package/dist/common/constants.js +6 -1
  27. package/dist/common/constants.js.map +1 -1
  28. package/dist/common/testUtil.js +1 -5
  29. package/dist/common/testUtil.js.map +1 -1
  30. package/dist/common/types.js +1 -0
  31. package/dist/common/types.js.map +1 -1
  32. package/dist/module/CallingClient/calling/call.js +6 -4
  33. package/dist/module/CallingClient/constants.js +4 -6
  34. package/dist/module/Contacts/ContactsClient.js +64 -58
  35. package/dist/module/Contacts/constants.js +2 -0
  36. package/dist/module/Contacts/contactFixtures.js +175 -31
  37. package/dist/module/Metrics/index.js +9 -9
  38. package/dist/module/common/Utils.js +4 -5
  39. package/dist/module/common/constants.js +5 -0
  40. package/dist/module/common/testUtil.js +0 -4
  41. package/dist/module/common/types.js +1 -0
  42. package/dist/types/CallingClient/calling/CallerId/types.d.ts +1 -23
  43. package/dist/types/CallingClient/calling/CallerId/types.d.ts.map +1 -1
  44. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  45. package/dist/types/CallingClient/constants.d.ts +3 -5
  46. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  47. package/dist/types/Contacts/ContactsClient.d.ts +1 -1
  48. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  49. package/dist/types/Contacts/constants.d.ts +2 -0
  50. package/dist/types/Contacts/constants.d.ts.map +1 -1
  51. package/dist/types/Contacts/contactFixtures.d.ts +71 -39
  52. package/dist/types/Contacts/contactFixtures.d.ts.map +1 -1
  53. package/dist/types/Contacts/types.d.ts +6 -13
  54. package/dist/types/Contacts/types.d.ts.map +1 -1
  55. package/dist/types/SDKConnector/types.d.ts +1 -5
  56. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  57. package/dist/types/common/Utils.d.ts +1 -0
  58. package/dist/types/common/Utils.d.ts.map +1 -1
  59. package/dist/types/common/constants.d.ts +5 -0
  60. package/dist/types/common/constants.d.ts.map +1 -1
  61. package/dist/types/common/testUtil.d.ts +0 -4
  62. package/dist/types/common/testUtil.d.ts.map +1 -1
  63. package/dist/types/common/types.d.ts +56 -25
  64. package/dist/types/common/types.d.ts.map +1 -1
  65. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_testUtil","_types2","_ContactsClient","_constants","_Logger","_interopRequireDefault","_constants2","utils","_interopRequireWildcard","_contactFixtures","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","describe","webex","getTestUtilsWebex","contactClient","contactServiceUrl","concat","internal","services","_serviceUrls","contactsService","ENCRYPT_FILTER","USERS","CONTACT_FILTER","contactServiceGroupUrl","GROUP_FILTER","serviceErrorCodeHandlerSpy","jest","spyOn","failureResponsePayload","statusCode","body","mockGroupResponse","mockContactResponseBodyOne","groups","beforeEach","createContactsClient","level","LOGGER","INFO","expect","toBeTruthy","getSDKConnector","getWebex","afterEach","request","mockClear","clearAllMocks","errorCodes","name","payloadData","inputStatusCode","expectedData","contacts","mockContactListOne","mockContactGroupListOne","expectedMessage","SUCCESS_MESSAGE","expectedStatusCode","decryptTextList","mockCity","mockCountry","mockState","mockStreet","mockZipCode","mockAvatarURL","mockCompany","mockDisplayNameOne","mockEmail","mockFirstName","mockLastName","mockNumber1","mockNumber2","mockSipAddress","mockTitle","mockGroupName","mockContactResponseBodyTwo","mockContactListTwo","mockContactGroupListTwo","mockDisplayNameTwo","mockContactResponseBodyThird","undefined","error","FAILURE_MESSAGE","map","stat","_assign","toString","it","each","_ref","_asyncToGenerator2","_regenerator","mark","_callee","codeObj","respPayload","contactsResponse","wrap","_callee$","_context","prev","next","mockResolvedValueOnce","text","encryption","decryptText","dss","lookup","mockDSSResponse","mockRejectedValueOnce","getContacts","sent","toBeCalledOnceWith","uri","method","HTTP_METHODS","GET","toEqual","data","message","not","toBeCalled","any","Error","file","CONTACTS_FILE","stop","_x","_callee2","_contactsResponse$dat","successResponsePayload","_callee2$","_context2","mockResolvedValue","kms","createUnboundKeys","mockKmsKey","createResource","encryptText","createContactGroup","group","groupId","toBe","count","keyUris","toBeCalledTimes","toHaveBeenNthCalledWith","displayName","encryptionKeyUrl","groupType","schemas","_callee3","_contactsResponse$dat2","logInfoSpy","_callee3$","_context3","log","toBeCalledWith","POST","CONTACTS_SCHEMA","_callee4","logSpy","_callee4$","_context4","_callee5","loggerContext","warnSpy","_callee5$","_context5","mockRejectedValue","_callee6","_callee6$","_context6","deleteContactGroup","DELETE","_callee7","response","_callee7$","_context7","_callee8","_res$data$contact","_result$data$contact","mockContactResponse","contact","res","result","_callee8$","_context8","slice","createContact","contactId","DEFAULT_GROUP_NAME","_callee9","_res$data$contact2","successContactGroupResponsePayload","successContactResponsePayload","_callee9$","_context9","contactType","_callee10","_res$data$contact3","successResponsePayloadGroup","_callee10$","_context10","_callee11","_callee11$","_context11","_callee12","_callee12$","_context12","deleteContact","_callee13","_callee13$","_context13"],"sources":["ContactsClient.test.ts"],"sourcesContent":["import {HTTP_METHODS, WebexRequestPayload} from '../common/types';\nimport {getTestUtilsWebex} from '../common/testUtil';\nimport {LOGGER} from '../Logger/types';\nimport {Contact, ContactResponse, IContacts} from './types';\nimport {createContactsClient} from './ContactsClient';\nimport {FAILURE_MESSAGE, SUCCESS_MESSAGE} from '../common/constants';\nimport log from '../Logger';\nimport {\n CONTACTS_FILE,\n CONTACT_FILTER,\n ENCRYPT_FILTER,\n DEFAULT_GROUP_NAME,\n USERS,\n GROUP_FILTER,\n CONTACTS_SCHEMA,\n} from './constants';\nimport * as utils from '../common/Utils';\nimport {\n mockCity,\n mockCompany,\n mockContactListTwo,\n mockContactResponseBodyTwo,\n mockContactListOne,\n mockContactResponseBodyOne,\n mockCountry,\n mockDisplayNameOne,\n mockDSSResponse,\n mockEmail,\n mockFirstName,\n mockLastName,\n mockNumber1,\n mockNumber2,\n mockSipAddress,\n mockState,\n mockStreet,\n mockTitle,\n mockZipCode,\n mockDisplayNameTwo,\n mockContactResponseBodyThird,\n mockKmsKey,\n mockGroupName,\n mockContactGroupListOne,\n mockContactGroupListTwo,\n mockAvatarURL,\n} from './contactFixtures';\n\ndescribe('ContactClient Tests', () => {\n const webex = getTestUtilsWebex();\n\n let contactClient: IContacts;\n\n // eslint-disable-next-line no-underscore-dangle\n const contactServiceUrl = `${webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`;\n // eslint-disable-next-line no-underscore-dangle\n const contactServiceGroupUrl = `${webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}`;\n const serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n const failureResponsePayload = <WebexRequestPayload>{\n statusCode: 503,\n body: {},\n };\n const mockGroupResponse = mockContactResponseBodyOne.groups[0];\n\n beforeEach(() => {\n contactClient = createContactsClient(webex, {level: LOGGER.INFO});\n\n expect(contactClient).toBeTruthy();\n expect(contactClient.getSDKConnector().getWebex()).toBeTruthy();\n });\n\n afterEach(() => {\n webex.request.mockClear();\n jest.clearAllMocks();\n });\n\n /**\n * TestCase inputs\n * name: TestCase name\n * payloadData: Response body\n * inputStatusCode: Status code received in response\n * expectedData: Expected data field in ContactResponse after processing\n * expectedMessage: Expected message field in ContactResponse after processing\n * expectedStatusCode: Expected status code field in ContactResponse after processing\n * decryptTextList: Array of decrypted contact list.\n */\n const errorCodes: {\n name: string;\n payloadData: unknown;\n inputStatusCode: number;\n expectedData: unknown;\n expectedMessage: string;\n expectedStatusCode: number;\n decryptTextList: Array<string>;\n }[] = [\n {\n name: 'Success case 1: fetch contacts using get contacts api, custom and cloud contact present',\n payloadData: mockContactResponseBodyOne,\n inputStatusCode: 200,\n expectedData: {contacts: mockContactListOne, groups: mockContactGroupListOne},\n expectedMessage: SUCCESS_MESSAGE,\n expectedStatusCode: 200,\n decryptTextList: [\n mockCity,\n mockCountry,\n mockState,\n mockStreet,\n mockZipCode,\n mockAvatarURL,\n mockCompany,\n mockDisplayNameOne,\n mockEmail,\n mockFirstName,\n mockLastName,\n mockNumber1,\n mockNumber2,\n mockSipAddress,\n mockTitle,\n mockNumber2,\n mockSipAddress,\n mockGroupName,\n ],\n },\n {\n name: 'Success case 2: fetch contacts using get contacts api, single custom contact with mandatory details present',\n payloadData: mockContactResponseBodyTwo,\n inputStatusCode: 200,\n expectedData: {contacts: mockContactListTwo, groups: mockContactGroupListTwo},\n expectedMessage: SUCCESS_MESSAGE,\n expectedStatusCode: 200,\n decryptTextList: [mockDisplayNameTwo, mockGroupName],\n },\n {\n name: 'Success case 3: fetch contacts using get contacts api, no contacts returned',\n payloadData: mockContactResponseBodyThird,\n inputStatusCode: 200,\n expectedData: {contacts: [], groups: []},\n expectedMessage: SUCCESS_MESSAGE,\n expectedStatusCode: 200,\n decryptTextList: [],\n },\n {\n name: 'Failed case: 200 OK with no response body',\n payloadData: undefined,\n inputStatusCode: 200,\n expectedData: {error: '422 Exception has occurred'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 422,\n decryptTextList: [],\n },\n {\n name: 'Failed case 403: fetch contacts using get contacts api',\n payloadData: {error: '403 Forbidden'},\n inputStatusCode: 403,\n expectedData: {error: 'User request is forbidden'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 403,\n decryptTextList: [],\n },\n {\n name: 'Failed case 408: fetch contacts using get contacts api',\n payloadData: {error: '408 Request Timeout'},\n inputStatusCode: 408,\n expectedData: {error: 'Request to the server timedout'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 408,\n decryptTextList: [],\n },\n {\n name: 'Failed case 500: fetch contacts using get contacts api',\n payloadData: {error: '500 Internal Server Error'},\n inputStatusCode: 500,\n expectedData: {error: 'Internal server error occurred'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 500,\n decryptTextList: [],\n },\n {\n name: 'Failed case 503: fetch contacts using get contacts api',\n payloadData: {error: '503 Service Unavailable'},\n inputStatusCode: 503,\n expectedData: {error: 'Unable to establish a connection with the server'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 503,\n decryptTextList: [],\n },\n ].map((stat) =>\n Object.assign(stat, {\n toString() {\n /* eslint-disable dot-notation */\n return this['name'];\n },\n })\n );\n\n it.each(errorCodes)('%s', async (codeObj) => {\n const respPayload = {\n statusCode: codeObj.inputStatusCode,\n };\n\n if (codeObj.inputStatusCode === 200) {\n respPayload['body'] = codeObj.payloadData;\n webex.request.mockResolvedValueOnce(respPayload);\n codeObj.decryptTextList.forEach((text) => {\n webex.internal.encryption.decryptText.mockResolvedValueOnce(text);\n });\n webex.internal.dss.lookup.mockResolvedValueOnce(mockDSSResponse);\n } else {\n respPayload['message'] = FAILURE_MESSAGE;\n respPayload['data'] = codeObj.payloadData;\n webex.request.mockRejectedValueOnce(respPayload);\n }\n\n const contactsResponse = await contactClient.getContacts();\n\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceUrl,\n method: HTTP_METHODS.GET,\n });\n\n expect(contactsResponse).toEqual({\n data: codeObj.expectedData,\n message: codeObj.expectedMessage,\n statusCode: codeObj.expectedStatusCode,\n });\n\n if (codeObj.expectedMessage === SUCCESS_MESSAGE) {\n expect(serviceErrorCodeHandlerSpy).not.toBeCalled();\n } else {\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n codeObj.payloadData ? respPayload : expect.any(Error),\n {\n file: CONTACTS_FILE,\n method: 'getContacts',\n }\n );\n }\n });\n\n it('create a contact group without encryptionKey', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockGroupResponse,\n };\n\n contactClient['groups'] = [];\n contactClient['encryptionKeyUrl'] = '';\n\n webex.request.mockResolvedValue(successResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n webex.internal.encryption.encryptText\n .mockResolvedValueOnce('Encrypted Other')\n .mockResolvedValueOnce('Encrypted Top');\n\n const contactsResponse = await contactClient.createContactGroup('Top Contacts');\n\n expect(contactsResponse.statusCode).toEqual(201);\n expect(contactsResponse.data.group?.groupId).toBe(mockGroupResponse.groupId);\n expect(webex.internal.encryption.kms.createUnboundKeys).toBeCalledOnceWith({count: 1});\n expect(webex.internal.encryption.kms.createResource).toBeCalledOnceWith({\n keyUris: [mockKmsKey.uri],\n });\n expect(webex.request).toBeCalledTimes(2);\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n uri: contactServiceGroupUrl,\n method: 'POST',\n body: {\n displayName: 'Encrypted Other',\n encryptionKeyUrl: mockKmsKey.uri,\n groupType: 'NORMAL',\n schemas: 'urn:cisco:codev:identity:contact:core:1.0',\n },\n });\n\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n uri: contactServiceGroupUrl,\n method: 'POST',\n body: {\n displayName: 'Encrypted Top',\n encryptionKeyUrl: mockKmsKey.uri,\n groupType: 'NORMAL',\n schemas: 'urn:cisco:codev:identity:contact:core:1.0',\n },\n });\n\n expect(contactClient['groups'].length).toEqual(2);\n expect(contactClient['groups'][1].displayName).toEqual('Top Contacts');\n });\n\n it('create a contact group with existing key info', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockGroupResponse,\n };\n\n contactClient['groups'] = mockContactGroupListOne;\n webex.request.mockResolvedValue(successResponsePayload);\n\n webex.internal.encryption.encryptText.mockResolvedValue('Encrypted Top Contacts');\n const logInfoSpy = jest.spyOn(log, 'info');\n const contactsResponse = await contactClient.createContactGroup('Top Contacts');\n\n expect(contactsResponse.statusCode).toEqual(201);\n expect(contactsResponse.data.group?.groupId).toBe(mockGroupResponse.groupId);\n expect(logInfoSpy).not.toBeCalledWith('Requesting kms for a new KRO and key', {\n file: CONTACTS_FILE,\n method: 'createNewEncryptionKeyUrl',\n });\n\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceGroupUrl,\n method: HTTP_METHODS.POST,\n body: {\n displayName: 'Encrypted Top Contacts',\n encryptionKeyUrl: mockContactGroupListOne[0].encryptionKeyUrl,\n groupType: 'NORMAL',\n schemas: CONTACTS_SCHEMA,\n },\n });\n\n expect(contactClient['groups'].length).toEqual(2);\n expect(contactClient['groups'][1].displayName).toEqual('Top Contacts');\n });\n\n it('create a contact group with same displayName', async () => {\n contactClient['groups'] = mockContactResponseBodyOne.groups;\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n const logSpy = jest.spyOn(log, 'warn');\n const contactsResponse = await contactClient.createContactGroup(mockGroupResponse.displayName);\n\n expect(webex.request).not.toBeCalled();\n expect(contactsResponse.statusCode).toBe(400);\n expect(logSpy).toBeCalledOnceWith(\n `Group name ${mockGroupResponse.displayName} already exists.`,\n {\n file: CONTACTS_FILE,\n method: 'createContactGroup',\n }\n );\n expect(contactClient['groups']).toEqual(mockContactResponseBodyOne.groups);\n });\n\n it('create a contact group - service unavailable', async () => {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: 'createContactGroup',\n };\n\n contactClient['groups'] = mockContactGroupListOne;\n webex.request.mockRejectedValue(failureResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n webex.internal.encryption.encryptText.mockResolvedValueOnce('Encrypted group name');\n const warnSpy = jest.spyOn(log, 'warn');\n const contactsResponse = await contactClient.createContactGroup('New group');\n\n expect(contactsResponse.statusCode).toBe(503);\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceGroupUrl,\n method: HTTP_METHODS.POST,\n body: {\n displayName: 'Encrypted group name',\n encryptionKeyUrl: 'kms://cisco.com/keys/dcf18f9d-155e-44ff-ad61-c8a69b7103ab',\n groupType: 'NORMAL',\n schemas: 'urn:cisco:codev:identity:contact:core:1.0',\n },\n });\n expect(warnSpy).toBeCalledTimes(2);\n expect(warnSpy).toHaveBeenNthCalledWith(1, 'Unable to create contact group.', loggerContext);\n expect(warnSpy).toHaveBeenNthCalledWith(\n 2,\n '503 Unable to establish a connection with the server',\n loggerContext\n );\n\n expect(contactClient['groups']).toEqual(mockContactGroupListOne);\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, loggerContext);\n });\n\n it('delete a contact group - service unavailable', async () => {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: 'deleteContactGroup',\n };\n\n contactClient['groups'] = mockContactGroupListOne;\n webex.request.mockRejectedValue(failureResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n const warnSpy = jest.spyOn(log, 'warn');\n const contactsResponse = await contactClient.deleteContactGroup(mockGroupResponse.groupId);\n\n expect(contactsResponse.statusCode).toBe(503);\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.DELETE,\n uri: `${contactServiceGroupUrl}/${mockGroupResponse.groupId}`,\n });\n expect(warnSpy).toBeCalledTimes(2);\n expect(warnSpy).toHaveBeenNthCalledWith(\n 1,\n `Unable to delete contact group ${mockGroupResponse.groupId}`,\n loggerContext\n );\n expect(warnSpy).toHaveBeenNthCalledWith(\n 2,\n '503 Unable to establish a connection with the server',\n loggerContext\n );\n\n expect(contactClient['groups']).toEqual(mockContactGroupListOne);\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, loggerContext);\n });\n\n it('successful deletion of contact group', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 204,\n };\n\n contactClient['groups'] = [mockContactGroupListOne[0]];\n webex.request.mockResolvedValue(successResponsePayload);\n const response = await contactClient.deleteContactGroup(mockContactGroupListOne[0].groupId);\n\n expect(response.statusCode).toEqual(204);\n expect(webex.request).toBeCalledOnceWith({\n uri: `${contactServiceGroupUrl}/${mockContactGroupListOne[0].groupId}`,\n method: HTTP_METHODS.DELETE,\n });\n expect(contactClient['groups']).toEqual([]);\n });\n\n it('create a contact with an existing group', async () => {\n const mockContactResponse = mockContactResponseBodyTwo.contacts[0];\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponse,\n };\n\n webex.request.mockResolvedValue(successResponsePayload);\n webex.internal.encryption.encryptText.mockResolvedValue('Encrypted contact name');\n const logSpy = jest.spyOn(log, 'info');\n\n contactClient['groups'] = mockContactGroupListOne;\n contactClient['encryptionKeyUrl'] = mockContactGroupListOne[0].encryptionKeyUrl;\n\n const contact = mockContactListTwo.slice()[0] as Contact;\n\n contact.groups = [];\n\n const res: ContactResponse = await contactClient.createContact(contact);\n\n expect(res.statusCode).toEqual(201);\n expect(res.data.contact?.contactId).toBe(mockContactResponse.contactId);\n expect(logSpy).not.toBeCalledWith('Created a KRO and encryptionKeyUrl', {\n file: CONTACTS_FILE,\n method: 'createNewEncryptionKeyUrl',\n });\n\n expect(logSpy).not.toBeCalledWith('Created a KRO and encryptionKeyUrl', {\n file: CONTACTS_FILE,\n method: 'createNewEncryptionKeyUrl',\n });\n expect(logSpy).not.toBeCalledWith(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_FILE,\n method: 'fetchEncryptionKeyUrl',\n });\n\n expect(webex.internal.encryption.encryptText).toBeCalledOnceWith(\n mockContactGroupListOne[0].encryptionKeyUrl,\n contact.displayName\n );\n\n expect(webex.request).toBeCalledOnceWith({\n body: {\n ...contact,\n displayName: 'Encrypted contact name',\n groups: [mockContactGroupListOne[0].groupId],\n schemas: CONTACTS_SCHEMA,\n },\n uri: contactServiceUrl,\n method: HTTP_METHODS.POST,\n });\n\n logSpy.mockClear();\n\n /* for coverage */\n const result: ContactResponse = await contactClient.createContact(contact);\n\n expect(result.data.contact?.contactId).toBe(mockContactResponse.contactId);\n expect(logSpy).not.toBeCalledWith(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_FILE,\n method: 'fetchEncryptionKeyUrl',\n });\n });\n\n it('create a contact without a group and encryptionKey', async () => {\n const mockContactResponse = mockContactResponseBodyOne.contacts[1];\n\n contactClient['groups'] = [];\n contactClient['encryptionKey'] = '';\n contactClient['defaultGroupId'] = '';\n const successContactGroupResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockGroupResponse,\n };\n const successContactResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponse,\n };\n\n webex.request\n .mockResolvedValueOnce(successContactGroupResponsePayload)\n .mockResolvedValueOnce(successContactResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n webex.internal.encryption.encryptText.mockResolvedValueOnce('Encrypted group name');\n\n const contact = {\n contactType: 'CUSTOM',\n } as Contact;\n\n const res = await contactClient.createContact(contact);\n\n expect(res.statusCode).toEqual(201);\n\n expect(webex.request).toBeCalledTimes(2);\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n body: {\n displayName: 'Encrypted group name',\n encryptionKeyUrl: mockKmsKey.uri,\n groupType: 'NORMAL',\n schemas: CONTACTS_SCHEMA,\n },\n uri: contactServiceGroupUrl,\n method: HTTP_METHODS.POST,\n });\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n body: {\n contactType: 'CUSTOM',\n encryptionKeyUrl: mockKmsKey.uri,\n groups: ['1561977e-3443-4ccf-a591-69686275d7d2'],\n schemas: CONTACTS_SCHEMA,\n },\n method: HTTP_METHODS.POST,\n uri: contactServiceUrl,\n });\n expect(webex.internal.encryption.kms.createUnboundKeys).toBeCalledOnceWith({count: 1});\n expect(webex.internal.encryption.kms.createResource).toBeCalledOnceWith({\n keyUris: [mockKmsKey.uri],\n });\n expect(res.data.contact?.contactId).toBe(mockContactResponse.contactId);\n });\n\n it('create a cloud contact with no existing groups', async () => {\n const mockContactResponse = mockContactResponseBodyOne.contacts[0];\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponse,\n };\n const successResponsePayloadGroup = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponseBodyOne.groups[0],\n };\n\n webex.request\n .mockResolvedValueOnce(successResponsePayloadGroup)\n .mockResolvedValueOnce(successResponsePayload);\n\n webex.internal.encryption.encryptText.mockResolvedValueOnce('Encrypted group name');\n\n contactClient['groups'] = [];\n contactClient['encryptionKeyUrl'] = mockContactResponseBodyOne.groups[0].encryptionKeyUrl;\n\n const contact = {\n contactType: 'CLOUD',\n } as Contact;\n\n contact.groups = [];\n\n let res: ContactResponse = await contactClient.createContact(contact);\n\n expect(res.statusCode).toEqual(400);\n expect(res.data.error).toEqual('contactId is required for contactType:CLOUD.');\n\n webex.internal.dss.lookup.mockResolvedValueOnce(mockDSSResponse);\n contact.contactId = mockContactResponse.contactId;\n\n res = await contactClient.createContact(contact);\n expect(res.statusCode).toEqual(201);\n expect(res.data.contact?.contactId).toBe(mockContactResponse.contactId);\n\n expect(webex.request).toBeCalledTimes(2);\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n method: HTTP_METHODS.POST,\n uri: contactServiceGroupUrl,\n body: {\n displayName: 'Encrypted group name',\n groupType: 'NORMAL',\n encryptionKeyUrl: mockContactResponseBodyOne.groups[0].encryptionKeyUrl,\n schemas: CONTACTS_SCHEMA,\n },\n });\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n method: HTTP_METHODS.POST,\n uri: contactServiceUrl,\n body: {\n contactId: mockContactResponse.contactId,\n contactType: 'CLOUD',\n encryptionKeyUrl: mockContactResponseBodyOne.groups[0].encryptionKeyUrl,\n schemas: CONTACTS_SCHEMA,\n groups: ['1561977e-3443-4ccf-a591-69686275d7d2'],\n },\n });\n });\n\n it('create a contact - service unavailable', async () => {\n webex.request.mockRejectedValue(failureResponsePayload);\n\n contactClient['groups'] = mockContactGroupListOne.slice();\n contactClient['encryptionKeyUrl'] = mockContactResponseBodyOne.groups[0].encryptionKeyUrl;\n const contact = {\n contactType: 'CLOUD',\n contactId: '801bb994-343b-4f6b-97ae-d13c91d4b877',\n } as Contact;\n\n const res: ContactResponse = await contactClient.createContact(contact);\n\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceUrl,\n method: HTTP_METHODS.POST,\n body: {\n ...contact,\n encryptionKeyUrl: mockContactResponseBodyOne.groups[0].encryptionKeyUrl,\n groups: [mockContactGroupListOne[0].groupId],\n schemas: CONTACTS_SCHEMA,\n },\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, {\n file: CONTACTS_FILE,\n method: 'createContact',\n });\n expect(res.statusCode).toEqual(503);\n });\n\n it('successful deletion of contacts', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 204,\n };\n\n contactClient['contacts'] = [mockContactListOne[0]];\n webex.request.mockResolvedValue(successResponsePayload);\n const response = await contactClient.deleteContact(mockContactListOne[0].contactId);\n\n expect(response.statusCode).toEqual(204);\n expect(webex.request).toBeCalledOnceWith({\n uri: `${contactServiceUrl}/${mockContactListOne[0].contactId}`,\n method: HTTP_METHODS.DELETE,\n });\n expect(contactClient['contacts']).toEqual([]);\n });\n\n it('delete a contact - service unavailable', async () => {\n contactClient['contacts'] = mockContactListOne;\n\n webex.request.mockRejectedValue(failureResponsePayload);\n const response = await contactClient.deleteContact(mockContactListOne[0].contactId);\n\n expect(response.statusCode).toEqual(503);\n expect(webex.request).toBeCalledOnceWith({\n uri: `${contactServiceUrl}/${mockContactListOne[0].contactId}`,\n method: HTTP_METHODS.DELETE,\n });\n\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, {\n file: CONTACTS_FILE,\n method: 'deleteContact',\n });\n\n expect(contactClient['contacts']).toEqual(mockContactListOne);\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_types","require","_testUtil","_types2","_ContactsClient","_constants","_Logger","_interopRequireDefault","_constants2","utils","_interopRequireWildcard","_contactFixtures","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","describe","webex","getTestUtilsWebex","contactClient","contactServiceUrl","concat","internal","services","_serviceUrls","contactsService","ENCRYPT_FILTER","USERS","CONTACT_FILTER","scimUrl","identity","IDENTITY_ENDPOINT_RESOURCE","SCIM_ENDPOINT_RESOURCE","device","orgId","SCIM_USER_FILTER","contactServiceGroupUrl","GROUP_FILTER","serviceErrorCodeHandlerSpy","jest","spyOn","failureResponsePayload","statusCode","body","mockGroupResponse","mockContactResponseBodyOne","groups","beforeEach","createContactsClient","level","LOGGER","INFO","expect","toBeTruthy","getSDKConnector","getWebex","afterEach","request","mockClear","clearAllMocks","errorCodes","name","payloadData","inputStatusCode","expectedData","contacts","mockContactListOne","mockContactGroupListOne","expectedMessage","SUCCESS_MESSAGE","expectedStatusCode","decryptTextList","mockCity","mockCountry","mockState","mockStreet","mockZipCode","mockAvatarURL","mockCompany","mockDisplayNameOne","mockEmail","mockFirstName","mockLastName","mockNumber1","mockNumber2","mockSipAddress","mockTitle","mockGroupName","cloudContactPresent","scimResponse","mockSCIMListResponse","mockContactResponseBodyTwo","mockContactListTwo","mockContactGroupListTwo","mockDisplayNameTwo","mockContactResponseBodyThird","undefined","error","FAILURE_MESSAGE","map","stat","_assign","toString","it","each","_ref","_asyncToGenerator2","_regenerator","mark","_callee","codeObj","respPayload","contactsResponse","wrap","_callee$","_context","prev","next","mockResolvedValueOnce","text","encryption","decryptText","mockRejectedValueOnce","getContacts","sent","toBeCalledTimes","toHaveBeenNthCalledWith","uri","method","HTTP_METHODS","GET","headers","toBeCalledOnceWith","toEqual","data","any","message","not","toBeCalled","Error","file","CONTACTS_FILE","stop","_x","_callee2","_contactsResponse$dat","successResponsePayload","_callee2$","_context2","mockResolvedValue","kms","createUnboundKeys","mockKmsKey","createResource","encryptText","createContactGroup","group","groupId","toBe","count","keyUris","displayName","encryptionKeyUrl","groupType","schemas","_callee3","_contactsResponse$dat2","logInfoSpy","_callee3$","_context3","log","toBeCalledWith","POST","CONTACTS_SCHEMA","_callee4","logSpy","_callee4$","_context4","_callee5","loggerContext","warnSpy","_callee5$","_context5","mockRejectedValue","_callee6","_callee6$","_context6","deleteContactGroup","DELETE","_callee7","response","_callee7$","_context7","_callee8","_res$data$contact","_result$data$contact","mockContactResponse","contact","res","result","_callee8$","_context8","slice","createContact","contactId","DEFAULT_GROUP_NAME","_callee9","_res$data$contact2","successContactGroupResponsePayload","successContactResponsePayload","_callee9$","_context9","contactType","_callee10","_res$data$contact3","successResponsePayloadGroup","_callee10$","_context10","_callee11","_callee11$","_context11","_callee12","_callee12$","_context12","deleteContact","_callee13","_callee13$","_context13"],"sources":["ContactsClient.test.ts"],"sourcesContent":["import {HTTP_METHODS, SCIMListResponse, WebexRequestPayload} from '../common/types';\nimport {getTestUtilsWebex} from '../common/testUtil';\nimport {LOGGER} from '../Logger/types';\nimport {Contact, ContactResponse, IContacts} from './types';\nimport {createContactsClient} from './ContactsClient';\nimport {\n FAILURE_MESSAGE,\n IDENTITY_ENDPOINT_RESOURCE,\n SCIM_ENDPOINT_RESOURCE,\n SCIM_USER_FILTER,\n SUCCESS_MESSAGE,\n} from '../common/constants';\nimport log from '../Logger';\nimport {\n CONTACTS_FILE,\n CONTACT_FILTER,\n ENCRYPT_FILTER,\n DEFAULT_GROUP_NAME,\n USERS,\n GROUP_FILTER,\n CONTACTS_SCHEMA,\n} from './constants';\nimport * as utils from '../common/Utils';\nimport {\n mockCity,\n mockCompany,\n mockContactListTwo,\n mockContactResponseBodyTwo,\n mockContactListOne,\n mockContactResponseBodyOne,\n mockCountry,\n mockDisplayNameOne,\n mockEmail,\n mockFirstName,\n mockLastName,\n mockNumber1,\n mockNumber2,\n mockSCIMListResponse,\n mockSipAddress,\n mockState,\n mockStreet,\n mockTitle,\n mockZipCode,\n mockDisplayNameTwo,\n mockContactResponseBodyThird,\n mockKmsKey,\n mockGroupName,\n mockContactGroupListOne,\n mockContactGroupListTwo,\n mockAvatarURL,\n} from './contactFixtures';\n\ndescribe('ContactClient Tests', () => {\n const webex = getTestUtilsWebex();\n\n let contactClient: IContacts;\n\n // eslint-disable-next-line no-underscore-dangle\n const contactServiceUrl = `${webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`;\n const scimUrl = `${webex.internal.services._serviceUrls.identity}/${IDENTITY_ENDPOINT_RESOURCE}/${SCIM_ENDPOINT_RESOURCE}/${webex.internal.device.orgId}/${SCIM_USER_FILTER}id%20eq%20%22801bb994-343b-4f6b-97ae-d13c91d4b877%22`;\n // eslint-disable-next-line no-underscore-dangle\n const contactServiceGroupUrl = `${webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}`;\n const serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n const failureResponsePayload = <WebexRequestPayload>{\n statusCode: 503,\n body: {},\n };\n const mockGroupResponse = mockContactResponseBodyOne.groups[0];\n\n beforeEach(() => {\n contactClient = createContactsClient(webex, {level: LOGGER.INFO});\n\n expect(contactClient).toBeTruthy();\n expect(contactClient.getSDKConnector().getWebex()).toBeTruthy();\n });\n\n afterEach(() => {\n webex.request.mockClear();\n jest.clearAllMocks();\n });\n\n /**\n * TestCase inputs\n * name: TestCase name\n * payloadData: Response body\n * inputStatusCode: Status code received in response\n * expectedData: Expected data field in ContactResponse after processing\n * expectedMessage: Expected message field in ContactResponse after processing\n * expectedStatusCode: Expected status code field in ContactResponse after processing\n * decryptTextList: Array of decrypted contact list.\n */\n const errorCodes: {\n name: string;\n payloadData: unknown;\n inputStatusCode: number;\n expectedData: unknown;\n expectedMessage: string;\n expectedStatusCode: number;\n decryptTextList: Array<string>;\n cloudContactPresent?: boolean;\n scimResponse?: SCIMListResponse;\n }[] = [\n {\n name: 'Success case 1: fetch contacts using get contacts api, custom and cloud contact present',\n payloadData: mockContactResponseBodyOne,\n inputStatusCode: 200,\n expectedData: {contacts: mockContactListOne, groups: mockContactGroupListOne},\n expectedMessage: SUCCESS_MESSAGE,\n expectedStatusCode: 200,\n decryptTextList: [\n mockCity,\n mockCountry,\n mockState,\n mockStreet,\n mockZipCode,\n mockAvatarURL,\n mockCompany,\n mockDisplayNameOne,\n mockEmail,\n mockFirstName,\n mockLastName,\n mockNumber1,\n mockNumber2,\n mockSipAddress,\n mockTitle,\n mockNumber2,\n mockSipAddress,\n mockGroupName,\n ],\n cloudContactPresent: true,\n scimResponse: mockSCIMListResponse,\n },\n {\n name: 'Success case 2: fetch contacts using get contacts api, single custom contact with mandatory details present',\n payloadData: mockContactResponseBodyTwo,\n inputStatusCode: 200,\n expectedData: {contacts: mockContactListTwo, groups: mockContactGroupListTwo},\n expectedMessage: SUCCESS_MESSAGE,\n expectedStatusCode: 200,\n decryptTextList: [mockDisplayNameTwo, mockGroupName],\n },\n {\n name: 'Success case 3: fetch contacts using get contacts api, no contacts returned',\n payloadData: mockContactResponseBodyThird,\n inputStatusCode: 200,\n expectedData: {contacts: [], groups: []},\n expectedMessage: SUCCESS_MESSAGE,\n expectedStatusCode: 200,\n decryptTextList: [],\n },\n {\n name: 'Failed case: 200 OK with no response body',\n payloadData: undefined,\n inputStatusCode: 200,\n expectedData: {error: '422 Exception has occurred'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 422,\n decryptTextList: [],\n },\n {\n name: 'Failed case 403: fetch contacts using get contacts api',\n payloadData: {error: '403 Forbidden'},\n inputStatusCode: 403,\n expectedData: {error: 'User request is forbidden'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 403,\n decryptTextList: [],\n },\n {\n name: 'Failed case 408: fetch contacts using get contacts api',\n payloadData: {error: '408 Request Timeout'},\n inputStatusCode: 408,\n expectedData: {error: 'Request to the server timedout'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 408,\n decryptTextList: [],\n },\n {\n name: 'Failed case 500: fetch contacts using get contacts api',\n payloadData: {error: '500 Internal Server Error'},\n inputStatusCode: 500,\n expectedData: {error: 'Internal server error occurred'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 500,\n decryptTextList: [],\n },\n {\n name: 'Failed case 503: fetch contacts using get contacts api',\n payloadData: {error: '503 Service Unavailable'},\n inputStatusCode: 503,\n expectedData: {error: 'Unable to establish a connection with the server'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 503,\n decryptTextList: [],\n },\n ].map((stat) =>\n Object.assign(stat, {\n toString() {\n /* eslint-disable dot-notation */\n return this['name'];\n },\n })\n );\n\n it.each(errorCodes)('%s', async (codeObj) => {\n const respPayload = {\n statusCode: codeObj.inputStatusCode,\n };\n\n if (codeObj.inputStatusCode === 200) {\n respPayload['body'] = codeObj.payloadData;\n webex.request.mockResolvedValueOnce(respPayload);\n codeObj.decryptTextList.forEach((text) => {\n webex.internal.encryption.decryptText.mockResolvedValueOnce(text);\n });\n\n if (codeObj.scimResponse) {\n webex.request.mockResolvedValueOnce(mockSCIMListResponse);\n }\n } else {\n respPayload['message'] = FAILURE_MESSAGE;\n respPayload['data'] = codeObj.payloadData;\n webex.request.mockRejectedValueOnce(respPayload);\n }\n\n const contactsResponse = await contactClient.getContacts();\n\n if (codeObj.inputStatusCode === 200) {\n if (codeObj.cloudContactPresent) {\n expect(webex.request).toBeCalledTimes(2);\n } else {\n expect(webex.request).toBeCalledTimes(1);\n }\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n uri: contactServiceUrl,\n method: HTTP_METHODS.GET,\n });\n\n if (codeObj.cloudContactPresent) {\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n uri: scimUrl,\n method: HTTP_METHODS.GET,\n headers: {\n 'cisco-device-url':\n 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',\n 'spark-user-agent': 'webex-calling/beta',\n },\n });\n }\n } else {\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceUrl,\n method: HTTP_METHODS.GET,\n });\n }\n\n expect(contactsResponse).toEqual({\n data: expect.any(Object),\n message: codeObj.expectedMessage,\n statusCode: codeObj.expectedStatusCode,\n });\n\n if (codeObj.expectedMessage === SUCCESS_MESSAGE) {\n expect(serviceErrorCodeHandlerSpy).not.toBeCalled();\n } else {\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n codeObj.payloadData ? respPayload : expect.any(Error),\n {\n file: CONTACTS_FILE,\n method: 'getContacts',\n }\n );\n }\n });\n\n it('create a contact group without encryptionKey', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockGroupResponse,\n };\n\n contactClient['groups'] = [];\n contactClient['encryptionKeyUrl'] = '';\n\n webex.request.mockResolvedValue(successResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n webex.internal.encryption.encryptText\n .mockResolvedValueOnce('Encrypted Other')\n .mockResolvedValueOnce('Encrypted Top');\n\n const contactsResponse = await contactClient.createContactGroup('Top Contacts');\n\n expect(contactsResponse.statusCode).toEqual(201);\n expect(contactsResponse.data.group?.groupId).toBe(mockGroupResponse.groupId);\n expect(webex.internal.encryption.kms.createUnboundKeys).toBeCalledOnceWith({count: 1});\n expect(webex.internal.encryption.kms.createResource).toBeCalledOnceWith({\n keyUris: [mockKmsKey.uri],\n });\n expect(webex.request).toBeCalledTimes(2);\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n uri: contactServiceGroupUrl,\n method: 'POST',\n body: {\n displayName: 'Encrypted Other',\n encryptionKeyUrl: mockKmsKey.uri,\n groupType: 'NORMAL',\n schemas: 'urn:cisco:codev:identity:contact:core:1.0',\n },\n });\n\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n uri: contactServiceGroupUrl,\n method: 'POST',\n body: {\n displayName: 'Encrypted Top',\n encryptionKeyUrl: mockKmsKey.uri,\n groupType: 'NORMAL',\n schemas: 'urn:cisco:codev:identity:contact:core:1.0',\n },\n });\n\n expect(contactClient['groups'].length).toEqual(2);\n expect(contactClient['groups'][1].displayName).toEqual('Top Contacts');\n });\n\n it('create a contact group with existing key info', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockGroupResponse,\n };\n\n contactClient['groups'] = mockContactGroupListOne;\n webex.request.mockResolvedValue(successResponsePayload);\n\n webex.internal.encryption.encryptText.mockResolvedValue('Encrypted Top Contacts');\n const logInfoSpy = jest.spyOn(log, 'info');\n const contactsResponse = await contactClient.createContactGroup('Top Contacts');\n\n expect(contactsResponse.statusCode).toEqual(201);\n expect(contactsResponse.data.group?.groupId).toBe(mockGroupResponse.groupId);\n expect(logInfoSpy).not.toBeCalledWith('Requesting kms for a new KRO and key', {\n file: CONTACTS_FILE,\n method: 'createNewEncryptionKeyUrl',\n });\n\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceGroupUrl,\n method: HTTP_METHODS.POST,\n body: {\n displayName: 'Encrypted Top Contacts',\n encryptionKeyUrl: mockContactGroupListOne[0].encryptionKeyUrl,\n groupType: 'NORMAL',\n schemas: CONTACTS_SCHEMA,\n },\n });\n\n expect(contactClient['groups'].length).toEqual(2);\n expect(contactClient['groups'][1].displayName).toEqual('Top Contacts');\n });\n\n it('create a contact group with same displayName', async () => {\n contactClient['groups'] = mockContactResponseBodyOne.groups;\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n const logSpy = jest.spyOn(log, 'warn');\n const contactsResponse = await contactClient.createContactGroup(mockGroupResponse.displayName);\n\n expect(webex.request).not.toBeCalled();\n expect(contactsResponse.statusCode).toBe(400);\n expect(logSpy).toBeCalledOnceWith(\n `Group name ${mockGroupResponse.displayName} already exists.`,\n {\n file: CONTACTS_FILE,\n method: 'createContactGroup',\n }\n );\n expect(contactClient['groups']).toEqual(mockContactResponseBodyOne.groups);\n });\n\n it('create a contact group - service unavailable', async () => {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: 'createContactGroup',\n };\n\n contactClient['groups'] = mockContactGroupListOne;\n webex.request.mockRejectedValue(failureResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n webex.internal.encryption.encryptText.mockResolvedValueOnce('Encrypted group name');\n const warnSpy = jest.spyOn(log, 'warn');\n const contactsResponse = await contactClient.createContactGroup('New group');\n\n expect(contactsResponse.statusCode).toBe(503);\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceGroupUrl,\n method: HTTP_METHODS.POST,\n body: {\n displayName: 'Encrypted group name',\n encryptionKeyUrl: 'kms://cisco.com/keys/dcf18f9d-155e-44ff-ad61-c8a69b7103ab',\n groupType: 'NORMAL',\n schemas: 'urn:cisco:codev:identity:contact:core:1.0',\n },\n });\n expect(warnSpy).toBeCalledTimes(2);\n expect(warnSpy).toHaveBeenNthCalledWith(1, 'Unable to create contact group.', loggerContext);\n expect(warnSpy).toHaveBeenNthCalledWith(\n 2,\n '503 Unable to establish a connection with the server',\n loggerContext\n );\n\n expect(contactClient['groups']).toEqual(mockContactGroupListOne);\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, loggerContext);\n });\n\n it('delete a contact group - service unavailable', async () => {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: 'deleteContactGroup',\n };\n\n contactClient['groups'] = mockContactGroupListOne;\n webex.request.mockRejectedValue(failureResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n const warnSpy = jest.spyOn(log, 'warn');\n const contactsResponse = await contactClient.deleteContactGroup(mockGroupResponse.groupId);\n\n expect(contactsResponse.statusCode).toBe(503);\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.DELETE,\n uri: `${contactServiceGroupUrl}/${mockGroupResponse.groupId}`,\n });\n expect(warnSpy).toBeCalledTimes(2);\n expect(warnSpy).toHaveBeenNthCalledWith(\n 1,\n `Unable to delete contact group ${mockGroupResponse.groupId}`,\n loggerContext\n );\n expect(warnSpy).toHaveBeenNthCalledWith(\n 2,\n '503 Unable to establish a connection with the server',\n loggerContext\n );\n\n expect(contactClient['groups']).toEqual(mockContactGroupListOne);\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, loggerContext);\n });\n\n it('successful deletion of contact group', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 204,\n };\n\n contactClient['groups'] = [mockContactGroupListOne[0]];\n webex.request.mockResolvedValue(successResponsePayload);\n const response = await contactClient.deleteContactGroup(mockContactGroupListOne[0].groupId);\n\n expect(response.statusCode).toEqual(204);\n expect(webex.request).toBeCalledOnceWith({\n uri: `${contactServiceGroupUrl}/${mockContactGroupListOne[0].groupId}`,\n method: HTTP_METHODS.DELETE,\n });\n expect(contactClient['groups']).toEqual([]);\n });\n\n it('create a contact with an existing group', async () => {\n const mockContactResponse = mockContactResponseBodyTwo.contacts[0];\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponse,\n };\n\n webex.request.mockResolvedValue(successResponsePayload);\n webex.internal.encryption.encryptText.mockResolvedValue('Encrypted contact name');\n const logSpy = jest.spyOn(log, 'info');\n\n contactClient['groups'] = mockContactGroupListOne;\n contactClient['encryptionKeyUrl'] = mockContactGroupListOne[0].encryptionKeyUrl;\n\n const contact = mockContactListTwo.slice()[0] as Contact;\n\n contact.groups = [];\n\n const res: ContactResponse = await contactClient.createContact(contact);\n\n expect(res.statusCode).toEqual(201);\n expect(res.data.contact?.contactId).toBe(mockContactResponse.contactId);\n expect(logSpy).not.toBeCalledWith('Created a KRO and encryptionKeyUrl', {\n file: CONTACTS_FILE,\n method: 'createNewEncryptionKeyUrl',\n });\n\n expect(logSpy).not.toBeCalledWith('Created a KRO and encryptionKeyUrl', {\n file: CONTACTS_FILE,\n method: 'createNewEncryptionKeyUrl',\n });\n expect(logSpy).not.toBeCalledWith(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_FILE,\n method: 'fetchEncryptionKeyUrl',\n });\n\n expect(webex.internal.encryption.encryptText).toBeCalledOnceWith(\n mockContactGroupListOne[0].encryptionKeyUrl,\n contact.displayName\n );\n\n expect(webex.request).toBeCalledOnceWith({\n body: {\n ...contact,\n displayName: 'Encrypted contact name',\n groups: [mockContactGroupListOne[0].groupId],\n schemas: CONTACTS_SCHEMA,\n },\n uri: contactServiceUrl,\n method: HTTP_METHODS.POST,\n });\n\n logSpy.mockClear();\n\n /* for coverage */\n const result: ContactResponse = await contactClient.createContact(contact);\n\n expect(result.data.contact?.contactId).toBe(mockContactResponse.contactId);\n expect(logSpy).not.toBeCalledWith(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_FILE,\n method: 'fetchEncryptionKeyUrl',\n });\n });\n\n it('create a contact without a group and encryptionKey', async () => {\n const mockContactResponse = mockContactResponseBodyOne.contacts[1];\n\n contactClient['groups'] = [];\n contactClient['encryptionKey'] = '';\n contactClient['defaultGroupId'] = '';\n const successContactGroupResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockGroupResponse,\n };\n const successContactResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponse,\n };\n\n webex.request\n .mockResolvedValueOnce(successContactGroupResponsePayload)\n .mockResolvedValueOnce(successContactResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n webex.internal.encryption.encryptText.mockResolvedValueOnce('Encrypted group name');\n\n const contact = {\n contactType: 'CUSTOM',\n } as Contact;\n\n const res = await contactClient.createContact(contact);\n\n expect(res.statusCode).toEqual(201);\n\n expect(webex.request).toBeCalledTimes(2);\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n body: {\n displayName: 'Encrypted group name',\n encryptionKeyUrl: mockKmsKey.uri,\n groupType: 'NORMAL',\n schemas: CONTACTS_SCHEMA,\n },\n uri: contactServiceGroupUrl,\n method: HTTP_METHODS.POST,\n });\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n body: {\n contactType: 'CUSTOM',\n encryptionKeyUrl: mockKmsKey.uri,\n groups: ['1561977e-3443-4ccf-a591-69686275d7d2'],\n schemas: CONTACTS_SCHEMA,\n },\n method: HTTP_METHODS.POST,\n uri: contactServiceUrl,\n });\n expect(webex.internal.encryption.kms.createUnboundKeys).toBeCalledOnceWith({count: 1});\n expect(webex.internal.encryption.kms.createResource).toBeCalledOnceWith({\n keyUris: [mockKmsKey.uri],\n });\n expect(res.data.contact?.contactId).toBe(mockContactResponse.contactId);\n });\n\n it('create a cloud contact with no existing groups', async () => {\n const mockContactResponse = mockContactResponseBodyOne.contacts[0];\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponse,\n };\n const successResponsePayloadGroup = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponseBodyOne.groups[0],\n };\n\n webex.request\n .mockResolvedValueOnce(successResponsePayloadGroup)\n .mockResolvedValueOnce(successResponsePayload)\n .mockResolvedValueOnce(mockSCIMListResponse);\n\n webex.internal.encryption.encryptText.mockResolvedValueOnce('Encrypted group name');\n\n contactClient['groups'] = [];\n contactClient['encryptionKeyUrl'] = mockContactResponseBodyOne.groups[0].encryptionKeyUrl;\n\n const contact = {\n contactType: 'CLOUD',\n } as Contact;\n\n contact.groups = [];\n\n let res: ContactResponse = await contactClient.createContact(contact);\n\n expect(res.statusCode).toEqual(400);\n expect(res.data.error).toEqual('contactId is required for contactType:CLOUD.');\n\n contact.contactId = mockContactResponse.contactId;\n\n res = await contactClient.createContact(contact);\n expect(res.statusCode).toEqual(201);\n expect(res.data.contact?.contactId).toBe(mockContactResponse.contactId);\n\n expect(webex.request).toBeCalledTimes(3);\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n method: HTTP_METHODS.POST,\n uri: contactServiceGroupUrl,\n body: {\n displayName: 'Encrypted group name',\n groupType: 'NORMAL',\n encryptionKeyUrl: mockContactResponseBodyOne.groups[0].encryptionKeyUrl,\n schemas: CONTACTS_SCHEMA,\n },\n });\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n method: HTTP_METHODS.POST,\n uri: contactServiceUrl,\n body: {\n contactId: mockContactResponse.contactId,\n contactType: 'CLOUD',\n encryptionKeyUrl: mockContactResponseBodyOne.groups[0].encryptionKeyUrl,\n schemas: CONTACTS_SCHEMA,\n groups: ['1561977e-3443-4ccf-a591-69686275d7d2'],\n },\n });\n expect(webex.request).toHaveBeenNthCalledWith(3, {\n uri: scimUrl,\n method: HTTP_METHODS.GET,\n headers: {\n 'cisco-device-url':\n 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',\n 'spark-user-agent': 'webex-calling/beta',\n },\n });\n });\n\n it('create a contact - service unavailable', async () => {\n webex.request.mockRejectedValue(failureResponsePayload);\n\n contactClient['groups'] = mockContactGroupListOne.slice();\n contactClient['encryptionKeyUrl'] = mockContactResponseBodyOne.groups[0].encryptionKeyUrl;\n const contact = {\n contactType: 'CLOUD',\n contactId: '801bb994-343b-4f6b-97ae-d13c91d4b877',\n } as Contact;\n\n const res: ContactResponse = await contactClient.createContact(contact);\n\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceUrl,\n method: HTTP_METHODS.POST,\n body: {\n ...contact,\n encryptionKeyUrl: mockContactResponseBodyOne.groups[0].encryptionKeyUrl,\n groups: [mockContactGroupListOne[0].groupId],\n schemas: CONTACTS_SCHEMA,\n },\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, {\n file: CONTACTS_FILE,\n method: 'createContact',\n });\n expect(res.statusCode).toEqual(503);\n });\n\n it('successful deletion of contacts', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 204,\n };\n\n contactClient['contacts'] = [mockContactListOne[0]];\n webex.request.mockResolvedValue(successResponsePayload);\n const response = await contactClient.deleteContact(mockContactListOne[0].contactId);\n\n expect(response.statusCode).toEqual(204);\n expect(webex.request).toBeCalledOnceWith({\n uri: `${contactServiceUrl}/${mockContactListOne[0].contactId}`,\n method: HTTP_METHODS.DELETE,\n });\n expect(contactClient['contacts']).toEqual([]);\n });\n\n it('delete a contact - service unavailable', async () => {\n contactClient['contacts'] = mockContactListOne;\n\n webex.request.mockRejectedValue(failureResponsePayload);\n const response = await contactClient.deleteContact(mockContactListOne[0].contactId);\n\n expect(response.statusCode).toEqual(503);\n expect(webex.request).toBeCalledOnceWith({\n uri: `${contactServiceUrl}/${mockContactListOne[0].contactId}`,\n method: HTTP_METHODS.DELETE,\n });\n\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, {\n file: CONTACTS_FILE,\n method: 'deleteContact',\n });\n\n expect(contactClient['contacts']).toEqual(mockContactListOne);\n });\n});\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/defi
4
4
  _Object$defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.encryptedFields = exports.USERS = exports.GROUP_FILTER = exports.ENCRYPT_FILTER = exports.DEFAULT_GROUP_NAME = exports.CONTACT_FILTER = exports.CONTACTS_SCHEMA = exports.CONTACTS_FILE = void 0;
7
+ exports.encryptedFields = exports.USERS = exports.SCIM_ID_FILTER = exports.OR = exports.GROUP_FILTER = exports.ENCRYPT_FILTER = exports.DEFAULT_GROUP_NAME = exports.CONTACT_FILTER = exports.CONTACTS_SCHEMA = exports.CONTACTS_FILE = void 0;
8
8
  var CONTACTS_FILE = exports.CONTACTS_FILE = 'Contacts';
9
9
  var CONTACT_FILTER = exports.CONTACT_FILTER = 'contacts';
10
10
  var GROUP_FILTER = exports.GROUP_FILTER = 'groups';
@@ -12,6 +12,8 @@ var ENCRYPT_FILTER = exports.ENCRYPT_FILTER = 'encrypt';
12
12
  var USERS = exports.USERS = 'Users';
13
13
  var DEFAULT_GROUP_NAME = exports.DEFAULT_GROUP_NAME = 'Other contacts';
14
14
  var CONTACTS_SCHEMA = exports.CONTACTS_SCHEMA = 'urn:cisco:codev:identity:contact:core:1.0';
15
+ var SCIM_ID_FILTER = exports.SCIM_ID_FILTER = 'id eq';
16
+ var OR = exports.OR = ' or ';
15
17
  var encryptedFields = exports.encryptedFields = /*#__PURE__*/function (encryptedFields) {
16
18
  encryptedFields["ADDRESS_INFO"] = "addressInfo";
17
19
  encryptedFields["AVATAR_URL"] = "avatarURL";
@@ -1 +1 @@
1
- {"version":3,"names":["CONTACTS_FILE","exports","CONTACT_FILTER","GROUP_FILTER","ENCRYPT_FILTER","USERS","DEFAULT_GROUP_NAME","CONTACTS_SCHEMA","encryptedFields"],"sources":["constants.ts"],"sourcesContent":["export const CONTACTS_FILE = 'Contacts';\nexport const CONTACT_FILTER = 'contacts';\nexport const GROUP_FILTER = 'groups';\nexport const ENCRYPT_FILTER = 'encrypt';\nexport const USERS = 'Users';\nexport const DEFAULT_GROUP_NAME = 'Other contacts';\nexport const CONTACTS_SCHEMA = 'urn:cisco:codev:identity:contact:core:1.0';\n\nexport enum encryptedFields {\n ADDRESS_INFO = 'addressInfo',\n AVATAR_URL = 'avatarURL',\n COMPANY = 'companyName',\n DISPLAY_NAME = 'displayName',\n EMAILS = 'emails',\n FIRST_NAME = 'firstName',\n LAST_NAME = 'lastName',\n PHONE_NUMBERS = 'phoneNumbers',\n SIP_ADDRESSES = 'sipAddresses',\n TITLE = 'title',\n}\n"],"mappings":";;;;;;;AAAO,IAAMA,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,UAAU;AAChC,IAAME,cAAc,GAAAD,OAAA,CAAAC,cAAA,GAAG,UAAU;AACjC,IAAMC,YAAY,GAAAF,OAAA,CAAAE,YAAA,GAAG,QAAQ;AAC7B,IAAMC,cAAc,GAAAH,OAAA,CAAAG,cAAA,GAAG,SAAS;AAChC,IAAMC,KAAK,GAAAJ,OAAA,CAAAI,KAAA,GAAG,OAAO;AACrB,IAAMC,kBAAkB,GAAAL,OAAA,CAAAK,kBAAA,GAAG,gBAAgB;AAC3C,IAAMC,eAAe,GAAAN,OAAA,CAAAM,eAAA,GAAG,2CAA2C;AAAC,IAE/DC,eAAe,GAAAP,OAAA,CAAAO,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA"}
1
+ {"version":3,"names":["CONTACTS_FILE","exports","CONTACT_FILTER","GROUP_FILTER","ENCRYPT_FILTER","USERS","DEFAULT_GROUP_NAME","CONTACTS_SCHEMA","SCIM_ID_FILTER","OR","encryptedFields"],"sources":["constants.ts"],"sourcesContent":["export const CONTACTS_FILE = 'Contacts';\nexport const CONTACT_FILTER = 'contacts';\nexport const GROUP_FILTER = 'groups';\nexport const ENCRYPT_FILTER = 'encrypt';\nexport const USERS = 'Users';\nexport const DEFAULT_GROUP_NAME = 'Other contacts';\nexport const CONTACTS_SCHEMA = 'urn:cisco:codev:identity:contact:core:1.0';\nexport const SCIM_ID_FILTER = 'id eq';\nexport const OR = ' or ';\n\nexport enum encryptedFields {\n ADDRESS_INFO = 'addressInfo',\n AVATAR_URL = 'avatarURL',\n COMPANY = 'companyName',\n DISPLAY_NAME = 'displayName',\n EMAILS = 'emails',\n FIRST_NAME = 'firstName',\n LAST_NAME = 'lastName',\n PHONE_NUMBERS = 'phoneNumbers',\n SIP_ADDRESSES = 'sipAddresses',\n TITLE = 'title',\n}\n"],"mappings":";;;;;;;AAAO,IAAMA,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,UAAU;AAChC,IAAME,cAAc,GAAAD,OAAA,CAAAC,cAAA,GAAG,UAAU;AACjC,IAAMC,YAAY,GAAAF,OAAA,CAAAE,YAAA,GAAG,QAAQ;AAC7B,IAAMC,cAAc,GAAAH,OAAA,CAAAG,cAAA,GAAG,SAAS;AAChC,IAAMC,KAAK,GAAAJ,OAAA,CAAAI,KAAA,GAAG,OAAO;AACrB,IAAMC,kBAAkB,GAAAL,OAAA,CAAAK,kBAAA,GAAG,gBAAgB;AAC3C,IAAMC,eAAe,GAAAN,OAAA,CAAAM,eAAA,GAAG,2CAA2C;AACnE,IAAMC,cAAc,GAAAP,OAAA,CAAAO,cAAA,GAAG,OAAO;AAC9B,IAAMC,EAAE,GAAAR,OAAA,CAAAQ,EAAA,GAAG,MAAM;AAAC,IAEbC,eAAe,GAAAT,OAAA,CAAAS,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA"}
@@ -4,7 +4,7 @@ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/defi
4
4
  _Object$defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.mockZipCode = exports.mockTitle = exports.mockStreet = exports.mockState = exports.mockSipAddress = exports.mockNumber2 = exports.mockNumber1 = exports.mockLastName = exports.mockKmsKey = exports.mockGroupName = exports.mockFirstName = exports.mockEmail = exports.mockDisplayNameTwo = exports.mockDisplayNameOne = exports.mockDSSResponse = exports.mockCountry = exports.mockContactResponseBodyTwo = exports.mockContactResponseBodyThird = exports.mockContactResponseBodyOne = exports.mockContactListTwo = exports.mockContactListOne = exports.mockContactGroupListTwo = exports.mockContactGroupListOne = exports.mockCompany = exports.mockCity = exports.mockAvatarURL = void 0;
7
+ exports.mockZipCode = exports.mockTitle = exports.mockStreet = exports.mockState = exports.mockSipAddress = exports.mockSCIMListResponse = exports.mockNumber2 = exports.mockNumber1 = exports.mockLastName = exports.mockKmsKey = exports.mockGroupName = exports.mockFirstName = exports.mockEmail = exports.mockDisplayNameTwo = exports.mockDisplayNameOne = exports.mockCountry = exports.mockContactResponseBodyTwo = exports.mockContactResponseBodyThird = exports.mockContactResponseBodyOne = exports.mockContactListTwo = exports.mockContactListOne = exports.mockContactGroupListTwo = exports.mockContactGroupListOne = exports.mockCompany = exports.mockCity = exports.mockAvatarURL = void 0;
8
8
  // cSpell:disable
9
9
  var mockCity = exports.mockCity = 'Edinburgh';
10
10
  var mockCountry = exports.mockCountry = 'UK';
@@ -251,62 +251,155 @@ var mockContactGroupListTwo = exports.mockContactGroupListTwo = [{
251
251
  encryptionKeyUrl: 'kms://cisco.com/keys/dcf18f9d-155e-44ff-ad61-c8a69b7103ab',
252
252
  isMigration: false
253
253
  }];
254
- var mockDSSResponse = exports.mockDSSResponse = [{
255
- additionalInfo: {
256
- created: '2022-08-05T02:51:46.055Z',
257
- department: '123029217',
258
- extLinkedAccts: [{
259
- providerID: 'cisco.webex.com',
260
- accountGUID: '500802287',
261
- status: 'active'
262
- }],
263
- firstName: 'Emily',
264
- identityManager: {
265
- displayName: 'Robert Langdon',
266
- managerId: '9d0fce00-95b2-435f-99d1-b6b44759fbdc'
267
- },
268
- jobTitle: 'Software Engineer',
269
- lastName: 'Nagakawa',
270
- modified: '2023-03-03T13:37:03.196Z',
271
- nickName: 'Emily',
272
- userName: 'emikawa2@cisco.com'
254
+ var scimUser1 = {
255
+ schemas: ['urn:ietf:params:scim:schemas:core:2.0:User', 'urn:scim:schemas:extension:cisco:webexidentity:2.0:User', 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User'],
256
+ id: 'userId',
257
+ userName: 'johndoe@cisco.com',
258
+ active: true,
259
+ name: {
260
+ familyName: 'Doe',
261
+ givenName: 'John'
273
262
  },
274
- displayName: 'Emily Nagakawa',
263
+ displayName: 'John Doe',
275
264
  emails: [{
276
- value: 'emikawa2@cisco.com'
265
+ value: 'johndoe@cisco.com',
266
+ type: 'work',
267
+ primary: true
277
268
  }],
278
- entityProviderType: 'CI_USER',
279
- identity: '801bb994-343b-4f6b-97ae-d13c91d4b877',
280
- orgId: '1eb65fdf-9643-417f-9974-ad72cae0e10f',
269
+ userType: 'user',
281
270
  phoneNumbers: [{
282
- type: 'mobile',
283
- value: '+1 835 648 8750'
284
- }, {
285
- type: 'work',
286
- value: '+1 791 723 8825'
271
+ value: '+91 22 1234 5678',
272
+ type: 'work'
287
273
  }],
288
274
  photos: [{
289
- value: 'avatar-prod-us-east-2.webexcontent.com'
290
- }],
291
- sipAddresses: [{
292
- type: 'cloud-calling',
293
- value: 'emikawa2@cisco.call.ciscospark.com',
294
- primary: true
295
- }, {
296
- type: 'personal-room',
297
- value: 'emikawa2@cisco.webex.com',
298
- primary: false
275
+ value: 'photoUrl',
276
+ type: 'photo'
299
277
  }, {
300
- type: 'enterprise',
301
- value: 'emikawa2@cisco.com',
278
+ value: 'thumbnailURL',
279
+ type: 'thumbnail'
280
+ }],
281
+ addresses: [{
282
+ type: 'work',
283
+ streetAddress: 'Street',
284
+ locality: 'BANGALORE',
285
+ region: 'KARNATAKA',
286
+ postalCode: '560103',
287
+ country: 'IN'
288
+ }],
289
+ 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User': {
290
+ department: '123029016',
291
+ manager: {
292
+ value: 'userId',
293
+ displayName: 'Jane Smith',
294
+ $ref: 'scimUrl'
295
+ }
296
+ },
297
+ 'urn:scim:schemas:extension:cisco:webexidentity:2.0:User': {
298
+ isTeamsOnJabberEnabled: false,
299
+ isUCCallOnJabberEnabled: false,
300
+ licenseID: ['license'],
301
+ userSettings: ['setting'],
302
+ userPreferences: ['preferences'],
303
+ sipAddresses: [{
304
+ value: 'johndoe@cisco.call.ciscospark.com',
305
+ type: 'cloud-calling'
306
+ }, {
307
+ value: 'johndoe@cisco.calls.webex.com',
308
+ type: 'cloud-calling',
309
+ primary: true
310
+ }, {
311
+ value: 'johndoe@cisco.webex.com',
312
+ type: 'personal-room'
313
+ }],
314
+ meta: {
315
+ organizationId: 'orgId'
316
+ },
317
+ userNameType: 'email'
318
+ },
319
+ meta: {
320
+ resourceType: 'User',
321
+ location: 'scimUrl',
322
+ version: 'W/"16629124099"',
323
+ created: '2019-12-24T02:01:42.803Z',
324
+ lastModified: '2024-08-21T14:22:55.987Z'
325
+ }
326
+ };
327
+ var scimUser2NoPhoto = {
328
+ schemas: ['urn:ietf:params:scim:schemas:core:2.0:User', 'urn:scim:schemas:extension:cisco:webexidentity:2.0:User', 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User'],
329
+ id: 'userId',
330
+ userName: 'janedoe@cisco.com',
331
+ active: true,
332
+ name: {
333
+ familyName: 'Doe',
334
+ givenName: 'Jane'
335
+ },
336
+ displayName: 'Jane Doe',
337
+ emails: [{
338
+ value: 'janedoe@cisco.com',
339
+ type: 'work',
302
340
  primary: true
303
- }, {
304
- type: 'personal-room',
305
- value: '25762555827@cisco.webex.com',
306
- primary: false
307
341
  }],
308
- type: 'PERSON'
309
- }];
342
+ userType: 'user',
343
+ phoneNumbers: [{
344
+ value: '+91 22 1234 5678',
345
+ type: 'work'
346
+ }],
347
+ addresses: [{
348
+ type: 'work',
349
+ streetAddress: 'Street',
350
+ locality: 'BANGALORE',
351
+ region: 'KARNATAKA',
352
+ postalCode: '560103',
353
+ country: 'IN'
354
+ }],
355
+ 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User': {
356
+ department: '123029016',
357
+ manager: {
358
+ value: 'userId',
359
+ displayName: 'John Smith',
360
+ $ref: 'scimUrl'
361
+ }
362
+ },
363
+ 'urn:scim:schemas:extension:cisco:webexidentity:2.0:User': {
364
+ isTeamsOnJabberEnabled: false,
365
+ isUCCallOnJabberEnabled: false,
366
+ licenseID: ['license'],
367
+ userSettings: ['setting'],
368
+ userPreferences: ['preferences'],
369
+ sipAddresses: [{
370
+ value: 'janedoe@cisco.call.ciscospark.com',
371
+ type: 'cloud-calling'
372
+ }, {
373
+ value: 'janedoe@cisco.calls.webex.com',
374
+ type: 'cloud-calling',
375
+ primary: true
376
+ }, {
377
+ value: 'janedoe@cisco.webex.com',
378
+ type: 'personal-room'
379
+ }],
380
+ meta: {
381
+ organizationId: 'orgId'
382
+ },
383
+ userNameType: 'email'
384
+ },
385
+ meta: {
386
+ resourceType: 'User',
387
+ location: 'scimUrl',
388
+ version: 'W/"16629124099"',
389
+ created: '2019-12-24T02:01:42.803Z',
390
+ lastModified: '2024-08-21T14:22:55.987Z'
391
+ }
392
+ };
393
+ var mockSCIMListResponse = exports.mockSCIMListResponse = {
394
+ statusCode: 200,
395
+ body: {
396
+ schemas: ['urn:ietf:params:scim:api:messages:2.0:ListResponse'],
397
+ totalResults: 11,
398
+ itemsPerPage: 11,
399
+ startIndex: 1,
400
+ Resources: [scimUser1, scimUser2NoPhoto]
401
+ }
402
+ };
310
403
  var mockKmsKey = exports.mockKmsKey = {
311
404
  uri: 'kms://kms-cisco.wbx2.com/keys/16095024-612d-4424-ba51-57cad2402e14'
312
405
  };