mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 10:02:05 +00:00
refactor: Overhaul nodes-testing setup - Part 2 (no-changelog) (#14873)
This commit is contained in:
committed by
GitHub
parent
897338bd24
commit
91069f057e
@@ -1,10 +1,10 @@
|
||||
import { Container } from '@n8n/di';
|
||||
import { readFileSync, readdirSync, mkdtempSync } from 'fs';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { get } from 'lodash';
|
||||
import { isEmpty } from 'lodash';
|
||||
import { type BinaryDataConfig, BinaryDataService, constructExecutionMetaData } from 'n8n-core';
|
||||
import { constructExecutionMetaData } from 'n8n-core';
|
||||
import type {
|
||||
ICredentialDataDecryptedObject,
|
||||
IDataObject,
|
||||
IExecuteFunctions,
|
||||
IGetNodeParameterOptions,
|
||||
@@ -36,17 +36,6 @@ export function createTemporaryDir(prefix = 'n8n') {
|
||||
return mkdtempSync(path.join(tmpdir(), prefix));
|
||||
}
|
||||
|
||||
export async function initBinaryDataService() {
|
||||
const binaryDataConfig = mock<BinaryDataConfig>({
|
||||
mode: 'default',
|
||||
availableModes: ['default'],
|
||||
localStoragePath: createTemporaryDir(),
|
||||
});
|
||||
const binaryDataService = new BinaryDataService(binaryDataConfig);
|
||||
await binaryDataService.init();
|
||||
Container.set(BinaryDataService, binaryDataService);
|
||||
}
|
||||
|
||||
export function getResultNodeData(result: IRun, testData: WorkflowTestData) {
|
||||
return Object.keys(testData.output.nodeData).map((nodeName) => {
|
||||
const error = result.data.resultData.error;
|
||||
@@ -127,7 +116,10 @@ const preparePinData = (pinData: IDataObject) => {
|
||||
return returnData;
|
||||
};
|
||||
|
||||
export const workflowToTests = (workflowFiles: string[]) => {
|
||||
export const workflowToTests = (
|
||||
workflowFiles: string[],
|
||||
credentials?: Record<string, ICredentialDataDecryptedObject>,
|
||||
) => {
|
||||
const testCases: WorkflowTestData[] = [];
|
||||
for (const filePath of workflowFiles) {
|
||||
const description = filePath.replace('.json', '');
|
||||
@@ -155,13 +147,16 @@ export const workflowToTests = (workflowFiles: string[]) => {
|
||||
const input = { workflowData };
|
||||
const output = { nodeData };
|
||||
|
||||
testCases.push({ description, input, output, trigger });
|
||||
testCases.push({ description, input, output, trigger, credentials });
|
||||
}
|
||||
return testCases;
|
||||
};
|
||||
|
||||
export const testWorkflows = (workflows: string[]) => {
|
||||
const tests = workflowToTests(workflows);
|
||||
export const testWorkflows = (
|
||||
workflows: string[],
|
||||
credentials?: Record<string, ICredentialDataDecryptedObject>,
|
||||
) => {
|
||||
const tests = workflowToTests(workflows, credentials);
|
||||
|
||||
for (const testData of tests) {
|
||||
test(testData.description, async () => await equalityTest(testData));
|
||||
|
||||
Reference in New Issue
Block a user