mirror of
https://github.com/n8n-io/n8n.git
synced 2024-09-19 22:37:31 -07:00
Merge 1181802c04
into 48294e7ec1
This commit is contained in:
commit
e11f3f4bf7
|
@ -1291,7 +1291,7 @@ export class WorkflowExecute {
|
|||
pairedItemData,
|
||||
);
|
||||
|
||||
if (constPairedItem === null) {
|
||||
if (constPairedItem === null || constPairedItem === undefined) {
|
||||
errorItems.push(item);
|
||||
} else {
|
||||
errorItems.push({
|
||||
|
|
|
@ -1954,7 +1954,7 @@ export interface IWorkflowDataProxyData {
|
|||
destinationNodeName: string,
|
||||
incomingSourceData: ISourceData | null,
|
||||
pairedItem: IPairedItemData,
|
||||
) => INodeExecutionData | null;
|
||||
) => INodeExecutionData | null | undefined;
|
||||
constructor: any;
|
||||
}
|
||||
|
||||
|
|
|
@ -759,7 +759,7 @@ export class WorkflowDataProxy {
|
|||
destinationNodeName: string,
|
||||
incomingSourceData: ISourceData | null,
|
||||
pairedItem: IPairedItemData,
|
||||
): INodeExecutionData | null => {
|
||||
): INodeExecutionData | null | undefined => {
|
||||
let taskData: ITaskData | undefined;
|
||||
|
||||
let sourceData: ISourceData | null = incomingSourceData;
|
||||
|
@ -842,22 +842,24 @@ export class WorkflowDataProxy {
|
|||
if (results.every((result) => result === firstResult)) {
|
||||
// All results are the same so return the first one
|
||||
return firstResult;
|
||||
} else {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
throw createExpressionError('Invalid expression', {
|
||||
messageTemplate: `Multiple matching items for expression [item ${
|
||||
currentPairedItem.item || 0
|
||||
}]`,
|
||||
functionality: 'pairedItem',
|
||||
functionOverrides: {
|
||||
message: `Multiple matching items for code [item ${currentPairedItem.item || 0}]`,
|
||||
},
|
||||
nodeCause: destinationNodeName,
|
||||
descriptionKey: isScriptingNode(destinationNodeName, that.workflow)
|
||||
? 'pairedItemMultipleMatchesCodeNode'
|
||||
: 'pairedItemMultipleMatches',
|
||||
type: 'paired_item_multiple_matches',
|
||||
});
|
||||
// throw createExpressionError('Invalid expression', {
|
||||
// messageTemplate: `Multiple matching items for expression [item ${
|
||||
// currentPairedItem.item || 0
|
||||
// }]`,
|
||||
// functionality: 'pairedItem',
|
||||
// functionOverrides: {
|
||||
// message: `Multiple matching items for code [item ${currentPairedItem.item || 0}]`,
|
||||
// },
|
||||
// nodeCause: destinationNodeName,
|
||||
// descriptionKey: isScriptingNode(destinationNodeName, that.workflow)
|
||||
// ? 'pairedItemMultipleMatchesCodeNode'
|
||||
// : 'pairedItemMultipleMatches',
|
||||
// type: 'paired_item_multiple_matches',
|
||||
// });
|
||||
}
|
||||
|
||||
return results[0];
|
||||
|
|
|
@ -305,18 +305,9 @@ describe('WorkflowDataProxy', () => {
|
|||
}
|
||||
});
|
||||
|
||||
test('$("NodeName").item, paired item error: more than 1 matching item', (done) => {
|
||||
test('$("NodeName").item, paired item error: more than 1 matching item', () => {
|
||||
const proxy = getProxyFromFixture(fixture.workflow, fixture.run, 'PairedItemMultipleMatches');
|
||||
try {
|
||||
proxy.$('Edit Fields').item;
|
||||
done('should throw');
|
||||
} catch (error) {
|
||||
expect(error).toBeInstanceOf(ExpressionError);
|
||||
const exprError = error as ExpressionError;
|
||||
expect(exprError.message).toEqual('Invalid expression');
|
||||
expect(exprError.context.type).toEqual('paired_item_multiple_matches');
|
||||
done();
|
||||
}
|
||||
expect(proxy.$('Edit Fields').item).toEqual(undefined);
|
||||
});
|
||||
|
||||
test('$("NodeName").item, paired item error: missing paired item', (done) => {
|
||||
|
|
Loading…
Reference in a new issue