mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 01:56:46 +00:00
feat(editor): Add ability to extract sub-workflows to canvas context menu (#15538)
This commit is contained in:
@@ -196,7 +196,7 @@ describe('NodeReferenceParserUtils', () => {
|
||||
nodes = [makeNode('B', ['$("D")'])];
|
||||
nodeNames = ['B', 'D'];
|
||||
|
||||
const result = extractReferencesInNodeExpressions(nodes, nodeNames, startNodeName, 'B');
|
||||
const result = extractReferencesInNodeExpressions(nodes, nodeNames, startNodeName, ['B']);
|
||||
expect([...result.variables.entries()]).toEqual([]);
|
||||
expect(result.nodes).toEqual([
|
||||
{
|
||||
@@ -210,7 +210,7 @@ describe('NodeReferenceParserUtils', () => {
|
||||
nodes = [makeNode('B', ['$("E").item.json.x'])];
|
||||
nodeNames = ['B'];
|
||||
|
||||
const result = extractReferencesInNodeExpressions(nodes, nodeNames, startNodeName, 'B');
|
||||
const result = extractReferencesInNodeExpressions(nodes, nodeNames, startNodeName, ['B']);
|
||||
expect([...result.variables.entries()]).toEqual([]);
|
||||
expect(result.nodes).toEqual([
|
||||
{
|
||||
@@ -249,7 +249,7 @@ describe('NodeReferenceParserUtils', () => {
|
||||
nodes = [makeNode('B', ['$json.a.b.c_d["e"]["f"]']), makeNode('C', ['$json.x.y.z'])];
|
||||
nodeNames = ['A', 'B', 'C'];
|
||||
|
||||
const result = extractReferencesInNodeExpressions(nodes, nodeNames, startNodeName, 'B');
|
||||
const result = extractReferencesInNodeExpressions(nodes, nodeNames, startNodeName, ['B']);
|
||||
expect([...result.variables.entries()]).toEqual([['a_b_c_d', '$json.a.b.c_d']]);
|
||||
expect(result.nodes).toEqual([
|
||||
{
|
||||
@@ -262,6 +262,31 @@ describe('NodeReferenceParserUtils', () => {
|
||||
},
|
||||
]);
|
||||
});
|
||||
it('should handle complex $json case for first node', () => {
|
||||
nodes = [
|
||||
{
|
||||
parameters: {
|
||||
p0: '=https://raw.githubusercontent.com/{{ $json.org }}/{{ $json.repo }}/refs/heads/master/package.json',
|
||||
},
|
||||
name: 'A',
|
||||
} as unknown as INode,
|
||||
];
|
||||
nodeNames = ['A', 'B'];
|
||||
|
||||
const result = extractReferencesInNodeExpressions(nodes, nodeNames, startNodeName, ['A']);
|
||||
expect([...result.variables.entries()]).toEqual([
|
||||
['repo', '$json.repo'],
|
||||
['org', '$json.org'],
|
||||
]);
|
||||
expect(result.nodes).toEqual([
|
||||
{
|
||||
name: 'A',
|
||||
parameters: {
|
||||
p0: '=https://raw.githubusercontent.com/{{ $json.org }}/{{ $json.repo }}/refs/heads/master/package.json',
|
||||
},
|
||||
},
|
||||
]);
|
||||
});
|
||||
it('should support different node accessor patterns', () => {
|
||||
nodes = [
|
||||
makeNode('N', ['$("A").item.json.myField']),
|
||||
@@ -621,6 +646,56 @@ describe('NodeReferenceParserUtils', () => {
|
||||
},
|
||||
]);
|
||||
});
|
||||
it('should handle assignments format of Set node correctly', () => {
|
||||
nodes = [
|
||||
{
|
||||
parameters: {
|
||||
assignments: {
|
||||
assignments: [
|
||||
{
|
||||
id: 'cf8bd6cb-f28a-4a73-b141-02e5c22cfe74',
|
||||
name: 'ghApiBaseUrl',
|
||||
value: '={{ $("A").item.json.x.y.z }}',
|
||||
type: 'string',
|
||||
},
|
||||
],
|
||||
},
|
||||
options: {},
|
||||
},
|
||||
type: 'n8n-nodes-base.set',
|
||||
typeVersion: 3.4,
|
||||
position: [80, 80],
|
||||
id: '6e2fd284-2aba-4dee-8921-18be9a291484',
|
||||
name: 'Params',
|
||||
},
|
||||
];
|
||||
nodeNames = ['A', 'Params'];
|
||||
const result = extractReferencesInNodeExpressions(nodes, nodeNames, startNodeName);
|
||||
expect([...result.variables.entries()]).toEqual([['x_y_z', '$("A").item.json.x.y.z']]);
|
||||
expect(result.nodes).toEqual([
|
||||
{
|
||||
parameters: {
|
||||
assignments: {
|
||||
assignments: [
|
||||
{
|
||||
id: 'cf8bd6cb-f28a-4a73-b141-02e5c22cfe74',
|
||||
name: 'ghApiBaseUrl',
|
||||
value: "={{ $('Start').item.json.x_y_z }}",
|
||||
type: 'string',
|
||||
},
|
||||
],
|
||||
},
|
||||
options: {},
|
||||
},
|
||||
type: 'n8n-nodes-base.set',
|
||||
typeVersion: 3.4,
|
||||
position: [80, 80],
|
||||
id: '6e2fd284-2aba-4dee-8921-18be9a291484',
|
||||
name: 'Params',
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
it('should carry over unrelated properties', () => {
|
||||
nodes = [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user