mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
144 lines
3.9 KiB
TypeScript
144 lines
3.9 KiB
TypeScript
import {
|
|
getGoogleAnalyticsDomainsArray,
|
|
getTags,
|
|
getToEmailArray,
|
|
validateJSON,
|
|
} from '../GenericFunctions';
|
|
|
|
describe('Mandrill GenericFunctions', () => {
|
|
describe('getToEmailArray', () => {
|
|
it('should convert single email to array', () => {
|
|
const result = getToEmailArray('test@example.com');
|
|
expect(result).toEqual([
|
|
{
|
|
email: 'test@example.com',
|
|
type: 'to',
|
|
},
|
|
]);
|
|
});
|
|
|
|
it('should convert comma-separated emails to array', () => {
|
|
const result = getToEmailArray('test1@example.com,test2@example.com,test3@example.com');
|
|
expect(result).toEqual([
|
|
{
|
|
email: 'test1@example.com',
|
|
type: 'to',
|
|
},
|
|
{
|
|
email: 'test2@example.com',
|
|
type: 'to',
|
|
},
|
|
{
|
|
email: 'test3@example.com',
|
|
type: 'to',
|
|
},
|
|
]);
|
|
});
|
|
|
|
it('should handle emails with spaces after commas', () => {
|
|
const result = getToEmailArray('test1@example.com, test2@example.com, test3@example.com');
|
|
expect(result).toEqual([
|
|
{
|
|
email: 'test1@example.com',
|
|
type: 'to',
|
|
},
|
|
{
|
|
email: ' test2@example.com',
|
|
type: 'to',
|
|
},
|
|
{
|
|
email: ' test3@example.com',
|
|
type: 'to',
|
|
},
|
|
]);
|
|
});
|
|
});
|
|
|
|
describe('getGoogleAnalyticsDomainsArray', () => {
|
|
it('should convert single domain to array', () => {
|
|
const result = getGoogleAnalyticsDomainsArray('example.com');
|
|
expect(result).toEqual(['example.com']);
|
|
});
|
|
|
|
it('should convert comma-separated domains to array', () => {
|
|
const result = getGoogleAnalyticsDomainsArray('example.com,test.com,demo.org');
|
|
expect(result).toEqual(['example.com', 'test.com', 'demo.org']);
|
|
});
|
|
|
|
it('should handle domains with spaces after commas', () => {
|
|
const result = getGoogleAnalyticsDomainsArray('example.com, test.com, demo.org');
|
|
expect(result).toEqual(['example.com', ' test.com', ' demo.org']);
|
|
});
|
|
|
|
it('should handle empty string', () => {
|
|
const result = getGoogleAnalyticsDomainsArray('');
|
|
expect(result).toEqual(['']);
|
|
});
|
|
});
|
|
|
|
describe('getTags', () => {
|
|
it('should convert single tag to array', () => {
|
|
const result = getTags('newsletter');
|
|
expect(result).toEqual(['newsletter']);
|
|
});
|
|
|
|
it('should convert comma-separated tags to array', () => {
|
|
const result = getTags('newsletter,marketing,promotion');
|
|
expect(result).toEqual(['newsletter', 'marketing', 'promotion']);
|
|
});
|
|
|
|
it('should handle tags with spaces after commas', () => {
|
|
const result = getTags('newsletter, marketing, promotion');
|
|
expect(result).toEqual(['newsletter', ' marketing', ' promotion']);
|
|
});
|
|
|
|
it('should handle empty string', () => {
|
|
const result = getTags('');
|
|
expect(result).toEqual(['']);
|
|
});
|
|
});
|
|
|
|
describe('validateJSON', () => {
|
|
it('should parse valid JSON object', () => {
|
|
const result = validateJSON('{"Test": "value", "number": 123}');
|
|
expect(result).toEqual({ Test: 'value', number: 123 });
|
|
});
|
|
|
|
it('should parse valid JSON array', () => {
|
|
const result = validateJSON('[{"name": "Test", "value": "data"}]');
|
|
expect(result).toEqual([{ name: 'Test', value: 'data' }]);
|
|
});
|
|
|
|
it('should return empty array for invalid JSON', () => {
|
|
const result = validateJSON('invalid json');
|
|
expect(result).toEqual([]);
|
|
});
|
|
|
|
it('should return empty array for undefined input', () => {
|
|
const result = validateJSON(undefined);
|
|
expect(result).toEqual([]);
|
|
});
|
|
|
|
it('should return null for null JSON string', () => {
|
|
const result = validateJSON('null');
|
|
expect(result).toEqual(null);
|
|
});
|
|
|
|
it('should parse nested JSON correctly', () => {
|
|
const result = validateJSON('{"metadata": {"key": "value"}, "array": [1, 2, 3]}');
|
|
expect(result).toEqual({
|
|
metadata: { key: 'value' },
|
|
array: [1, 2, 3],
|
|
});
|
|
});
|
|
|
|
it('should handle JSON with special characters', () => {
|
|
const result = validateJSON('{"message": "Hello\\nWorld\\t!", "emoji": "🎉"}');
|
|
expect(result).toEqual({
|
|
message: 'Hello\nWorld\t!',
|
|
emoji: '🎉',
|
|
});
|
|
});
|
|
});
|
|
});
|