fix(Wait Node): Resolve expressions inside Custom HTML form fields (#30060)

This commit is contained in:
Michael Kret 2026-05-11 09:51:45 +03:00 committed by GitHub
parent f63567b1ec
commit 7c1a77154c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 37 additions and 0 deletions

View File

@ -547,6 +547,33 @@ describe('FormTrigger, formWebhook', () => {
});
});
it('should resolve expressions inside html field content', async () => {
const mockRender = jest.fn();
const formFields: FormFieldsParameter = [
{
fieldLabel: 'Custom HTML',
fieldType: 'html',
html: '<div>{{ $json.test }}</div>',
requiredField: false,
},
];
executeFunctions.getNodeParameter.calledWith('formFields.values').mockReturnValue(formFields);
executeFunctions.evaluateExpression
.calledWith('{{ $json.test }}')
.mockReturnValue('TEST VALUE' as any);
executeFunctions.getResponseObject.mockReturnValue({
render: mockRender,
setHeader: jest.fn(),
} as any);
await formWebhook(executeFunctions);
const renderArgs = mockRender.mock.calls[0][1];
expect(renderArgs.formFields[0].html).toBe('<div>TEST VALUE</div>');
});
it('should sanitize form descriptions', async () => {
const mockRender = jest.fn();

View File

@ -630,6 +630,16 @@ export async function formWebhook(
const mode = context.getMode() === 'manual' ? 'test' : 'production';
const formFields = context.getNodeParameter('formFields.values', []) as FormFieldsParameter;
for (const field of formFields) {
if (field.fieldType === 'html') {
let html = field.html ?? '';
for (const resolvable of getResolvables(html)) {
html = html.replace(resolvable, context.evaluateExpression(resolvable) as string);
}
field.html = html;
}
}
const method = context.getRequestObject().method;
validateResponseModeConfiguration(context);