mirror of
https://github.com/n8n-io/n8n.git
synced 2025-03-05 20:50:17 -08:00
test(Set Node): Add tests for Set Node (no-changelog) (#5409)
* ⚡️move test files * ✅ set node test workflow --------- Co-authored-by: Michael Kret <michael.k@radency.com>
This commit is contained in:
parent
269691aa1b
commit
1f924e3c3d
4
packages/nodes-base/nodes/Set/test/Set.node.test.ts
Normal file
4
packages/nodes-base/nodes/Set/test/Set.node.test.ts
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
import { testWorkflows, getWorkflowFilenames } from '../../../test/nodes/Helpers';
|
||||||
|
const workflows = getWorkflowFilenames(__dirname);
|
||||||
|
|
||||||
|
describe('Test Set Node', () => testWorkflows(workflows));
|
320
packages/nodes-base/nodes/Set/test/Set.workflow.json
Normal file
320
packages/nodes-base/nodes/Set/test/Set.workflow.json
Normal file
|
@ -0,0 +1,320 @@
|
||||||
|
{
|
||||||
|
"name": "Set Node Test",
|
||||||
|
"nodes": [
|
||||||
|
{
|
||||||
|
"parameters": {},
|
||||||
|
"id": "90ddfdf0-973b-4b4f-b082-0e013b70629a",
|
||||||
|
"name": "When clicking \"Execute Workflow\"",
|
||||||
|
"type": "n8n-nodes-base.manualTrigger",
|
||||||
|
"typeVersion": 1,
|
||||||
|
"position": [
|
||||||
|
900,
|
||||||
|
2560
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"parameters": {
|
||||||
|
"values": {
|
||||||
|
"string": [
|
||||||
|
{
|
||||||
|
"name": "string",
|
||||||
|
"value": "foo"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"boolean": [
|
||||||
|
{
|
||||||
|
"name": "boolean",
|
||||||
|
"value": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"number": [
|
||||||
|
{
|
||||||
|
"name": "number",
|
||||||
|
"value": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"options": {}
|
||||||
|
},
|
||||||
|
"id": "b46b7da8-3c0f-4111-bb3f-973fd2827dc4",
|
||||||
|
"name": "Set",
|
||||||
|
"type": "n8n-nodes-base.set",
|
||||||
|
"typeVersion": 1,
|
||||||
|
"position": [
|
||||||
|
1380,
|
||||||
|
2200
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"parameters": {
|
||||||
|
"jsCode": "return [\n { nested: { foo: \"bar\" }, list: [\"foo\" ] }\n]"
|
||||||
|
},
|
||||||
|
"id": "a7e51ac7-734a-4652-bb02-d9f0a4d8410b",
|
||||||
|
"name": "Code",
|
||||||
|
"type": "n8n-nodes-base.code",
|
||||||
|
"typeVersion": 1,
|
||||||
|
"position": [
|
||||||
|
1120,
|
||||||
|
2560
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"parameters": {
|
||||||
|
"keepOnlySet": true,
|
||||||
|
"values": {
|
||||||
|
"string": [
|
||||||
|
{
|
||||||
|
"name": "string",
|
||||||
|
"value": "foo"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"boolean": [
|
||||||
|
{
|
||||||
|
"name": "boolean",
|
||||||
|
"value": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"number": [
|
||||||
|
{
|
||||||
|
"name": "number",
|
||||||
|
"value": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"options": {}
|
||||||
|
},
|
||||||
|
"id": "3744306e-7a23-486f-881c-accf3a81e08a",
|
||||||
|
"name": "Set Keep Only Set",
|
||||||
|
"type": "n8n-nodes-base.set",
|
||||||
|
"typeVersion": 1,
|
||||||
|
"position": [
|
||||||
|
1380,
|
||||||
|
2380
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"parameters": {
|
||||||
|
"values": {
|
||||||
|
"string": [
|
||||||
|
{
|
||||||
|
"name": "list[1]",
|
||||||
|
"value": "bar"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"boolean": [
|
||||||
|
{
|
||||||
|
"name": "list[2]",
|
||||||
|
"value": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"number": [
|
||||||
|
{
|
||||||
|
"name": "list[3]",
|
||||||
|
"value": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"options": {}
|
||||||
|
},
|
||||||
|
"id": "60ab031b-f5e2-4aa7-9427-6379f3a75550",
|
||||||
|
"name": "Set to Array",
|
||||||
|
"type": "n8n-nodes-base.set",
|
||||||
|
"typeVersion": 1,
|
||||||
|
"position": [
|
||||||
|
1380,
|
||||||
|
2940
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"parameters": {
|
||||||
|
"values": {
|
||||||
|
"string": [
|
||||||
|
{
|
||||||
|
"name": "nested.string",
|
||||||
|
"value": "foo"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"boolean": [
|
||||||
|
{
|
||||||
|
"name": "nested.boolean",
|
||||||
|
"value": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"number": [
|
||||||
|
{
|
||||||
|
"name": "nested.number",
|
||||||
|
"value": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"options": {}
|
||||||
|
},
|
||||||
|
"id": "24e0d35a-f2d4-4121-8cf1-7eb9ab2ed79e",
|
||||||
|
"name": "Set to Object",
|
||||||
|
"type": "n8n-nodes-base.set",
|
||||||
|
"typeVersion": 1,
|
||||||
|
"position": [
|
||||||
|
1380,
|
||||||
|
2560
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"parameters": {
|
||||||
|
"values": {
|
||||||
|
"string": [
|
||||||
|
{
|
||||||
|
"name": "nested.string",
|
||||||
|
"value": "foo"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"boolean": [
|
||||||
|
{
|
||||||
|
"name": "nested.boolean",
|
||||||
|
"value": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"number": [
|
||||||
|
{
|
||||||
|
"name": "nested.number",
|
||||||
|
"value": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"dotNotation": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"id": "e9c34a76-28ac-455a-8f77-1d6118b01291",
|
||||||
|
"name": "Set Disable Dot Notation",
|
||||||
|
"type": "n8n-nodes-base.set",
|
||||||
|
"typeVersion": 1,
|
||||||
|
"position": [
|
||||||
|
1380,
|
||||||
|
2740
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"pinData": {
|
||||||
|
"Set": [
|
||||||
|
{
|
||||||
|
"json": {
|
||||||
|
"nested": {
|
||||||
|
"foo": "bar"
|
||||||
|
},
|
||||||
|
"list": [
|
||||||
|
"foo"
|
||||||
|
],
|
||||||
|
"boolean": true,
|
||||||
|
"number": 1,
|
||||||
|
"string": "foo"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Set Keep Only Set": [
|
||||||
|
{
|
||||||
|
"json": {
|
||||||
|
"boolean": true,
|
||||||
|
"number": 1,
|
||||||
|
"string": "foo"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Set to Object": [
|
||||||
|
{
|
||||||
|
"json": {
|
||||||
|
"nested": {
|
||||||
|
"foo": "bar",
|
||||||
|
"boolean": true,
|
||||||
|
"number": 1,
|
||||||
|
"string": "foo"
|
||||||
|
},
|
||||||
|
"list": [
|
||||||
|
"foo"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Set Disable Dot Notation": [
|
||||||
|
{
|
||||||
|
"json": {
|
||||||
|
"nested": {
|
||||||
|
"foo": "bar"
|
||||||
|
},
|
||||||
|
"list": [
|
||||||
|
"foo"
|
||||||
|
],
|
||||||
|
"nested.boolean": true,
|
||||||
|
"nested.number": 1,
|
||||||
|
"nested.string": "foo"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Set to Array": [
|
||||||
|
{
|
||||||
|
"json": {
|
||||||
|
"nested": {
|
||||||
|
"foo": "bar"
|
||||||
|
},
|
||||||
|
"list": [
|
||||||
|
"foo",
|
||||||
|
"bar",
|
||||||
|
true,
|
||||||
|
1
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"connections": {
|
||||||
|
"When clicking \"Execute Workflow\"": {
|
||||||
|
"main": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"node": "Code",
|
||||||
|
"type": "main",
|
||||||
|
"index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Code": {
|
||||||
|
"main": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"node": "Set",
|
||||||
|
"type": "main",
|
||||||
|
"index": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "Set Keep Only Set",
|
||||||
|
"type": "main",
|
||||||
|
"index": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "Set to Object",
|
||||||
|
"type": "main",
|
||||||
|
"index": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "Set to Array",
|
||||||
|
"type": "main",
|
||||||
|
"index": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "Set Disable Dot Notation",
|
||||||
|
"type": "main",
|
||||||
|
"index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"active": false,
|
||||||
|
"settings": {},
|
||||||
|
"versionId": "de6493c7-31ec-40b4-ad2e-44bca10515c0",
|
||||||
|
"id": "183",
|
||||||
|
"meta": {
|
||||||
|
"instanceId": "104a4d08d8897b8bdeb38aaca515021075e0bd8544c983c2bb8c86e6a8e6081c"
|
||||||
|
},
|
||||||
|
"tags": []
|
||||||
|
}
|
|
@ -1,196 +0,0 @@
|
||||||
import * as Helpers from '../Helpers';
|
|
||||||
import { executeWorkflow } from '../ExecuteWorkflow';
|
|
||||||
import { WorkflowTestData } from '../types';
|
|
||||||
|
|
||||||
describe('Execute Set Node', () => {
|
|
||||||
const tests: Array<WorkflowTestData> = [
|
|
||||||
{
|
|
||||||
description: 'should set value',
|
|
||||||
input: {
|
|
||||||
workflowData: {
|
|
||||||
nodes: [
|
|
||||||
{
|
|
||||||
id: 'uuid-1',
|
|
||||||
parameters: {},
|
|
||||||
name: 'Start',
|
|
||||||
type: 'n8n-nodes-base.start',
|
|
||||||
typeVersion: 1,
|
|
||||||
position: [100, 300],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'uuid-2',
|
|
||||||
parameters: {
|
|
||||||
values: {
|
|
||||||
number: [
|
|
||||||
{
|
|
||||||
name: 'value1',
|
|
||||||
value: 1,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
name: 'Set',
|
|
||||||
type: 'n8n-nodes-base.set',
|
|
||||||
typeVersion: 1,
|
|
||||||
position: [280, 300],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
connections: {
|
|
||||||
Start: {
|
|
||||||
main: [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
node: 'Set',
|
|
||||||
type: 'main',
|
|
||||||
index: 0,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
output: {
|
|
||||||
nodeExecutionOrder: ['Start', 'Set'],
|
|
||||||
nodeData: {
|
|
||||||
Set: [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
value1: 1,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
description: 'should set multiple values',
|
|
||||||
input: {
|
|
||||||
workflowData: {
|
|
||||||
nodes: [
|
|
||||||
{
|
|
||||||
id: 'uuid-1',
|
|
||||||
parameters: {},
|
|
||||||
name: 'Start',
|
|
||||||
type: 'n8n-nodes-base.start',
|
|
||||||
typeVersion: 1,
|
|
||||||
position: [100, 300],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'uuid-2',
|
|
||||||
parameters: {
|
|
||||||
values: {
|
|
||||||
number: [
|
|
||||||
{
|
|
||||||
name: 'value1',
|
|
||||||
value: 1,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
boolean: [
|
|
||||||
{
|
|
||||||
name: 'value2',
|
|
||||||
value: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
name: 'Set',
|
|
||||||
type: 'n8n-nodes-base.set',
|
|
||||||
typeVersion: 1,
|
|
||||||
position: [280, 300],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'uuid-3',
|
|
||||||
parameters: {
|
|
||||||
values: {
|
|
||||||
number: [
|
|
||||||
{
|
|
||||||
name: 'value1',
|
|
||||||
value: 2,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
boolean: [
|
|
||||||
{
|
|
||||||
name: 'value2',
|
|
||||||
value: false,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
name: 'Set1',
|
|
||||||
type: 'n8n-nodes-base.set',
|
|
||||||
typeVersion: 1,
|
|
||||||
position: [280, 300],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
connections: {
|
|
||||||
Start: {
|
|
||||||
main: [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
node: 'Set',
|
|
||||||
type: 'main',
|
|
||||||
index: 0,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
],
|
|
||||||
},
|
|
||||||
Set: {
|
|
||||||
main: [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
node: 'Set1',
|
|
||||||
type: 'main',
|
|
||||||
index: 0,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
output: {
|
|
||||||
nodeExecutionOrder: ['Start', 'Set'],
|
|
||||||
nodeData: {
|
|
||||||
Set: [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
value1: 1,
|
|
||||||
value2: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
],
|
|
||||||
Set1: [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
value1: 2,
|
|
||||||
value2: false,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
const nodeTypes = Helpers.setup(tests);
|
|
||||||
|
|
||||||
for (const testData of tests) {
|
|
||||||
test(testData.description, async () => {
|
|
||||||
// execute workflow
|
|
||||||
const { result } = await executeWorkflow(testData, nodeTypes);
|
|
||||||
|
|
||||||
// check if result node data matches expected test data
|
|
||||||
const resultNodeData = Helpers.getResultNodeData(result, testData);
|
|
||||||
resultNodeData.forEach(({ nodeName, resultData }) =>
|
|
||||||
expect(resultData).toEqual(testData.output.nodeData[nodeName]),
|
|
||||||
);
|
|
||||||
|
|
||||||
// Check if other data has correct value
|
|
||||||
expect(result.finished).toEqual(true);
|
|
||||||
expect(result.data.executionData!.contextData).toEqual({});
|
|
||||||
expect(result.data.executionData!.nodeExecutionStack).toEqual([]);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
Loading…
Reference in a new issue