fix(Gmail Trigger Node): Prevent error for empty emails, improve type safety (#13171)

This commit is contained in:
Elias Meire
2025-02-11 12:45:55 +01:00
committed by GitHub
parent 4c19baea3d
commit 115a367cae
4 changed files with 267 additions and 73 deletions

View File

@@ -212,4 +212,63 @@ describe('GmailTrigger', () => {
expect(response).toEqual(null);
});
it('should handle duplicates and different date fields', async () => {
const messageListResponse: MessageListResponse = {
messages: [
createListMessage({ id: '1' }),
createListMessage({ id: '2' }),
createListMessage({ id: '3' }),
createListMessage({ id: '4' }),
createListMessage({ id: '5' }),
],
resultSizeEstimate: 123,
};
nock(baseUrl)
.get('/gmail/v1/users/me/labels')
.reply(200, { labels: [{ id: 'testLabelId', name: 'Test Label Name' }] });
nock(baseUrl).get(new RegExp('/gmail/v1/users/me/messages?.*')).reply(200, messageListResponse);
nock(baseUrl)
.get(new RegExp('/gmail/v1/users/me/messages/1?.*'))
.reply(200, createMessage({ id: '1', internalDate: '1727777957863', date: undefined }));
nock(baseUrl)
.get(new RegExp('/gmail/v1/users/me/messages/2?.*'))
.reply(200, createMessage({ id: '2', internalDate: undefined, date: '1727777957863' }));
nock(baseUrl)
.get(new RegExp('/gmail/v1/users/me/messages/3?.*'))
.reply(
200,
createMessage({
id: '3',
internalDate: undefined,
date: undefined,
headers: { date: 'Thu, 5 Dec 2024 08:30:00 -0800' },
}),
);
nock(baseUrl)
.get(new RegExp('/gmail/v1/users/me/messages/4?.*'))
.reply(
200,
createMessage({
id: '4',
internalDate: undefined,
date: undefined,
headers: undefined,
}),
);
nock(baseUrl).get(new RegExp('/gmail/v1/users/me/messages/5?.*')).reply(200, {});
const { response } = await testPollingTriggerNode(GmailTrigger, {
node: { parameters: { simple: true } },
workflowStaticData: {
'Gmail Trigger': {
lastTimeChecked: new Date('2024-10-31').getTime() / 1000,
possibleDuplicates: ['1'],
},
},
});
expect(response).toMatchSnapshot();
});
});