diff --git a/packages/nodes-base/nodes/SpreadsheetFile/test/SpreadsheetFile.test.ts b/packages/nodes-base/nodes/SpreadsheetFile/test/SpreadsheetFile.test.ts index c836a77310dbe..83dacb85c65ba 100644 --- a/packages/nodes-base/nodes/SpreadsheetFile/test/SpreadsheetFile.test.ts +++ b/packages/nodes-base/nodes/SpreadsheetFile/test/SpreadsheetFile.test.ts @@ -1,24 +1,28 @@ +import path from 'path'; +import type { IWorkflowBase } from 'n8n-workflow'; import * as Helpers from '@test/nodes/Helpers'; import type { WorkflowTestData } from '@test/nodes/types'; - import { executeWorkflow } from '@test/nodes/ExecuteWorkflow'; -import path from 'path'; describe('Execute Spreadsheet File Node', () => { beforeEach(async () => { await Helpers.initBinaryDataService(); }); - // replace workflow json 'Read Binary File' node's filePath to local file - const workflow = Helpers.readJsonFileSync('nodes/SpreadsheetFile/test/workflow.json'); - const node = workflow.nodes.find((n: any) => n.name === 'Read Binary File'); - node.parameters.filePath = path.join(__dirname, 'spreadsheet.csv'); + const loadWorkflow = (fileName: string, csvName: string) => { + const workflow = Helpers.readJsonFileSync( + `nodes/SpreadsheetFile/test/${fileName}`, + ); + const node = workflow.nodes.find((n) => n.name === 'Read Binary File'); + node!.parameters.fileSelector = path.join(__dirname, csvName); + return workflow; + }; const tests: WorkflowTestData[] = [ { description: 'execute workflow.json', input: { - workflowData: workflow, + workflowData: loadWorkflow('workflow.json', 'spreadsheet.csv'), }, output: { nodeData: { @@ -150,6 +154,18 @@ describe('Execute Spreadsheet File Node', () => { }, }, }, + { + description: 'execute workflow.bom.json', + input: { + workflowData: loadWorkflow('workflow.bom.json', 'bom.csv'), + }, + output: { + nodeData: { + 'Edit with BOM included': [[{ json: { X: null } }]], + 'Edit with BOM excluded': [[{ json: { X: '1' } }]], + }, + }, + }, ]; const nodeTypes = Helpers.setup(tests); diff --git a/packages/nodes-base/nodes/SpreadsheetFile/test/bom.csv b/packages/nodes-base/nodes/SpreadsheetFile/test/bom.csv new file mode 100644 index 0000000000000..9c60e4f480b2f --- /dev/null +++ b/packages/nodes-base/nodes/SpreadsheetFile/test/bom.csv @@ -0,0 +1,2 @@ +a,b,c +1,2,3 diff --git a/packages/nodes-base/nodes/SpreadsheetFile/test/workflow.bom.json b/packages/nodes-base/nodes/SpreadsheetFile/test/workflow.bom.json new file mode 100644 index 0000000000000..2f6d22457dacb --- /dev/null +++ b/packages/nodes-base/nodes/SpreadsheetFile/test/workflow.bom.json @@ -0,0 +1,155 @@ +{ + "nodes": [ + { + "parameters": {}, + "id": "40bf604f-19f9-43e7-8bbb-74c36925f154", + "name": "When clicking \"Execute Workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [ + -320, + 1040 + ] + }, + { + "parameters": { + "fileSelector": "bom.csv" + }, + "id": "623ea890-8882-4273-973e-834652d823b5", + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFiles", + "typeVersion": 1, + "position": [ + -100, + 1040 + ] + }, + { + "parameters": { + "fileFormat": "csv", + "options": { + "enableBOM": true + } + }, + "id": "c8cca5fb-e119-4ca1-a597-4f051a7f64ea", + "name": "Exclude BOM", + "type": "n8n-nodes-base.spreadsheetFile", + "typeVersion": 2, + "position": [ + 120, + 960 + ] + }, + { + "parameters": { + "fileFormat": "csv", + "options": { + "enableBOM": false + } + }, + "id": "56ec11dc-966b-4d06-b8c0-61475b30333d", + "name": "Include BOM", + "type": "n8n-nodes-base.spreadsheetFile", + "typeVersion": 2, + "position": [ + 120, + 1180 + ] + }, + { + "parameters": { + "fields": { + "values": [ + { + "name": "X", + "stringValue": "={{ $json.a }}" + } + ] + }, + "include": "none", + "options": {} + }, + "id": "6f6bccf2-d674-4774-9df9-6f6fd893bace", + "name": "Edit with BOM excluded", + "type": "n8n-nodes-base.set", + "typeVersion": 3.2, + "position": [ + 320, + 960 + ] + }, + { + "parameters": { + "fields": { + "values": [ + { + "name": "X", + "stringValue": "={{ $json.a }}" + } + ] + }, + "include": "none", + "options": {} + }, + "id": "27ca5cde-19cb-4bf2-9ab4-7f7e77ad01bd", + "name": "Edit with BOM included", + "type": "n8n-nodes-base.set", + "typeVersion": 3.2, + "position": [ + 320, + 1180 + ] + } + ], + "connections": { + "When clicking \"Execute Workflow\"": { + "main": [ + [ + { + "node": "Read Binary File", + "type": "main", + "index": 0 + } + ] + ] + }, + "Exclude BOM": { + "main": [ + [ + { + "node": "Edit with BOM excluded", + "type": "main", + "index": 0 + } + ] + ] + }, + "Include BOM": { + "main": [ + [ + { + "node": "Edit with BOM included", + "type": "main", + "index": 0 + } + ] + ] + }, + "Read Binary File": { + "main": [ + [ + { + "node": "Exclude BOM", + "type": "main", + "index": 0 + }, + { + "node": "Include BOM", + "type": "main", + "index": 0 + } + ] + ] + } + } +} diff --git a/packages/nodes-base/nodes/SpreadsheetFile/test/workflow.json b/packages/nodes-base/nodes/SpreadsheetFile/test/workflow.json index 12c914dc1c56f..11987262615b9 100644 --- a/packages/nodes-base/nodes/SpreadsheetFile/test/workflow.json +++ b/packages/nodes-base/nodes/SpreadsheetFile/test/workflow.json @@ -26,12 +26,12 @@ }, { "parameters": { - "filePath": "spreadsheet.csv" + "fileSelector": "spreadsheet.csv" }, "id": "d7620053-eb3d-43dd-b2cd-d60d9a08a9cc", - "name": "Read Binary File", - "type": "n8n-nodes-base.readBinaryFile", - "typeVersion": 1, + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFiles", + "typeVersion": 1, "position": [ 840, 640