mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-19 02:51:14 +00:00
fix(Mandrill Node): Fix a typo in subaccount in options (#18103)
This commit is contained in:
143
packages/nodes-base/nodes/Mandrill/test/GenericFunctions.test.ts
Normal file
143
packages/nodes-base/nodes/Mandrill/test/GenericFunctions.test.ts
Normal file
@@ -0,0 +1,143 @@
|
||||
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: '🎉',
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user