mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-26 21:19:43 -08:00
180 lines
3.4 KiB
TypeScript
180 lines
3.4 KiB
TypeScript
import { splitAndTrim, fixFieldType, prepareInputItem, constructFilter } from '../helpers/utils';
|
|
|
|
describe('Test TheHiveProject, splitAndTrim', () => {
|
|
it('should split and trim string, removing empty entries', () => {
|
|
const data = 'a, b,, c, d, e, f,,';
|
|
|
|
const result = splitAndTrim(data);
|
|
|
|
expect(result).toEqual(['a', 'b', 'c', 'd', 'e', 'f']);
|
|
});
|
|
|
|
it('should return unchanged array', () => {
|
|
const data = ['a', 'b', 'c', 'd', 'e', 'f'];
|
|
|
|
const result = splitAndTrim(data);
|
|
|
|
expect(result).toEqual(data);
|
|
});
|
|
});
|
|
|
|
describe('Test TheHiveProject, fixFieldType', () => {
|
|
it('should split and trim tags', () => {
|
|
const data = {
|
|
tags: 'a, b,, c, d, e, f,,',
|
|
addTags: 'a, b,, c, d, e, f,,',
|
|
removeTags: 'a, b,, c, d, e, f,,',
|
|
notChanged: 'a, b,, c, d, e, f,,',
|
|
};
|
|
|
|
const result = fixFieldType(data);
|
|
|
|
expect(result).toEqual({
|
|
tags: ['a', 'b', 'c', 'd', 'e', 'f'],
|
|
addTags: ['a', 'b', 'c', 'd', 'e', 'f'],
|
|
removeTags: ['a', 'b', 'c', 'd', 'e', 'f'],
|
|
notChanged: 'a, b,, c, d, e, f,,',
|
|
});
|
|
});
|
|
|
|
it('should convert date strings to milis', () => {
|
|
const data = {
|
|
date: '2020-01-01T00:00:00.000Z',
|
|
lastSyncDate: '2020-01-01T00:00:00.000Z',
|
|
startDate: '2020-01-01T00:00:00.000Z',
|
|
endDate: '2020-01-01T00:00:00.000Z',
|
|
dueDate: '2020-01-01T00:00:00.000Z',
|
|
includeInTimeline: '2020-01-01T00:00:00.000Z',
|
|
sightedAt: '2020-01-01T00:00:00.000Z',
|
|
notChanged: '2020-01-01T00:00:00.000Z',
|
|
};
|
|
|
|
const result = fixFieldType(data);
|
|
|
|
expect(result).toEqual({
|
|
date: 1577836800000,
|
|
lastSyncDate: 1577836800000,
|
|
startDate: 1577836800000,
|
|
endDate: 1577836800000,
|
|
dueDate: 1577836800000,
|
|
includeInTimeline: 1577836800000,
|
|
sightedAt: 1577836800000,
|
|
notChanged: '2020-01-01T00:00:00.000Z',
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('Test TheHiveProject, prepareInputItem', () => {
|
|
it('should return object with fields present in schema', () => {
|
|
const data = {
|
|
a: 1,
|
|
b: 2,
|
|
c: 3,
|
|
d: 4,
|
|
f: 5,
|
|
g: 6,
|
|
};
|
|
|
|
const schema = [
|
|
{
|
|
id: 'a',
|
|
required: true,
|
|
},
|
|
{
|
|
id: 'b',
|
|
required: true,
|
|
},
|
|
{
|
|
id: 'c',
|
|
},
|
|
{
|
|
id: 'd',
|
|
required: true,
|
|
},
|
|
{
|
|
id: 'e',
|
|
},
|
|
];
|
|
|
|
const result = prepareInputItem(data, schema, 0);
|
|
|
|
expect(result).toEqual({
|
|
a: 1,
|
|
b: 2,
|
|
c: 3,
|
|
d: 4,
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('Test TheHiveProject, constructFilter', () => {
|
|
it('should add default operator _eq', () => {
|
|
const data = {
|
|
field: 'myField',
|
|
value: 'myValue',
|
|
};
|
|
|
|
const result = constructFilter(data);
|
|
|
|
expect(result).toEqual({
|
|
_eq: {
|
|
_field: 'myField',
|
|
_value: 'myValue',
|
|
},
|
|
});
|
|
});
|
|
|
|
it('should return filter _gte', () => {
|
|
const data = {
|
|
field: 'myField',
|
|
value: 'myValue',
|
|
operator: '_gte',
|
|
};
|
|
|
|
const result = constructFilter(data);
|
|
|
|
expect(result).toEqual({
|
|
_gte: {
|
|
_field: 'myField',
|
|
_value: 'myValue',
|
|
},
|
|
});
|
|
});
|
|
|
|
it('should return filter _in', () => {
|
|
const data = {
|
|
field: 'myField',
|
|
values: 'a, b,, c, d',
|
|
operator: '_in',
|
|
};
|
|
|
|
const result = constructFilter(data);
|
|
|
|
expect(result).toEqual({
|
|
_in: {
|
|
_field: 'myField',
|
|
_values: ['a', 'b', 'c', 'd'],
|
|
},
|
|
});
|
|
});
|
|
|
|
it('should return filter _between', () => {
|
|
const data = {
|
|
field: 'myField',
|
|
from: 'a',
|
|
to: 'b',
|
|
operator: '_between',
|
|
};
|
|
|
|
const result = constructFilter(data);
|
|
|
|
expect(result).toEqual({
|
|
_between: {
|
|
_field: 'myField',
|
|
_from: 'a',
|
|
_to: 'b',
|
|
},
|
|
});
|
|
});
|
|
});
|