mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
65 lines
1.5 KiB
TypeScript
65 lines
1.5 KiB
TypeScript
import type { IWebhookFunctions } from 'n8n-workflow';
|
|
|
|
import { Github } from '../../Github.node';
|
|
|
|
describe('Github Node - Webhook Method', () => {
|
|
let githubNode: Github;
|
|
let mockWebhookFunctions: IWebhookFunctions;
|
|
|
|
beforeEach(() => {
|
|
githubNode = new Github();
|
|
|
|
mockWebhookFunctions = {
|
|
getRequestObject: jest.fn(),
|
|
getResponseObject: jest.fn(),
|
|
getNodeParameter: jest.fn(),
|
|
getNode: jest.fn(),
|
|
helpers: {
|
|
returnJsonArray: jest.fn(),
|
|
},
|
|
} as unknown as IWebhookFunctions;
|
|
});
|
|
|
|
it('should process webhook request and return workflowData', async () => {
|
|
const sampleWebhookBody = {
|
|
action: 'opened',
|
|
issue: {
|
|
number: 123,
|
|
title: 'Test Issue',
|
|
body: 'This is a test issue',
|
|
user: {
|
|
login: 'testuser',
|
|
},
|
|
},
|
|
repository: {
|
|
name: 'test-repo',
|
|
owner: {
|
|
login: 'test-owner',
|
|
},
|
|
},
|
|
};
|
|
|
|
const mockRequestObject = {
|
|
body: sampleWebhookBody,
|
|
headers: {
|
|
'x-github-event': 'issues',
|
|
'x-github-delivery': '72d3162e-cc78-11e3-81ab-4c9367dc0958',
|
|
},
|
|
};
|
|
|
|
(mockWebhookFunctions.getRequestObject as jest.Mock).mockReturnValue(mockRequestObject);
|
|
(mockWebhookFunctions.helpers.returnJsonArray as jest.Mock).mockReturnValue([
|
|
sampleWebhookBody,
|
|
]);
|
|
|
|
const result = await githubNode.webhook.call(mockWebhookFunctions);
|
|
|
|
expect(result).toEqual({
|
|
workflowData: [[sampleWebhookBody]],
|
|
});
|
|
|
|
expect(mockWebhookFunctions.getRequestObject).toHaveBeenCalled();
|
|
expect(mockWebhookFunctions.helpers.returnJsonArray).toHaveBeenCalledWith(sampleWebhookBody);
|
|
});
|
|
});
|