mirror of
https://github.com/n8n-io/n8n.git
synced 2025-02-21 02:56:40 -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