n8n-nodes-base 0.212.1 → 0.213.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/nodes/ActiveCampaign/ActiveCampaign.node.js +1 -1
- package/dist/nodes/ActiveCampaign/ActiveCampaign.node.js.map +1 -1
- package/dist/nodes/Code/test/Code.node.test.d.ts +1 -0
- package/dist/nodes/Code/test/Code.node.test.js +6 -0
- package/dist/nodes/Code/test/Code.node.test.js.map +1 -0
- package/dist/nodes/Code/test/Code.workflow.json +116 -0
- package/dist/nodes/CompareDatasets/test/node/CompareDatasets.test.d.ts +1 -0
- package/dist/nodes/CompareDatasets/test/node/CompareDatasets.test.js +6 -0
- package/dist/nodes/CompareDatasets/test/node/CompareDatasets.test.js.map +1 -0
- package/dist/nodes/CompareDatasets/test/node/workflow.compareDatasets.fuzzy.json +1054 -0
- package/dist/nodes/CompareDatasets/test/node/workflow.compareDatasets.json +879 -0
- package/dist/nodes/Compression/test/node/Compression.test.d.ts +1 -0
- package/dist/nodes/Compression/test/node/Compression.test.js +67 -0
- package/dist/nodes/Compression/test/node/Compression.test.js.map +1 -0
- package/dist/nodes/Compression/test/node/workflow.compression.json +87 -0
- package/dist/nodes/Crypto/test/Crypto.test.d.ts +1 -0
- package/dist/nodes/Crypto/test/Crypto.test.js +6 -0
- package/dist/nodes/Crypto/test/Crypto.test.js.map +1 -0
- package/dist/nodes/Crypto/test/CryptoTest.workflow.json +238 -0
- package/dist/nodes/DateTime/test/node/DateTime.test.d.ts +1 -0
- package/dist/nodes/DateTime/test/node/DateTime.test.js +15 -0
- package/dist/nodes/DateTime/test/node/DateTime.test.js.map +1 -0
- package/dist/nodes/DateTime/test/node/DateTimeWorklfow.test.json +331 -0
- package/dist/nodes/EditImage/EditImage.node.js +4 -0
- package/dist/nodes/EditImage/EditImage.node.js.map +1 -1
- package/dist/nodes/ExecuteCommand/test/ExecuteCommand.node.test.d.ts +1 -0
- package/dist/nodes/ExecuteCommand/test/ExecuteCommand.node.test.js +6 -0
- package/dist/nodes/ExecuteCommand/test/ExecuteCommand.node.test.js.map +1 -0
- package/dist/nodes/ExecuteCommand/test/workflow.json +142 -0
- package/dist/nodes/Google/Sheet/v2/actions/sheet/commonDescription.js +8 -8
- package/dist/nodes/Google/Sheet/v2/actions/sheet/commonDescription.js.map +1 -1
- package/dist/nodes/HttpRequest/test/node/HttpRequest.test.d.ts +1 -0
- package/dist/nodes/HttpRequest/test/node/HttpRequest.test.js +114 -0
- package/dist/nodes/HttpRequest/test/node/HttpRequest.test.js.map +1 -0
- package/dist/nodes/HttpRequest/test/node/workflow.delete.json +60 -0
- package/dist/nodes/HttpRequest/test/node/workflow.get.json +144 -0
- package/dist/nodes/HttpRequest/test/node/workflow.patch.json +73 -0
- package/dist/nodes/HttpRequest/test/node/workflow.post.json +105 -0
- package/dist/nodes/HttpRequest/test/node/workflow.put.json +73 -0
- package/dist/nodes/Hubspot/HubspotTrigger.node.js +25 -0
- package/dist/nodes/Hubspot/HubspotTrigger.node.js.map +1 -1
- package/dist/nodes/ICalendar/test/node/ICalendar.test.d.ts +1 -0
- package/dist/nodes/ICalendar/test/node/ICalendar.test.js +54 -0
- package/dist/nodes/ICalendar/test/node/ICalendar.test.js.map +1 -0
- package/dist/nodes/ICalendar/test/node/workflow.iCalendar.json +59 -0
- package/dist/nodes/If/test/IF.boolean.json +306 -0
- package/dist/nodes/If/test/IF.date-time.json +221 -0
- package/dist/nodes/If/test/IF.number.json +616 -0
- package/dist/nodes/If/test/IF.string.json +976 -0
- package/dist/nodes/If/test/If.node.test.d.ts +1 -0
- package/dist/nodes/If/test/If.node.test.js +6 -0
- package/dist/nodes/If/test/If.node.test.js.map +1 -0
- package/dist/nodes/ItemLists/test/node/ItemLists.test.d.ts +1 -0
- package/dist/nodes/ItemLists/test/node/ItemLists.test.js +6 -0
- package/dist/nodes/ItemLists/test/node/ItemLists.test.js.map +1 -0
- package/dist/nodes/ItemLists/test/node/workflow.aggregateItems.json +223 -0
- package/dist/nodes/ItemLists/test/node/workflow.limit.json +97 -0
- package/dist/nodes/ItemLists/test/node/workflow.removeDuplicates.json +177 -0
- package/dist/nodes/ItemLists/test/node/workflow.sort.json +216 -0
- package/dist/nodes/ItemLists/test/node/workflow.splitOutItems.json +360 -0
- package/dist/nodes/ItemLists/test/node/workflow.summarize.json +299 -0
- package/dist/nodes/Linear/Linear.node.js +26 -0
- package/dist/nodes/Linear/Linear.node.js.map +1 -1
- package/dist/nodes/Linear/Queries.d.ts +1 -0
- package/dist/nodes/Linear/Queries.js +13 -4
- package/dist/nodes/Linear/Queries.js.map +1 -1
- package/dist/nodes/Markdown/test/node/Markdown.test.d.ts +1 -0
- package/dist/nodes/Markdown/test/node/Markdown.test.js +6 -0
- package/dist/nodes/Markdown/test/node/Markdown.test.js.map +1 -0
- package/dist/nodes/Markdown/test/node/workflow.markdown.json +181 -0
- package/dist/nodes/Merge/test/node/Merge.test.d.ts +1 -0
- package/dist/nodes/Merge/test/node/Merge.test.js +6 -0
- package/dist/nodes/Merge/test/node/Merge.test.js.map +1 -0
- package/dist/nodes/Merge/test/node/workflow.append.json +123 -0
- package/dist/nodes/Merge/test/node/workflow.chooseBranch.json +174 -0
- package/dist/nodes/Merge/test/node/workflow.combine.mergeByFields.json +486 -0
- package/dist/nodes/Merge/test/node/workflow.combine.mergeByPosition.json +219 -0
- package/dist/nodes/Merge/test/node/workflow.combine.multiplex.json +259 -0
- package/dist/nodes/MoveBinaryData/test/MoveBinaryData.test.d.ts +1 -0
- package/dist/nodes/MoveBinaryData/test/MoveBinaryData.test.js +146 -0
- package/dist/nodes/MoveBinaryData/test/MoveBinaryData.test.js.map +1 -0
- package/dist/nodes/MoveBinaryData/test/MoveBinaryData.workflow.json +171 -0
- package/dist/nodes/MoveBinaryData/test/data/sample.json +5 -0
- package/dist/nodes/ReadBinaryFile/test/ReadBinaryFile.test.d.ts +1 -0
- package/dist/nodes/ReadBinaryFile/test/ReadBinaryFile.test.js +79 -0
- package/dist/nodes/ReadBinaryFile/test/ReadBinaryFile.test.js.map +1 -0
- package/dist/nodes/ReadBinaryFile/test/ReadBinaryFile.workflow.json +51 -0
- package/dist/nodes/ReadPdf/test/ReadPDF.test.d.ts +1 -0
- package/dist/nodes/ReadPdf/test/ReadPDF.test.js +79 -0
- package/dist/nodes/ReadPdf/test/ReadPDF.test.js.map +1 -0
- package/dist/nodes/ReadPdf/test/ReadPDF.workflow.json +64 -0
- package/dist/nodes/RenameKeys/test/RenameKeys.test.d.ts +1 -0
- package/dist/nodes/RenameKeys/test/RenameKeys.test.js +6 -0
- package/dist/nodes/RenameKeys/test/RenameKeys.test.js.map +1 -0
- package/dist/nodes/RenameKeys/test/RenameKeys.workflow.json +302 -0
- package/dist/nodes/RssFeedRead/test/node/RssFeedRead.test.d.ts +1 -0
- package/dist/nodes/RssFeedRead/test/node/RssFeedRead.test.js +24 -0
- package/dist/nodes/RssFeedRead/test/node/RssFeedRead.test.js.map +1 -0
- package/dist/nodes/RssFeedRead/test/node/workflow.rss.json +87 -0
- package/dist/nodes/Set/test/Set.node.test.d.ts +1 -0
- package/dist/nodes/Set/test/Set.node.test.js +6 -0
- package/dist/nodes/Set/test/Set.node.test.js.map +1 -0
- package/dist/nodes/Set/test/Set.workflow.json +320 -0
- package/dist/nodes/SplitInBatches/test/SplitInBatches.node.test.d.ts +1 -0
- package/dist/nodes/SplitInBatches/test/SplitInBatches.node.test.js +6 -0
- package/dist/nodes/SplitInBatches/test/SplitInBatches.node.test.js.map +1 -0
- package/dist/nodes/SplitInBatches/test/SplitInBatches.workflow.json +178 -0
- package/dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js +1 -1
- package/dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js.map +1 -1
- package/dist/nodes/SpreadsheetFile/SpreadsheetFile.node.json +1 -1
- package/dist/nodes/SpreadsheetFile/test/SpreadsheetFile.test.d.ts +1 -0
- package/dist/nodes/SpreadsheetFile/test/SpreadsheetFile.test.js +183 -0
- package/dist/nodes/SpreadsheetFile/test/SpreadsheetFile.test.js.map +1 -0
- package/dist/nodes/SpreadsheetFile/test/workflow.json +253 -0
- package/dist/nodes/StopAndError/test/node/StopAndError.test.d.ts +1 -0
- package/dist/nodes/StopAndError/test/node/StopAndError.test.js +111 -0
- package/dist/nodes/StopAndError/test/node/StopAndError.test.js.map +1 -0
- package/dist/nodes/Switch/test/switch.expression.workflow.json +225 -0
- package/dist/nodes/Switch/test/switch.node.test.d.ts +1 -0
- package/dist/nodes/Switch/test/switch.node.test.js +6 -0
- package/dist/nodes/Switch/test/switch.node.test.js.map +1 -0
- package/dist/nodes/Switch/test/switch.rules.workflow.json +242 -0
- package/dist/nodes/WriteBinaryFile/test/WriteBinaryFile.test.d.ts +1 -0
- package/dist/nodes/WriteBinaryFile/test/WriteBinaryFile.test.js +85 -0
- package/dist/nodes/WriteBinaryFile/test/WriteBinaryFile.test.js.map +1 -0
- package/dist/nodes/WriteBinaryFile/test/WriteBinaryFile.workflow.json +76 -0
- package/dist/nodes/Xml/Xml.node.js.map +1 -1
- package/dist/nodes/Xml/test/node/Xml.test.d.ts +1 -0
- package/dist/nodes/Xml/test/node/Xml.test.js +6 -0
- package/dist/nodes/Xml/test/node/Xml.test.js.map +1 -0
- package/dist/nodes/Xml/test/node/workflow.xml.json +148 -0
- package/dist/test/nodes/ExecuteWorkflow.d.ts +7 -0
- package/dist/test/nodes/ExecuteWorkflow.js +48 -0
- package/dist/test/nodes/ExecuteWorkflow.js.map +1 -0
- package/dist/test/nodes/Helpers.d.ts +32 -0
- package/dist/test/nodes/Helpers.js +234 -0
- package/dist/test/nodes/Helpers.js.map +1 -0
- package/dist/test/nodes/types.d.ts +16 -0
- package/dist/test/nodes/types.js +3 -0
- package/dist/test/nodes/types.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/credentials.json +4 -4
- package/dist/types/nodes.json +346 -346
- package/package.json +7 -7
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const Helpers_1 = require("../../../../test/nodes/Helpers");
|
|
4
|
+
const workflows = (0, Helpers_1.getWorkflowFilenames)(__dirname);
|
|
5
|
+
describe('Test XML Node', () => (0, Helpers_1.testWorkflows)(workflows));
|
|
6
|
+
//# sourceMappingURL=Xml.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Xml.test.js","sourceRoot":"","sources":["../../../../../nodes/Xml/test/node/Xml.test.ts"],"names":[],"mappings":";;AAAA,4DAAqF;AAErF,MAAM,SAAS,GAAG,IAAA,8BAAoB,EAAC,SAAS,CAAC,CAAC;AAElD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,IAAA,uBAAa,EAAC,SAAS,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "xml tests",
|
|
3
|
+
"nodes": [
|
|
4
|
+
{
|
|
5
|
+
"parameters": {},
|
|
6
|
+
"id": "745d1191-f221-4eda-9d09-611233f97edd",
|
|
7
|
+
"name": "When clicking \"Execute Workflow\"",
|
|
8
|
+
"type": "n8n-nodes-base.manualTrigger",
|
|
9
|
+
"typeVersion": 1,
|
|
10
|
+
"position": [460, 520]
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"parameters": {
|
|
14
|
+
"mode": "jsonToxml",
|
|
15
|
+
"options": {}
|
|
16
|
+
},
|
|
17
|
+
"id": "fb48ca4c-5ae2-4c57-9ca9-2080d06dbf65",
|
|
18
|
+
"name": "XML",
|
|
19
|
+
"type": "n8n-nodes-base.xml",
|
|
20
|
+
"typeVersion": 1,
|
|
21
|
+
"position": [960, 280]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"parameters": {
|
|
25
|
+
"jsCode": "return {\n data: {\n id: 1,\n firstName: 'Adam',\n secondName: 'Smith',\n fullName: 'Adam Smith',\n }\n}"
|
|
26
|
+
},
|
|
27
|
+
"id": "6a04ca32-c9cc-4cb1-a6b9-3a505b1c2dd5",
|
|
28
|
+
"name": "Code",
|
|
29
|
+
"type": "n8n-nodes-base.code",
|
|
30
|
+
"typeVersion": 1,
|
|
31
|
+
"position": [700, 400]
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"parameters": {
|
|
35
|
+
"mode": "jsonToxml",
|
|
36
|
+
"options": {
|
|
37
|
+
"headless": true
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"id": "cd740e65-5117-4bec-a3b3-6863ba25f232",
|
|
41
|
+
"name": "XML1",
|
|
42
|
+
"type": "n8n-nodes-base.xml",
|
|
43
|
+
"typeVersion": 1,
|
|
44
|
+
"position": [960, 500]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"parameters": {
|
|
48
|
+
"jsCode": "return {\n\"data\":\n'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?> <data> <id>1</id> <firstName>Adam</firstName> <secondName>Smith</secondName> <fullName>Adam Smith</fullName> </data>'\n}"
|
|
49
|
+
},
|
|
50
|
+
"id": "817afbf7-9342-403f-8dc0-c4a3905fde4d",
|
|
51
|
+
"name": "Code1",
|
|
52
|
+
"type": "n8n-nodes-base.code",
|
|
53
|
+
"typeVersion": 1,
|
|
54
|
+
"position": [680, 640]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"parameters": {
|
|
58
|
+
"options": {}
|
|
59
|
+
},
|
|
60
|
+
"id": "f0f37a8f-9136-42e8-be34-f32b77e4aa88",
|
|
61
|
+
"name": "XML2",
|
|
62
|
+
"type": "n8n-nodes-base.xml",
|
|
63
|
+
"typeVersion": 1,
|
|
64
|
+
"position": [940, 700]
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"pinData": {
|
|
68
|
+
"XML": [
|
|
69
|
+
{
|
|
70
|
+
"json": {
|
|
71
|
+
"data": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<data>\n <id>1</id>\n <firstName>Adam</firstName>\n <secondName>Smith</secondName>\n <fullName>Adam Smith</fullName>\n</data>"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"XML1": [
|
|
76
|
+
{
|
|
77
|
+
"json": {
|
|
78
|
+
"data": "<data>\n <id>1</id>\n <firstName>Adam</firstName>\n <secondName>Smith</secondName>\n <fullName>Adam Smith</fullName>\n</data>"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"XML2": [
|
|
83
|
+
{
|
|
84
|
+
"json": {
|
|
85
|
+
"data": {
|
|
86
|
+
"id": "1",
|
|
87
|
+
"firstName": "Adam",
|
|
88
|
+
"secondName": "Smith",
|
|
89
|
+
"fullName": "Adam Smith"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
"connections": {
|
|
96
|
+
"When clicking \"Execute Workflow\"": {
|
|
97
|
+
"main": [
|
|
98
|
+
[
|
|
99
|
+
{
|
|
100
|
+
"node": "Code",
|
|
101
|
+
"type": "main",
|
|
102
|
+
"index": 0
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"node": "Code1",
|
|
106
|
+
"type": "main",
|
|
107
|
+
"index": 0
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
"Code": {
|
|
113
|
+
"main": [
|
|
114
|
+
[
|
|
115
|
+
{
|
|
116
|
+
"node": "XML",
|
|
117
|
+
"type": "main",
|
|
118
|
+
"index": 0
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"node": "XML1",
|
|
122
|
+
"type": "main",
|
|
123
|
+
"index": 0
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
"Code1": {
|
|
129
|
+
"main": [
|
|
130
|
+
[
|
|
131
|
+
{
|
|
132
|
+
"node": "XML2",
|
|
133
|
+
"type": "main",
|
|
134
|
+
"index": 0
|
|
135
|
+
}
|
|
136
|
+
]
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"active": false,
|
|
141
|
+
"settings": {},
|
|
142
|
+
"versionId": "c1fde9d5-f27c-4e62-bc5c-8be787dcc227",
|
|
143
|
+
"id": "109",
|
|
144
|
+
"meta": {
|
|
145
|
+
"instanceId": "36203ea1ce3cef713fa25999bd9874ae26b9e4c2c3a90a365f2882a154d031d0"
|
|
146
|
+
},
|
|
147
|
+
"tags": []
|
|
148
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { INodeTypes, IRun } from 'n8n-workflow';
|
|
2
|
+
import type { WorkflowTestData } from './types';
|
|
3
|
+
export declare function executeWorkflow(testData: WorkflowTestData, nodeTypes: INodeTypes): Promise<{
|
|
4
|
+
executionData: IRun;
|
|
5
|
+
result: IRun;
|
|
6
|
+
nodeExecutionOrder: string[];
|
|
7
|
+
}>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.executeWorkflow = void 0;
|
|
27
|
+
const n8n_core_1 = require("n8n-core");
|
|
28
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
29
|
+
const Helpers = __importStar(require("./Helpers"));
|
|
30
|
+
async function executeWorkflow(testData, nodeTypes) {
|
|
31
|
+
const executionMode = 'manual';
|
|
32
|
+
const workflowInstance = new n8n_workflow_1.Workflow({
|
|
33
|
+
id: 'test',
|
|
34
|
+
nodes: testData.input.workflowData.nodes,
|
|
35
|
+
connections: testData.input.workflowData.connections,
|
|
36
|
+
active: false,
|
|
37
|
+
nodeTypes,
|
|
38
|
+
});
|
|
39
|
+
const waitPromise = await (0, n8n_workflow_1.createDeferredPromise)();
|
|
40
|
+
const nodeExecutionOrder = [];
|
|
41
|
+
const additionalData = Helpers.WorkflowExecuteAdditionalData(waitPromise, nodeExecutionOrder);
|
|
42
|
+
const workflowExecute = new n8n_core_1.WorkflowExecute(additionalData, executionMode);
|
|
43
|
+
const executionData = await workflowExecute.run(workflowInstance);
|
|
44
|
+
const result = await waitPromise.promise();
|
|
45
|
+
return { executionData, result, nodeExecutionOrder };
|
|
46
|
+
}
|
|
47
|
+
exports.executeWorkflow = executeWorkflow;
|
|
48
|
+
//# sourceMappingURL=ExecuteWorkflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExecuteWorkflow.js","sourceRoot":"","sources":["../../../test/nodes/ExecuteWorkflow.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA2C;AAC3C,+CAAiF;AACjF,mDAAqC;AAG9B,KAAK,UAAU,eAAe,CAAC,QAA0B,EAAE,SAAqB;IACtF,MAAM,aAAa,GAAG,QAAQ,CAAC;IAC/B,MAAM,gBAAgB,GAAG,IAAI,uBAAQ,CAAC;QACrC,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK;QACxC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW;QACpD,MAAM,EAAE,KAAK;QACb,SAAS;KACT,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,IAAA,oCAAqB,GAAQ,CAAC;IACxD,MAAM,kBAAkB,GAAa,EAAE,CAAC;IACxC,MAAM,cAAc,GAAG,OAAO,CAAC,6BAA6B,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAE9F,MAAM,eAAe,GAAG,IAAI,0BAAe,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAE3E,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;IAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;AACtD,CAAC;AAnBD,0CAmBC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Credentials } from 'n8n-core';
|
|
2
|
+
import { ICredentialDataDecryptedObject, ICredentialsHelper, IDeferredPromise, IHttpRequestHelper, IHttpRequestOptions, INode, INodeCredentialsDetails, INodeType, INodeTypeData, INodeTypes, IRun, IVersionedNodeType, IWorkflowExecuteAdditionalData } from 'n8n-workflow';
|
|
3
|
+
import { WorkflowTestData } from './types';
|
|
4
|
+
export declare class CredentialsHelper extends ICredentialsHelper {
|
|
5
|
+
authenticate(credentials: ICredentialDataDecryptedObject, typeName: string, requestParams: IHttpRequestOptions): Promise<IHttpRequestOptions>;
|
|
6
|
+
preAuthentication(helpers: IHttpRequestHelper, credentials: ICredentialDataDecryptedObject, typeName: string, node: INode, credentialsExpired: boolean): Promise<ICredentialDataDecryptedObject | undefined>;
|
|
7
|
+
getParentTypes(name: string): string[];
|
|
8
|
+
getDecrypted(nodeCredentials: INodeCredentialsDetails, type: string): Promise<ICredentialDataDecryptedObject>;
|
|
9
|
+
getCredentials(nodeCredentials: INodeCredentialsDetails, type: string): Promise<Credentials>;
|
|
10
|
+
updateCredentials(nodeCredentials: INodeCredentialsDetails, type: string, data: ICredentialDataDecryptedObject): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export declare function WorkflowExecuteAdditionalData(waitPromise: IDeferredPromise<IRun>, nodeExecutionOrder: string[]): IWorkflowExecuteAdditionalData;
|
|
13
|
+
declare class NodeTypesClass implements INodeTypes {
|
|
14
|
+
nodeTypes: INodeTypeData;
|
|
15
|
+
getByName(nodeType: string): INodeType | IVersionedNodeType;
|
|
16
|
+
addNode(nodeTypeName: string, nodeType: INodeType | IVersionedNodeType): void;
|
|
17
|
+
getByNameAndVersion(nodeType: string, version?: number): INodeType;
|
|
18
|
+
}
|
|
19
|
+
export declare function NodeTypes(): NodeTypesClass;
|
|
20
|
+
export declare function createTemporaryDir(prefix?: string): string;
|
|
21
|
+
export declare function initBinaryDataManager(mode?: 'default' | 'filesystem'): Promise<string>;
|
|
22
|
+
export declare function setup(testData: Array<WorkflowTestData> | WorkflowTestData): NodeTypesClass;
|
|
23
|
+
export declare function getResultNodeData(result: IRun, testData: WorkflowTestData): {
|
|
24
|
+
nodeName: string;
|
|
25
|
+
resultData: (import("n8n-workflow").INodeExecutionData[] | null)[];
|
|
26
|
+
}[];
|
|
27
|
+
export declare function readJsonFileSync(path: string): any;
|
|
28
|
+
export declare const equalityTest: (testData: WorkflowTestData, types: INodeTypes) => Promise<void>;
|
|
29
|
+
export declare const workflowToTests: (workflowFiles: string[]) => WorkflowTestData[];
|
|
30
|
+
export declare const testWorkflows: (workflows: string[]) => void;
|
|
31
|
+
export declare const getWorkflowFilenames: (dirname: string) => string[];
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getWorkflowFilenames = exports.testWorkflows = exports.workflowToTests = exports.equalityTest = exports.readJsonFileSync = exports.getResultNodeData = exports.setup = exports.initBinaryDataManager = exports.createTemporaryDir = exports.NodeTypes = exports.WorkflowExecuteAdditionalData = exports.CredentialsHelper = void 0;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const n8n_core_1 = require("n8n-core");
|
|
9
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
10
|
+
const ExecuteWorkflow_1 = require("./ExecuteWorkflow");
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const os_1 = require("os");
|
|
13
|
+
const lodash_1 = require("lodash");
|
|
14
|
+
class CredentialsHelper extends n8n_workflow_1.ICredentialsHelper {
|
|
15
|
+
async authenticate(credentials, typeName, requestParams) {
|
|
16
|
+
return requestParams;
|
|
17
|
+
}
|
|
18
|
+
async preAuthentication(helpers, credentials, typeName, node, credentialsExpired) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
getParentTypes(name) {
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
async getDecrypted(nodeCredentials, type) {
|
|
25
|
+
return {};
|
|
26
|
+
}
|
|
27
|
+
async getCredentials(nodeCredentials, type) {
|
|
28
|
+
return new n8n_core_1.Credentials({ id: null, name: '' }, '', [], '');
|
|
29
|
+
}
|
|
30
|
+
async updateCredentials(nodeCredentials, type, data) { }
|
|
31
|
+
}
|
|
32
|
+
exports.CredentialsHelper = CredentialsHelper;
|
|
33
|
+
function WorkflowExecuteAdditionalData(waitPromise, nodeExecutionOrder) {
|
|
34
|
+
const hookFunctions = {
|
|
35
|
+
nodeExecuteAfter: [
|
|
36
|
+
async (nodeName, data) => {
|
|
37
|
+
nodeExecutionOrder.push(nodeName);
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
workflowExecuteAfter: [
|
|
41
|
+
async (fullRunData) => {
|
|
42
|
+
waitPromise.resolve(fullRunData);
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
};
|
|
46
|
+
const workflowData = {
|
|
47
|
+
name: '',
|
|
48
|
+
createdAt: new Date(),
|
|
49
|
+
updatedAt: new Date(),
|
|
50
|
+
active: true,
|
|
51
|
+
nodes: [],
|
|
52
|
+
connections: {},
|
|
53
|
+
};
|
|
54
|
+
return {
|
|
55
|
+
credentialsHelper: new CredentialsHelper(''),
|
|
56
|
+
hooks: new n8n_workflow_1.WorkflowHooks(hookFunctions, 'trigger', '1', workflowData),
|
|
57
|
+
executeWorkflow: async (workflowInfo) => { },
|
|
58
|
+
sendMessageToUI: (message) => { },
|
|
59
|
+
restApiUrl: '',
|
|
60
|
+
encryptionKey: 'test',
|
|
61
|
+
timezone: 'America/New_York',
|
|
62
|
+
webhookBaseUrl: 'webhook',
|
|
63
|
+
webhookWaitingBaseUrl: 'webhook-waiting',
|
|
64
|
+
webhookTestBaseUrl: 'webhook-test',
|
|
65
|
+
userId: '123',
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
exports.WorkflowExecuteAdditionalData = WorkflowExecuteAdditionalData;
|
|
69
|
+
class NodeTypesClass {
|
|
70
|
+
constructor() {
|
|
71
|
+
this.nodeTypes = {};
|
|
72
|
+
}
|
|
73
|
+
getByName(nodeType) {
|
|
74
|
+
return this.nodeTypes[nodeType].type;
|
|
75
|
+
}
|
|
76
|
+
addNode(nodeTypeName, nodeType) {
|
|
77
|
+
const loadedNode = {
|
|
78
|
+
[nodeTypeName]: {
|
|
79
|
+
sourcePath: '',
|
|
80
|
+
type: nodeType,
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
this.nodeTypes = {
|
|
84
|
+
...this.nodeTypes,
|
|
85
|
+
...loadedNode,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
getByNameAndVersion(nodeType, version) {
|
|
89
|
+
return n8n_workflow_1.NodeHelpers.getVersionedNodeType(this.nodeTypes[nodeType].type, version);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
let nodeTypesInstance;
|
|
93
|
+
function NodeTypes() {
|
|
94
|
+
if (nodeTypesInstance === undefined) {
|
|
95
|
+
nodeTypesInstance = new NodeTypesClass();
|
|
96
|
+
}
|
|
97
|
+
return nodeTypesInstance;
|
|
98
|
+
}
|
|
99
|
+
exports.NodeTypes = NodeTypes;
|
|
100
|
+
let knownNodes = null;
|
|
101
|
+
const loadKnownNodes = () => {
|
|
102
|
+
if (knownNodes === null) {
|
|
103
|
+
knownNodes = JSON.parse((0, fs_1.readFileSync)('dist/known/nodes.json').toString());
|
|
104
|
+
}
|
|
105
|
+
return knownNodes;
|
|
106
|
+
};
|
|
107
|
+
function createTemporaryDir(prefix = 'n8n') {
|
|
108
|
+
return (0, fs_1.mkdtempSync)(path_1.default.join((0, os_1.tmpdir)(), prefix));
|
|
109
|
+
}
|
|
110
|
+
exports.createTemporaryDir = createTemporaryDir;
|
|
111
|
+
async function initBinaryDataManager(mode = 'default') {
|
|
112
|
+
const temporaryDir = createTemporaryDir();
|
|
113
|
+
await n8n_core_1.BinaryDataManager.init({
|
|
114
|
+
mode,
|
|
115
|
+
availableModes: mode,
|
|
116
|
+
localStoragePath: temporaryDir,
|
|
117
|
+
binaryDataTTL: 1,
|
|
118
|
+
persistedBinaryDataTTL: 1,
|
|
119
|
+
});
|
|
120
|
+
return temporaryDir;
|
|
121
|
+
}
|
|
122
|
+
exports.initBinaryDataManager = initBinaryDataManager;
|
|
123
|
+
function setup(testData) {
|
|
124
|
+
if (!Array.isArray(testData)) {
|
|
125
|
+
testData = [testData];
|
|
126
|
+
}
|
|
127
|
+
const knownNodes = loadKnownNodes();
|
|
128
|
+
const nodeTypes = NodeTypes();
|
|
129
|
+
const nodeNames = Array.from(new Set(testData.flatMap((data) => data.input.workflowData.nodes.map((n) => n.type))));
|
|
130
|
+
for (const nodeName of nodeNames) {
|
|
131
|
+
if (!nodeName.startsWith('n8n-nodes-base.')) {
|
|
132
|
+
throw new Error(`Unknown node type: ${nodeName}`);
|
|
133
|
+
}
|
|
134
|
+
const loadInfo = knownNodes[nodeName.replace('n8n-nodes-base.', '')];
|
|
135
|
+
if (!loadInfo) {
|
|
136
|
+
throw new Error(`Unknown node type: ${nodeName}`);
|
|
137
|
+
}
|
|
138
|
+
const node = (0, n8n_core_1.loadClassInIsolation)(path_1.default.join(process.cwd(), loadInfo.sourcePath), loadInfo.className);
|
|
139
|
+
nodeTypes.addNode(nodeName, node);
|
|
140
|
+
}
|
|
141
|
+
const fakeLogger = {
|
|
142
|
+
log: () => { },
|
|
143
|
+
debug: () => { },
|
|
144
|
+
verbose: () => { },
|
|
145
|
+
info: () => { },
|
|
146
|
+
warn: () => { },
|
|
147
|
+
error: () => { },
|
|
148
|
+
};
|
|
149
|
+
n8n_workflow_1.LoggerProxy.init(fakeLogger);
|
|
150
|
+
return nodeTypes;
|
|
151
|
+
}
|
|
152
|
+
exports.setup = setup;
|
|
153
|
+
function getResultNodeData(result, testData) {
|
|
154
|
+
return Object.keys(testData.output.nodeData).map((nodeName) => {
|
|
155
|
+
if (result.data.resultData.runData[nodeName] === undefined) {
|
|
156
|
+
throw new Error(`Data for node "${nodeName}" is missing!`);
|
|
157
|
+
}
|
|
158
|
+
const resultData = result.data.resultData.runData[nodeName].map((nodeData) => {
|
|
159
|
+
if (nodeData.data === undefined) {
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
return nodeData.data.main[0].map((entry) => {
|
|
163
|
+
if (entry.binary && (0, lodash_1.isEmpty)(entry.binary))
|
|
164
|
+
delete entry.binary;
|
|
165
|
+
delete entry.pairedItem;
|
|
166
|
+
return entry;
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
return {
|
|
170
|
+
nodeName,
|
|
171
|
+
resultData,
|
|
172
|
+
};
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
exports.getResultNodeData = getResultNodeData;
|
|
176
|
+
function readJsonFileSync(path) {
|
|
177
|
+
return JSON.parse((0, fs_1.readFileSync)(path, 'utf-8'));
|
|
178
|
+
}
|
|
179
|
+
exports.readJsonFileSync = readJsonFileSync;
|
|
180
|
+
const equalityTest = async (testData, types) => {
|
|
181
|
+
const { result } = await (0, ExecuteWorkflow_1.executeWorkflow)(testData, types);
|
|
182
|
+
const resultNodeData = getResultNodeData(result, testData);
|
|
183
|
+
resultNodeData.forEach(({ nodeName, resultData }) => {
|
|
184
|
+
return expect(resultData).toEqual(testData.output.nodeData[nodeName]);
|
|
185
|
+
});
|
|
186
|
+
expect(result.finished).toEqual(true);
|
|
187
|
+
};
|
|
188
|
+
exports.equalityTest = equalityTest;
|
|
189
|
+
const preparePinData = (pinData) => {
|
|
190
|
+
const returnData = Object.keys(pinData).reduce((acc, key) => {
|
|
191
|
+
const data = pinData[key];
|
|
192
|
+
acc[key] = [data];
|
|
193
|
+
return acc;
|
|
194
|
+
}, {});
|
|
195
|
+
return returnData;
|
|
196
|
+
};
|
|
197
|
+
const workflowToTests = (workflowFiles) => {
|
|
198
|
+
const testCases = [];
|
|
199
|
+
for (const filePath of workflowFiles) {
|
|
200
|
+
const description = filePath.replace('.json', '');
|
|
201
|
+
const workflowData = readJsonFileSync(filePath);
|
|
202
|
+
if (workflowData.pinData === undefined) {
|
|
203
|
+
throw new Error('Workflow data does not contain pinData');
|
|
204
|
+
}
|
|
205
|
+
const nodeData = preparePinData(workflowData.pinData);
|
|
206
|
+
delete workflowData.pinData;
|
|
207
|
+
const input = { workflowData };
|
|
208
|
+
const output = { nodeData };
|
|
209
|
+
testCases.push({ description, input, output });
|
|
210
|
+
}
|
|
211
|
+
return testCases;
|
|
212
|
+
};
|
|
213
|
+
exports.workflowToTests = workflowToTests;
|
|
214
|
+
const testWorkflows = (workflows) => {
|
|
215
|
+
const tests = (0, exports.workflowToTests)(workflows);
|
|
216
|
+
const nodeTypes = setup(tests);
|
|
217
|
+
for (const testData of tests) {
|
|
218
|
+
test(testData.description, async () => (0, exports.equalityTest)(testData, nodeTypes));
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
exports.testWorkflows = testWorkflows;
|
|
222
|
+
const getWorkflowFilenames = (dirname) => {
|
|
223
|
+
const workflows = [];
|
|
224
|
+
const filenames = (0, fs_1.readdirSync)(dirname);
|
|
225
|
+
const testFolder = dirname.split(`${path_1.default.sep}nodes-base${path_1.default.sep}`)[1];
|
|
226
|
+
filenames.forEach((file) => {
|
|
227
|
+
if (file.includes('.json')) {
|
|
228
|
+
workflows.push(path_1.default.join(testFolder, file));
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
return workflows;
|
|
232
|
+
};
|
|
233
|
+
exports.getWorkflowFilenames = getWorkflowFilenames;
|
|
234
|
+
//# sourceMappingURL=Helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../../test/nodes/Helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { INode, IConnections } from 'n8n-workflow';
|
|
2
|
+
export interface WorkflowTestData {
|
|
3
|
+
description: string;
|
|
4
|
+
input: {
|
|
5
|
+
workflowData: {
|
|
6
|
+
nodes: INode[];
|
|
7
|
+
connections: IConnections;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
output: {
|
|
11
|
+
nodeExecutionOrder?: string[];
|
|
12
|
+
nodeData: {
|
|
13
|
+
[key: string]: any[][];
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../test/nodes/types.ts"],"names":[],"mappings":""}
|