From e01192e7afee3d44810705a2a28af37af7fab4a1 Mon Sep 17 00:00:00 2001 From: Marcus <56945030+maspio@users.noreply.github.com> Date: Thu, 9 Feb 2023 15:31:10 +0100 Subject: [PATCH] test(Read Binary File Node): Unit tests (no-changelog) (#5436) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ✅ add Read Binary Data node unit test Co-authored-by: Michael Kret --- .../test/ReadBinaryFile.test.ts | 63 ++++++++++++++++++ .../test/ReadBinaryFile.workflow.json | 51 ++++++++++++++ .../nodes/ReadBinaryFile/test/image.jpg | Bin 0 -> 1045 bytes 3 files changed, 114 insertions(+) create mode 100644 packages/nodes-base/nodes/ReadBinaryFile/test/ReadBinaryFile.test.ts create mode 100644 packages/nodes-base/nodes/ReadBinaryFile/test/ReadBinaryFile.workflow.json create mode 100644 packages/nodes-base/nodes/ReadBinaryFile/test/image.jpg diff --git a/packages/nodes-base/nodes/ReadBinaryFile/test/ReadBinaryFile.test.ts b/packages/nodes-base/nodes/ReadBinaryFile/test/ReadBinaryFile.test.ts new file mode 100644 index 0000000000..fbba908978 --- /dev/null +++ b/packages/nodes-base/nodes/ReadBinaryFile/test/ReadBinaryFile.test.ts @@ -0,0 +1,63 @@ +/* eslint-disable @typescript-eslint/no-loop-func */ +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('Test Read Binary File Node', () => { + beforeEach(async () => { + await Helpers.initBinaryDataManager(); + }); + + const workflow = Helpers.readJsonFileSync( + 'nodes/ReadBinaryFile/test/ReadBinaryFile.workflow.json', + ); + const node = workflow.nodes.find((n: any) => n.name === 'Read Binary File'); + node.parameters.filePath = path.join(__dirname, 'image.jpg'); + + const tests: WorkflowTestData[] = [ + { + description: 'nodes/ReadBinaryFile/test/ReadBinaryFile.workflow.json', + input: { + workflowData: workflow, + }, + output: { + nodeData: { + 'Read Binary File': [ + [ + { + json: {}, + binary: { + data: { + mimeType: 'image/jpeg', + fileType: 'image', + fileExtension: 'jpg', + data: '/9j/4AAQSkZJRgABAQEASABIAAD/4QBmRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAAQAAAATgAAAAAAARlJAAAD6AABGUkAAAPocGFpbnQubmV0IDUuMC4xAP/bAEMAIBYYHBgUIBwaHCQiICYwUDQwLCwwYkZKOlB0Znp4cmZwboCQuJyAiK6KbnCg2qKuvsTO0M58muLy4MjwuMrOxv/bAEMBIiQkMCowXjQ0XsaEcITGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxv/AABEIAB8AOwMBEgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AOgqgrXF2zNHJ5aKcD3oNPZ23di/VKG82bkuTh1OMgdaAdOSLtZ6G5ut0iSeWoOAKAdO27NCqUN8oQrcHDqccDrQDpyRNPdRwEKcsx7CobIebPLORwThc0inGMF724jagNpxG4OOM1dIDAgjIPBpkqUOxnR2pmh85pW3nJB9KkNi4yqTssZ6rSNXNX0ehHFfusYDLuI7+tXY4I40ChQcdzQRKcL7Fb7PcQO32cqUY5we1XqZPtH11KsFoFDGYK7sckkZxVqgTnJlEQXMBZYGUoTkZ7VeoH7RvcqwWaIh80K7k5JIq1QJzkyhbMtvdSxMdqnlc1amgjmx5i5I70inNSVpFdrmaWRltkBVerHvUW57B2AUNGxyOaC+VW9xXLVrcGbcjrtkXqKZZxvveeTAL9APSgiooq1ty3RTMj//2Q==', + directory: __dirname, + fileName: 'image.jpg', + fileSize: '1.04 kB', + }, + }, + }, + ], + ], + }, + }, + }, + ]; + + const nodeTypes = Helpers.setup(tests); + + for (const testData of tests) { + test(testData.description, async () => { + const { result } = await executeWorkflow(testData, nodeTypes); + + const resultNodeData = Helpers.getResultNodeData(result, testData); + resultNodeData.forEach(({ nodeName, resultData }) => + expect(resultData).toEqual(testData.output.nodeData[nodeName]), + ); + + expect(result.finished).toEqual(true); + }); + } +}); diff --git a/packages/nodes-base/nodes/ReadBinaryFile/test/ReadBinaryFile.workflow.json b/packages/nodes-base/nodes/ReadBinaryFile/test/ReadBinaryFile.workflow.json new file mode 100644 index 0000000000..6144d62b67 --- /dev/null +++ b/packages/nodes-base/nodes/ReadBinaryFile/test/ReadBinaryFile.workflow.json @@ -0,0 +1,51 @@ +{ + "name": "Read Binary File Unit Test", + "nodes": [ + { + "parameters": {}, + "id": "209e36b6-de70-4cc4-ac95-ca17fd3f83ff", + "name": "When clicking \"Execute Workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [ + 1020, + 640 + ] + }, + { + "parameters": { + "filePath": "C:\\Test\\image.jpg" + }, + "id": "1901bee9-d429-4485-9fdb-e5cd3aa64eab", + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFile", + "typeVersion": 1, + "position": [ + 1240, + 640 + ] + } + ], + "pinData": {}, + "connections": { + "When clicking \"Execute Workflow\"": { + "main": [ + [ + { + "node": "Read Binary File", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "active": false, + "settings": {}, + "versionId": "c0b978b3-92e6-4c62-9c85-9539922b0443", + "id": "184", + "meta": { + "instanceId": "104a4d08d8897b8bdeb38aaca515021075e0bd8544c983c2bb8c86e6a8e6081c" + }, + "tags": [] +} \ No newline at end of file diff --git a/packages/nodes-base/nodes/ReadBinaryFile/test/image.jpg b/packages/nodes-base/nodes/ReadBinaryFile/test/image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..24b60c421ecc14914b9e63577915a5837fb69504 GIT binary patch literal 1045 zcmex=u87UbRB?UEu022cp9fKq{FROr(w5p1tw1T{b2|MOAbgb*jD_C%A(Yk#{ z&RsZHGwac(2PZ!4ICbtA$Ph*)6%_+5gE$kDxMM8^EyqX({|_(-axlmPKLX@4FtP$e1r#t)z{teR!pg?Z!O6u9RIpWmfr*isnTds&m6e4BsJa#?&%h$c zDx_%W$R-?^$gWfnAuRebI z{N?Mn?>~P20{M%Pff?d0xX;l1B?$Bv6AKG73p>bPj7;S~%q+;ls%Xe2)1dVaEgM(k0HmnZ36tCF6*_L9oHsOAO@ zcE8)3omM*6EabW)V>PG1>H^=Ki6-9z4>--)EO%((Cb^tX=iFHy7JDq0I9PqV<5t71 zLh0r{<8Tii4rPT8nUj|C9V;nYmQnL;>h?JkYPFn`9&1hBbgXKva=2-&TuWj6u4Bx4 zkF0-Pz44&WgiA!G+(c0G&~MRw=L?y)-#j%Xd5+xGs+o2dzg}6*x**_K!n!v_o{~qS z7WfsV3bLMIoyHc_@+5t0+=9A`drxhMT%`EfY4_ww9;-t*&-pCOIh|js<5RZsX>r)H zCd-Y_^gP~sEH_on6utE c%yjAZl}`@nU*PxRSg~kr?&*?XBm4h10lOThTL1t6 literal 0 HcmV?d00001