This commit is contained in:
Michael Kret 2024-09-20 08:07:34 +03:00 committed by GitHub
commit e11f3f4bf7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 21 additions and 28 deletions

View file

@ -1291,7 +1291,7 @@ export class WorkflowExecute {
pairedItemData,
);
if (constPairedItem === null) {
if (constPairedItem === null || constPairedItem === undefined) {
errorItems.push(item);
} else {
errorItems.push({

View file

@ -1954,7 +1954,7 @@ export interface IWorkflowDataProxyData {
destinationNodeName: string,
incomingSourceData: ISourceData | null,
pairedItem: IPairedItemData,
) => INodeExecutionData | null;
) => INodeExecutionData | null | undefined;
constructor: any;
}

View file

@ -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];

View file

@ -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) => {