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:
Marcus 2023-02-08 18:04:11 +01:00 committed by GitHub
parent 269691aa1b
commit 1f924e3c3d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 324 additions and 196 deletions

View file

@ -0,0 +1,4 @@
import { testWorkflows, getWorkflowFilenames } from '../../../test/nodes/Helpers';
const workflows = getWorkflowFilenames(__dirname);
describe('Test Set Node', () => testWorkflows(workflows));

View 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": []
}

View file

@ -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([]);
});
}
});