🐛 Fix issue with nodes not getting executed #1351

This commit is contained in:
Jan Oberhauser
2021-01-19 08:47:02 +01:00
parent 4077cabb52
commit 1b8229161d
3 changed files with 856 additions and 6 deletions

View File

@@ -570,6 +570,422 @@ describe('WorkflowExecute', () => {
},
},
},
{
description: 'should run workflow also if node has multiple input connections and one is empty',
input: {
// Leave the workflowData in regular JSON to be able to easily
// copy it from/in the UI
workflowData: {
"nodes": [
{
"parameters": {},
"name": "Start",
"type": "n8n-nodes-base.start",
"typeVersion": 1,
"position": [
250,
450
]
},
{
"parameters": {
"conditions": {
"boolean": [],
"number": [
{
"value1": "={{Object.keys($json).length}}",
"operation": "notEqual"
}
]
}
},
"name": "IF",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
650,
350
]
},
{
"parameters": {},
"name": "Merge1",
"type": "n8n-nodes-base.merge",
"typeVersion": 1,
"position": [
1150,
450
]
},
{
"parameters": {
"values": {
"string": [
{
"name": "test1",
"value": "a"
}
]
},
"options": {}
},
"name": "Set1",
"type": "n8n-nodes-base.set",
"typeVersion": 1,
"position": [
450,
450
]
},
{
"parameters": {
"values": {
"string": [
{
"name": "test2",
"value": "b"
}
]
},
"options": {}
},
"name": "Set2",
"type": "n8n-nodes-base.set",
"typeVersion": 1,
"position": [
800,
250
]
}
],
"connections": {
"Start": {
"main": [
[
{
"node": "Set1",
"type": "main",
"index": 0
}
]
]
},
"IF": {
"main": [
[
{
"node": "Set2",
"type": "main",
"index": 0
}
],
[
{
"node": "Merge1",
"type": "main",
"index": 0
}
]
]
},
"Set1": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
},
{
"node": "Merge1",
"type": "main",
"index": 1
}
]
]
},
"Set2": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 0
}
]
]
}
}
},
},
output: {
nodeExecutionOrder: [
'Start',
'Set1',
'IF',
'Set2',
'Merge1',
],
nodeData: {
Merge1: [
[
{
test1: 'a',
test2: 'b',
},
{
test1: 'a',
},
],
],
},
},
},
{
description: 'should use empty data if second input does not have any data',
input: {
// Leave the workflowData in regular JSON to be able to easily
// copy it from/in the UI
workflowData: {
"nodes": [
{
"parameters": {},
"name": "Start",
"type": "n8n-nodes-base.start",
"typeVersion": 1,
"position": [
250,
300
]
},
{
"parameters": {},
"name": "Merge",
"type": "n8n-nodes-base.merge",
"typeVersion": 1,
"position": [
800,
450
]
},
{
"parameters": {},
"name": "Merge1",
"type": "n8n-nodes-base.merge",
"typeVersion": 1,
"position": [
1000,
300
]
},
{
"parameters": {
"conditions": {
"boolean": [
{
"value2": true
}
],
"string": [
{
"value1": "={{$json[\"key\"]}}",
"value2": "a"
}
]
},
"combineOperation": "any"
},
"name": "IF",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
600,
600
],
"alwaysOutputData": false
},
{
"parameters": {
"values": {
"number": [
{
"name": "number0"
}
],
"string": [
{
"name": "key",
"value": "a"
}
]
},
"options": {}
},
"name": "Set0",
"type": "n8n-nodes-base.set",
"typeVersion": 1,
"position": [
450,
300
]
},
{
"parameters": {
"values": {
"number": [
{
"name": "number1",
"value": 1
}
],
"string": [
{
"name": "key",
"value": "b"
}
]
},
"options": {}
},
"name": "Set1",
"type": "n8n-nodes-base.set",
"typeVersion": 1,
"position": [
450,
450
]
},
{
"parameters": {
"values": {
"number": [
{
"name": "number2",
"value": 2
}
],
"string": [
{
"name": "key",
"value": "c"
}
]
},
"options": {}
},
"name": "Set2",
"type": "n8n-nodes-base.set",
"typeVersion": 1,
"position": [
450,
600
]
}
],
"connections": {
"Start": {
"main": [
[
{
"node": "Set0",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 1
}
]
]
},
"IF": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Set0": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 0
}
]
]
},
"Set1": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Set2": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
}
}
},
},
output: {
nodeExecutionOrder: [
'Start',
'Set0',
'Set2',
'IF',
'Set1',
'Merge',
'Merge1',
],
nodeData: {
Merge: [
[
{
number1: 1,
key: "b",
},
],
],
Merge1: [
[
{
number0: 0,
key: "a",
},
{
number1: 1,
key: "b",
},
],
],
},
},
},
];