Some checks failed
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled
36 lines
1.5 KiB
TypeScript
36 lines
1.5 KiB
TypeScript
import type { MockProxy } from 'jest-mock-extended';
|
|
import { mock } from 'jest-mock-extended';
|
|
import { normalizeItems } from 'n8n-core';
|
|
import type { IExecuteFunctions, INode, IWorkflowDataProxyData } from 'n8n-workflow';
|
|
|
|
import { Code } from '../Code.node';
|
|
import { PythonTaskRunnerSandbox } from '../PythonTaskRunnerSandbox';
|
|
|
|
describe('Code Node unit test', () => {
|
|
const workflowDataProxy = mock<IWorkflowDataProxyData>({ $input: mock() });
|
|
|
|
it('should route legacy `python` language to native Python runner', async () => {
|
|
const node = new Code();
|
|
const pythonThisArg: MockProxy<IExecuteFunctions> = mock<IExecuteFunctions>();
|
|
pythonThisArg.helpers = { normalizeItems } as IExecuteFunctions['helpers'];
|
|
pythonThisArg.getNode.mockReturnValue(mock<INode>({ typeVersion: 2 }));
|
|
pythonThisArg.getWorkflowDataProxy.mockReturnValue(workflowDataProxy);
|
|
pythonThisArg.getMode.mockReturnValue('manual');
|
|
pythonThisArg.getRunnerStatus.mockReturnValue({ available: true });
|
|
pythonThisArg.getNodeParameter.calledWith('language', 0).mockReturnValue('python');
|
|
pythonThisArg.getNodeParameter.calledWith('mode', 0).mockReturnValue('runOnceForAllItems');
|
|
pythonThisArg.getNodeParameter.calledWith('pythonCode', 0).mockReturnValue('return []');
|
|
pythonThisArg.getInputData.mockReturnValue([{ json: {} }]);
|
|
|
|
const runSpy = jest
|
|
.spyOn(PythonTaskRunnerSandbox.prototype, 'runUsingIncomingItems')
|
|
.mockResolvedValue([]);
|
|
|
|
await node.execute.call(pythonThisArg);
|
|
|
|
expect(runSpy).toHaveBeenCalled();
|
|
|
|
runSpy.mockRestore();
|
|
});
|
|
});
|