mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-25 04:34:06 -08:00
fix(Respond to Webhook Node): Node does not work with Wait node (#10992)
This commit is contained in:
parent
2af0fbf52f
commit
2df5a5b649
|
@ -8,7 +8,16 @@ import type {
|
||||||
INodeType,
|
INodeType,
|
||||||
INodeTypeDescription,
|
INodeTypeDescription,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
import { jsonParse, BINARY_ENCODING, NodeOperationError, NodeConnectionType } from 'n8n-workflow';
|
import {
|
||||||
|
jsonParse,
|
||||||
|
BINARY_ENCODING,
|
||||||
|
NodeOperationError,
|
||||||
|
NodeConnectionType,
|
||||||
|
WEBHOOK_NODE_TYPE,
|
||||||
|
FORM_TRIGGER_NODE_TYPE,
|
||||||
|
CHAT_TRIGGER_NODE_TYPE,
|
||||||
|
WAIT_NODE_TYPE,
|
||||||
|
} from 'n8n-workflow';
|
||||||
import set from 'lodash/set';
|
import set from 'lodash/set';
|
||||||
import jwt from 'jsonwebtoken';
|
import jwt from 'jsonwebtoken';
|
||||||
import { formatPrivateKey, generatePairedItemData } from '../../utils/utilities';
|
import { formatPrivateKey, generatePairedItemData } from '../../utils/utilities';
|
||||||
|
@ -291,9 +300,10 @@ export class RespondToWebhook implements INodeType {
|
||||||
const nodeVersion = this.getNode().typeVersion;
|
const nodeVersion = this.getNode().typeVersion;
|
||||||
|
|
||||||
const WEBHOOK_NODE_TYPES = [
|
const WEBHOOK_NODE_TYPES = [
|
||||||
'n8n-nodes-base.webhook',
|
WEBHOOK_NODE_TYPE,
|
||||||
'n8n-nodes-base.formTrigger',
|
FORM_TRIGGER_NODE_TYPE,
|
||||||
'@n8n/n8n-nodes-langchain.chatTrigger',
|
CHAT_TRIGGER_NODE_TYPE,
|
||||||
|
WAIT_NODE_TYPE,
|
||||||
];
|
];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
import type { MockProxy } from 'jest-mock-extended';
|
||||||
|
import { mock } from 'jest-mock-extended';
|
||||||
|
import {
|
||||||
|
WAIT_NODE_TYPE,
|
||||||
|
type IExecuteFunctions,
|
||||||
|
type INode,
|
||||||
|
type NodeTypeAndVersion,
|
||||||
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
import { RespondToWebhook } from '../RespondToWebhook.node';
|
||||||
|
|
||||||
|
describe('RespondToWebhook Node', () => {
|
||||||
|
let respondToWebhook: RespondToWebhook;
|
||||||
|
let mockExecuteFunctions: MockProxy<IExecuteFunctions>;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
respondToWebhook = new RespondToWebhook();
|
||||||
|
mockExecuteFunctions = mock<IExecuteFunctions>();
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('execute method', () => {
|
||||||
|
it('should throw an error if no WEBHOOK_NODE_TYPES in parents', async () => {
|
||||||
|
mockExecuteFunctions.getInputData.mockReturnValue([]);
|
||||||
|
mockExecuteFunctions.getNode.mockReturnValue(mock<INode>({ typeVersion: 1.1 }));
|
||||||
|
mockExecuteFunctions.getParentNodes.mockReturnValue([
|
||||||
|
mock<NodeTypeAndVersion>({ type: 'n8n-nodes-base.someNode' }),
|
||||||
|
]);
|
||||||
|
|
||||||
|
await expect(respondToWebhook.execute.call(mockExecuteFunctions)).rejects.toThrow(
|
||||||
|
'No Webhook node found in the workflow',
|
||||||
|
);
|
||||||
|
});
|
||||||
|
it('should not throw an error if WEBHOOK_NODE_TYPES is in parents', async () => {
|
||||||
|
mockExecuteFunctions.getInputData.mockReturnValue([]);
|
||||||
|
mockExecuteFunctions.getNode.mockReturnValue(mock<INode>({ typeVersion: 1.1 }));
|
||||||
|
mockExecuteFunctions.getParentNodes.mockReturnValue([
|
||||||
|
mock<NodeTypeAndVersion>({ type: WAIT_NODE_TYPE }),
|
||||||
|
]);
|
||||||
|
mockExecuteFunctions.getNodeParameter.mockReturnValue('text');
|
||||||
|
mockExecuteFunctions.getNodeParameter.mockReturnValue({});
|
||||||
|
mockExecuteFunctions.getNodeParameter.mockReturnValue('noData');
|
||||||
|
mockExecuteFunctions.sendResponse.mockReturnValue();
|
||||||
|
|
||||||
|
await expect(respondToWebhook.execute.call(mockExecuteFunctions)).resolves.not.toThrow();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
|
@ -38,6 +38,9 @@ export const FUNCTION_NODE_TYPE = 'n8n-nodes-base.function';
|
||||||
export const FUNCTION_ITEM_NODE_TYPE = 'n8n-nodes-base.functionItem';
|
export const FUNCTION_ITEM_NODE_TYPE = 'n8n-nodes-base.functionItem';
|
||||||
export const MERGE_NODE_TYPE = 'n8n-nodes-base.merge';
|
export const MERGE_NODE_TYPE = 'n8n-nodes-base.merge';
|
||||||
export const AI_TRANSFORM_NODE_TYPE = 'n8n-nodes-base.aiTransform';
|
export const AI_TRANSFORM_NODE_TYPE = 'n8n-nodes-base.aiTransform';
|
||||||
|
export const FORM_TRIGGER_NODE_TYPE = 'n8n-nodes-base.formTrigger';
|
||||||
|
export const CHAT_TRIGGER_NODE_TYPE = '@n8n/n8n-nodes-langchain.chatTrigger';
|
||||||
|
export const WAIT_NODE_TYPE = 'n8n-nodes-base.wait';
|
||||||
|
|
||||||
export const STARTING_NODE_TYPES = [
|
export const STARTING_NODE_TYPES = [
|
||||||
MANUAL_TRIGGER_NODE_TYPE,
|
MANUAL_TRIGGER_NODE_TYPE,
|
||||||
|
|
Loading…
Reference in a new issue