From 457870953aadb54578912abb234c9d546ccbaca2 Mon Sep 17 00:00:00 2001 From: umanamente Date: Tue, 8 Apr 2025 00:54:59 -0700 Subject: [PATCH] feat(Email Trigger (IMAP) Node): IMAP trigger node returns message UIDs (#13152) --- .../nodes/EmailReadImap/test/v2/utils.test.ts | 11 ++++++++++- packages/nodes-base/nodes/EmailReadImap/v2/utils.ts | 3 +++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/nodes-base/nodes/EmailReadImap/test/v2/utils.test.ts b/packages/nodes-base/nodes/EmailReadImap/test/v2/utils.test.ts index 777f8ca8a7..afc2fe048f 100644 --- a/packages/nodes-base/nodes/EmailReadImap/test/v2/utils.test.ts +++ b/packages/nodes-base/nodes/EmailReadImap/test/v2/utils.test.ts @@ -16,6 +16,7 @@ describe('Test IMap V2 utils', () => { const message = { attributes: { uuid: 1, + uid: 873, struct: {}, }, parts: [ @@ -25,7 +26,6 @@ describe('Test IMap V2 utils', () => { ], }; - const staticData: IDataObject = {}; const imapConnection = mock({ search: jest.fn().mockReturnValue(Promise.resolve([message])), }); @@ -42,6 +42,9 @@ describe('Test IMap V2 utils', () => { headers: { '': 'Body content' }, headerLines: undefined, html: false, + attributes: { + uid: 873, + }, }, binary: undefined, }, @@ -55,6 +58,9 @@ describe('Test IMap V2 utils', () => { metadata: { '0': 'h', }, + attributes: { + uid: 873, + }, }, }, }, @@ -67,6 +73,9 @@ describe('Test IMap V2 utils', () => { ]; expectedResults.forEach(async (expectedResult) => { + // use new staticData for each iteration + const staticData: IDataObject = {}; + triggerFunctions.getNodeParameter .calledWith('format') .mockReturnValue(expectedResult.format); diff --git a/packages/nodes-base/nodes/EmailReadImap/v2/utils.ts b/packages/nodes-base/nodes/EmailReadImap/v2/utils.ts index 7e9f35a2f0..a4bcff19d3 100644 --- a/packages/nodes-base/nodes/EmailReadImap/v2/utils.ts +++ b/packages/nodes-base/nodes/EmailReadImap/v2/utils.ts @@ -149,6 +149,9 @@ export async function getNewEmails( textHtml: await getText(parts, message, 'html'), textPlain: await getText(parts, message, 'plain'), metadata: {} as IDataObject, + attributes: { + uid: message.attributes.uid, + } as IDataObject, }, };