n8n/packages/nodes-base/nodes/TheHiveProject/test/utils.test.ts
2023-09-04 18:15:52 +03:00

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',
},
});
});
});