diff --git a/packages/nodes-base/nodes/ReadPdf/test/ReadPDF.test.ts b/packages/nodes-base/nodes/ReadPdf/test/ReadPDF.test.ts new file mode 100644 index 0000000000..b814a3eee5 --- /dev/null +++ b/packages/nodes-base/nodes/ReadPdf/test/ReadPDF.test.ts @@ -0,0 +1,60 @@ +/* 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 PDF Node', () => { + beforeEach(async () => { + await Helpers.initBinaryDataManager(); + }); + + const workflow = Helpers.readJsonFileSync('nodes/ReadPdf/test/ReadPDF.workflow.json'); + const node = workflow.nodes.find((n: any) => n.name === 'Read Binary File'); + node.parameters.filePath = path.join(__dirname, 'sample.pdf'); + + const testData: WorkflowTestData = { + description: 'nodes/ReadPdf/test/ReadPDF.workflow.json', + input: { + workflowData: workflow, + }, + output: { + nodeData: { + 'Read PDF': [ + [ + { + json: { + numpages: 1, + numrender: 1, + info: { + PDFFormatVersion: '1.4', + IsAcroFormPresent: false, + IsXFAPresent: false, + Title: 'sample', + Producer: 'iLovePDF', + ModDate: 'D:20230210122750Z', + }, + metadata: null, + text: '\n\nN8N\nSample PDF\nLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor\ninvidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et\njusto duo dolores et ea rebum.', + version: '1.10.100', + }, + }, + ], + ], + }, + }, + }; + + const nodeTypes = Helpers.setup(testData); + + test(testData.description, async () => { + const { result } = await executeWorkflow(testData, nodeTypes); + const resultNodeData = Helpers.getResultNodeData(result, testData); + + // delete binary data because we test against json only + delete resultNodeData[0].resultData[0]![0].binary; + expect(resultNodeData[0].resultData).toEqual(testData.output.nodeData['Read PDF']); + + expect(result.finished).toEqual(true); + }); +}); diff --git a/packages/nodes-base/nodes/ReadPdf/test/ReadPDF.workflow.json b/packages/nodes-base/nodes/ReadPdf/test/ReadPDF.workflow.json new file mode 100644 index 0000000000..9d6aaf0c1f --- /dev/null +++ b/packages/nodes-base/nodes/ReadPdf/test/ReadPDF.workflow.json @@ -0,0 +1,64 @@ +{ + "name": "Read PDF node unit test", + "nodes": [ + { + "parameters": {}, + "id": "0c9db33c-dd15-4088-9d12-b9f3b8f1fa96", + "name": "When clicking \"Execute Workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [960, 540] + }, + { + "parameters": {}, + "id": "86abdc3b-206d-4b67-a37f-6b67b6bd3bbc", + "name": "Read PDF", + "type": "n8n-nodes-base.readPDF", + "typeVersion": 1, + "position": [1400, 540] + }, + { + "parameters": { + "filePath": "C:\\Test\\sample.pdf" + }, + "id": "2f6d241e-44a4-4213-b49a-166201946a89", + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFile", + "typeVersion": 1, + "position": [1180, 540] + } + ], + "pinData": {}, + "connections": { + "When clicking \"Execute Workflow\"": { + "main": [ + [ + { + "node": "Read Binary File", + "type": "main", + "index": 0 + } + ] + ] + }, + "Read Binary File": { + "main": [ + [ + { + "node": "Read PDF", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "active": false, + "settings": {}, + "versionId": "9802b48d-727a-40ef-ad87-d544a9a648a7", + "id": "188", + "meta": { + "instanceId": "104a4d08d8897b8bdeb38aaca515021075e0bd8544c983c2bb8c86e6a8e6081c" + }, + "tags": [] +} diff --git a/packages/nodes-base/nodes/ReadPdf/test/sample.pdf b/packages/nodes-base/nodes/ReadPdf/test/sample.pdf new file mode 100644 index 0000000000..5e539c0613 Binary files /dev/null and b/packages/nodes-base/nodes/ReadPdf/test/sample.pdf differ