forked from Jordan-Hall/n8n
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test(Move Binary Data Node): Unit tests (no-changelog) (n8n-io#5442)
* ✅ add Move Binary Data test * ✅ improve Move Binary Data Test - --------- Co-authored-by: Michael Kret <[email protected]>
- Loading branch information
1 parent
a2e2ec5
commit 9698c7e
Showing
3 changed files
with
306 additions
and
0 deletions.
There are no files selected for viewing
130 changes: 130 additions & 0 deletions
130
packages/nodes-base/nodes/MoveBinaryData/test/MoveBinaryData.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,130 @@ | ||
/* 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 Move Binary Data Node', () => { | ||
beforeEach(async () => { | ||
await Helpers.initBinaryDataManager(); | ||
}); | ||
|
||
const workflow = Helpers.readJsonFileSync( | ||
'nodes/MoveBinaryData/test/MoveBinaryData.workflow.json', | ||
); | ||
const node = workflow.nodes.find((n: any) => n.name === 'Read Binary File'); | ||
node.parameters.filePath = path.join(__dirname, 'data', 'sample.json'); | ||
|
||
const tests: WorkflowTestData[] = [ | ||
{ | ||
description: 'nodes/MoveBinaryData/test/MoveBinaryData.workflow.json', | ||
input: { | ||
workflowData: workflow, | ||
}, | ||
output: { | ||
nodeData: { | ||
'Binary to JSON': [ | ||
[ | ||
{ | ||
json: { | ||
id: 1, | ||
title: 'My Title', | ||
description: 'Lorem Ipsum ...', | ||
}, | ||
}, | ||
], | ||
], | ||
'Binary to JSON - No Set All Data': [ | ||
[ | ||
{ | ||
json: { | ||
data: '{\n\t"id": 1,\n\t"title": "My Title",\n\t"description": "Lorem Ipsum ..."\n}', | ||
}, | ||
}, | ||
], | ||
], | ||
'Binary to JSON - No Set All Data + Json Parse': [ | ||
[ | ||
{ | ||
json: { | ||
data: { | ||
id: 1, | ||
title: 'My Title', | ||
description: 'Lorem Ipsum ...', | ||
}, | ||
}, | ||
}, | ||
], | ||
], | ||
'Binary to JSON - No Set All Data + Encoding base64': [ | ||
[ | ||
{ | ||
json: { | ||
data: 'ewoJImlkIjogMSwKCSJ0aXRsZSI6ICJNeSBUaXRsZSIsCgkiZGVzY3JpcHRpb24iOiAiTG9yZW0gSXBzdW0gLi4uIgp9', | ||
}, | ||
}, | ||
], | ||
], | ||
'Binary to JSON - Keep as Base64': [ | ||
[ | ||
{ | ||
json: { | ||
data: 'ewoJImlkIjogMSwKCSJ0aXRsZSI6ICJNeSBUaXRsZSIsCgkiZGVzY3JpcHRpb24iOiAiTG9yZW0gSXBzdW0gLi4uIgp9', | ||
}, | ||
}, | ||
], | ||
], | ||
'JSON to Binary': [ | ||
[ | ||
{ | ||
json: {}, | ||
binary: { | ||
data: { | ||
data: 'eyJpZCI6MSwidGl0bGUiOiJNeSBUaXRsZSIsImRlc2NyaXB0aW9uIjoiTG9yZW0gSXBzdW0gLi4uIn0=', | ||
mimeType: 'application/json', | ||
fileType: 'json', | ||
fileSize: '59 B', | ||
}, | ||
}, | ||
}, | ||
], | ||
], | ||
'JSON to Binary - No Convert All Data': [ | ||
[ | ||
{ | ||
json: { | ||
id: 1, | ||
description: 'Lorem Ipsum ...', | ||
}, | ||
binary: { | ||
data: { | ||
data: 'Ik15IFRpdGxlIg==', | ||
mimeType: 'application/json', | ||
fileType: 'json', | ||
fileSize: '10 B', | ||
fileName: 'example.json', | ||
}, | ||
}, | ||
}, | ||
], | ||
], | ||
}, | ||
}, | ||
}, | ||
]; | ||
|
||
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); | ||
}); | ||
} | ||
}); |
171 changes: 171 additions & 0 deletions
171
packages/nodes-base/nodes/MoveBinaryData/test/MoveBinaryData.workflow.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,171 @@ | ||
{ | ||
"meta": { | ||
"instanceId": "104a4d08d8897b8bdeb38aaca515021075e0bd8544c983c2bb8c86e6a8e6081c" | ||
}, | ||
"nodes": [ | ||
{ | ||
"parameters": {}, | ||
"id": "f1789069-98a9-44ad-8e72-6b5c4a000f51", | ||
"name": "When clicking \"Execute Workflow\"", | ||
"type": "n8n-nodes-base.manualTrigger", | ||
"typeVersion": 1, | ||
"position": [0, 1120] | ||
}, | ||
{ | ||
"parameters": { | ||
"filePath": "C:\\Test\\sample.json" | ||
}, | ||
"id": "ef780d51-664d-4d8a-b0c1-43fe63921e82", | ||
"name": "Read Binary File", | ||
"type": "n8n-nodes-base.readBinaryFile", | ||
"typeVersion": 1, | ||
"position": [220, 1120] | ||
}, | ||
{ | ||
"parameters": { | ||
"setAllData": false, | ||
"options": {} | ||
}, | ||
"id": "1dfba9d4-dc39-4693-9411-405e423b8da8", | ||
"name": "Binary to JSON - No Set All Data", | ||
"type": "n8n-nodes-base.moveBinaryData", | ||
"typeVersion": 1, | ||
"position": [440, 1120] | ||
}, | ||
{ | ||
"parameters": { | ||
"options": {} | ||
}, | ||
"id": "b745f52d-3a5f-4f42-b3d0-e303d3aded4c", | ||
"name": "Binary to JSON", | ||
"type": "n8n-nodes-base.moveBinaryData", | ||
"typeVersion": 1, | ||
"position": [440, 920] | ||
}, | ||
{ | ||
"parameters": { | ||
"mode": "jsonToBinary", | ||
"options": {} | ||
}, | ||
"id": "fb1bbc87-8b6c-4889-a376-760dbb8a090e", | ||
"name": "JSON to Binary", | ||
"type": "n8n-nodes-base.moveBinaryData", | ||
"typeVersion": 1, | ||
"position": [740, 780] | ||
}, | ||
{ | ||
"parameters": { | ||
"mode": "jsonToBinary", | ||
"convertAllData": false, | ||
"sourceKey": "title", | ||
"options": { | ||
"fileName": "example.json" | ||
} | ||
}, | ||
"id": "34ff0af3-fd2d-4b26-9e92-176f1aaff11a", | ||
"name": "JSON to Binary - No Convert All Data", | ||
"type": "n8n-nodes-base.moveBinaryData", | ||
"typeVersion": 1, | ||
"position": [740, 1020] | ||
}, | ||
{ | ||
"parameters": { | ||
"setAllData": false, | ||
"options": { | ||
"jsonParse": true | ||
} | ||
}, | ||
"id": "b2c37763-801b-497f-b7d8-4c30b7e108e7", | ||
"name": "Binary to JSON - No Set All Data + Json Parse", | ||
"type": "n8n-nodes-base.moveBinaryData", | ||
"typeVersion": 1, | ||
"position": [440, 1340] | ||
}, | ||
{ | ||
"parameters": { | ||
"setAllData": false, | ||
"options": { | ||
"encoding": "base64" | ||
} | ||
}, | ||
"id": "b2125e40-9cd6-4730-b243-30aa565a42ee", | ||
"name": "Binary to JSON - No Set All Data + Encoding base64", | ||
"type": "n8n-nodes-base.moveBinaryData", | ||
"typeVersion": 1, | ||
"position": [440, 1560] | ||
}, | ||
{ | ||
"parameters": { | ||
"setAllData": false, | ||
"options": { | ||
"keepAsBase64": true | ||
} | ||
}, | ||
"id": "30b27ae6-29e1-43c6-be10-1f17cb3ade8a", | ||
"name": "Binary to JSON - Keep as Base64", | ||
"type": "n8n-nodes-base.moveBinaryData", | ||
"typeVersion": 1, | ||
"position": [440, 1780] | ||
} | ||
], | ||
"connections": { | ||
"When clicking \"Execute Workflow\"": { | ||
"main": [ | ||
[ | ||
{ | ||
"node": "Read Binary File", | ||
"type": "main", | ||
"index": 0 | ||
} | ||
] | ||
] | ||
}, | ||
"Read Binary File": { | ||
"main": [ | ||
[ | ||
{ | ||
"node": "Binary to JSON", | ||
"type": "main", | ||
"index": 0 | ||
}, | ||
{ | ||
"node": "Binary to JSON - No Set All Data", | ||
"type": "main", | ||
"index": 0 | ||
}, | ||
{ | ||
"node": "Binary to JSON - No Set All Data + Json Parse", | ||
"type": "main", | ||
"index": 0 | ||
}, | ||
{ | ||
"node": "Binary to JSON - No Set All Data + Encoding base64", | ||
"type": "main", | ||
"index": 0 | ||
}, | ||
{ | ||
"node": "Binary to JSON - Keep as Base64", | ||
"type": "main", | ||
"index": 0 | ||
} | ||
] | ||
] | ||
}, | ||
"Binary to JSON": { | ||
"main": [ | ||
[ | ||
{ | ||
"node": "JSON to Binary", | ||
"type": "main", | ||
"index": 0 | ||
}, | ||
{ | ||
"node": "JSON to Binary - No Convert All Data", | ||
"type": "main", | ||
"index": 0 | ||
} | ||
] | ||
] | ||
} | ||
} | ||
} |
5 changes: 5 additions & 0 deletions
5
packages/nodes-base/nodes/MoveBinaryData/test/data/sample.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
{ | ||
"id": 1, | ||
"title": "My Title", | ||
"description": "Lorem Ipsum ..." | ||
} |