From 1f924e3c3d7bdb4ac080f807f1c74a3549232857 Mon Sep 17 00:00:00 2001 From: Marcus <56945030+maspio@users.noreply.github.com> Date: Wed, 8 Feb 2023 18:04:11 +0100 Subject: [PATCH] test(Set Node): Add tests for Set Node (no-changelog) (#5409) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ⚡️move test files * ✅ set node test workflow --------- Co-authored-by: Michael Kret --- .../nodes/Set/test/Set.node.test.ts | 4 + .../nodes/Set/test/Set.workflow.json | 320 ++++++++++++++++++ .../nodes-base/test/nodes/Set/SetNode.test.ts | 196 ----------- 3 files changed, 324 insertions(+), 196 deletions(-) create mode 100644 packages/nodes-base/nodes/Set/test/Set.node.test.ts create mode 100644 packages/nodes-base/nodes/Set/test/Set.workflow.json delete mode 100644 packages/nodes-base/test/nodes/Set/SetNode.test.ts diff --git a/packages/nodes-base/nodes/Set/test/Set.node.test.ts b/packages/nodes-base/nodes/Set/test/Set.node.test.ts new file mode 100644 index 0000000000..9c794fa420 --- /dev/null +++ b/packages/nodes-base/nodes/Set/test/Set.node.test.ts @@ -0,0 +1,4 @@ +import { testWorkflows, getWorkflowFilenames } from '../../../test/nodes/Helpers'; +const workflows = getWorkflowFilenames(__dirname); + +describe('Test Set Node', () => testWorkflows(workflows)); diff --git a/packages/nodes-base/nodes/Set/test/Set.workflow.json b/packages/nodes-base/nodes/Set/test/Set.workflow.json new file mode 100644 index 0000000000..6a6fac706e --- /dev/null +++ b/packages/nodes-base/nodes/Set/test/Set.workflow.json @@ -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": [] +} \ No newline at end of file diff --git a/packages/nodes-base/test/nodes/Set/SetNode.test.ts b/packages/nodes-base/test/nodes/Set/SetNode.test.ts deleted file mode 100644 index 390e5fa023..0000000000 --- a/packages/nodes-base/test/nodes/Set/SetNode.test.ts +++ /dev/null @@ -1,196 +0,0 @@ -import * as Helpers from '../Helpers'; -import { executeWorkflow } from '../ExecuteWorkflow'; -import { WorkflowTestData } from '../types'; - -describe('Execute Set Node', () => { - const tests: Array = [ - { - 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([]); - }); - } -});