UNPKG

n8n-nodes-highlevelv2

Version:

n8n community node for HighLevel v2 API integration - comprehensive CRM, marketing automation, and business management platform

92 lines 4.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const GenericFunctions_1 = require("../GenericFunctions"); jest.mock('../GenericFunctions', () => ({ ...jest.requireActual('../GenericFunctions'), isEmailValid: jest.fn(), isPhoneValid: jest.fn(), })); describe('contactIdentifierPreSendAction', () => { let mockThis; beforeEach(() => { mockThis = { getNode: jest.fn(() => ({ id: 'mock-node-id', name: 'mock-node', typeVersion: 1, type: 'n8n-nodes-base.mockNode', position: [0, 0], parameters: {}, })), getNodeParameter: jest.fn((parameterName) => { if (parameterName === 'contactIdentifier') return null; if (parameterName === 'updateFields') return { contactIdentifier: 'default-identifier' }; return undefined; }), }; }); it('should add email to requestOptions.body if identifier is a valid email', async () => { GenericFunctions_1.isEmailValid.mockReturnValue(true); GenericFunctions_1.isPhoneValid.mockReturnValue(false); mockThis.getNodeParameter.mockReturnValue('valid@example.com'); const requestOptions = { url: 'https://example.com/api', body: {}, }; const result = await GenericFunctions_1.contactIdentifierPreSendAction.call(mockThis, requestOptions); expect(result.body).toEqual({ email: 'valid@example.com' }); }); it('should add phone to requestOptions.body if identifier is a valid phone', async () => { GenericFunctions_1.isEmailValid.mockReturnValue(false); GenericFunctions_1.isPhoneValid.mockReturnValue(true); mockThis.getNodeParameter.mockReturnValue('1234567890'); const requestOptions = { url: 'https://example.com/api', body: {}, }; const result = await GenericFunctions_1.contactIdentifierPreSendAction.call(mockThis, requestOptions); expect(result.body).toEqual({ phone: '1234567890' }); }); it('should add contactId to requestOptions.body if identifier is neither email nor phone', async () => { GenericFunctions_1.isEmailValid.mockReturnValue(false); GenericFunctions_1.isPhoneValid.mockReturnValue(false); mockThis.getNodeParameter.mockReturnValue('contact-id-123'); const requestOptions = { url: 'https://example.com/api', body: {}, }; const result = await GenericFunctions_1.contactIdentifierPreSendAction.call(mockThis, requestOptions); expect(result.body).toEqual({ contactId: 'contact-id-123' }); }); it('should use updateFields.contactIdentifier if contactIdentifier is not provided', async () => { GenericFunctions_1.isEmailValid.mockReturnValue(true); GenericFunctions_1.isPhoneValid.mockReturnValue(false); mockThis.getNodeParameter.mockImplementation((parameterName) => { if (parameterName === 'contactIdentifier') return null; if (parameterName === 'updateFields') return { contactIdentifier: 'default-email@example.com' }; return undefined; }); const requestOptions = { url: 'https://example.com/api', body: {}, }; const result = await GenericFunctions_1.contactIdentifierPreSendAction.call(mockThis, requestOptions); expect(result.body).toEqual({ email: 'default-email@example.com' }); }); it('should initialize body as an empty object if it is undefined', async () => { GenericFunctions_1.isEmailValid.mockReturnValue(false); GenericFunctions_1.isPhoneValid.mockReturnValue(false); mockThis.getNodeParameter.mockReturnValue('identifier-123'); const requestOptions = { url: 'https://example.com/api', body: undefined, }; const result = await GenericFunctions_1.contactIdentifierPreSendAction.call(mockThis, requestOptions); expect(result.body).toEqual({ contactId: 'identifier-123' }); }); }); //# sourceMappingURL=ContactIdentifierPreSendAction.test.js.map