chore(Form Node): Add dropdown example (#18809)

Co-authored-by: Michael Kret <michael.k@radency.com>
This commit is contained in:
yehorkardash
2025-09-05 09:09:00 +03:00
committed by GitHub
parent 3175650a7a
commit 6456b7c07d
4 changed files with 24 additions and 4 deletions

View File

@@ -167,6 +167,9 @@ const ALLOWED_FORM_FIELDS_KEYS = [
'acceptFileTypes',
'formatDate',
'requiredField',
'fieldValue',
'elementName',
'html',
];
const ALLOWED_FIELD_TYPES = [
@@ -178,6 +181,10 @@ const ALLOWED_FIELD_TYPES = [
'password',
'text',
'textarea',
'checkbox',
'radio',
'html',
'hiddenField',
];
export const tryToParseJsonToFormFields = (value: unknown): FormFieldsParameter => {
@@ -198,7 +205,7 @@ export const tryToParseJsonToFormFields = (value: unknown): FormFieldsParameter
!['string', 'number', 'boolean'].includes(typeof field[key])
) {
field[key] = String(field[key]);
} else if (typeof field[key] === 'string') {
} else if (typeof field[key] === 'string' && key !== 'html') {
field[key] = field[key].replace(/</g, '&lt;').replace(/>/g, '&gt;');
}
@@ -243,7 +250,6 @@ export const tryToParseJsonToFormFields = (value: unknown): FormFieldsParameter
throw new ApplicationError('Value is not valid JSON');
}
return fields;
};

View File

@@ -1,6 +1,11 @@
import { DateTime, Settings } from 'luxon';
import { getValueDescription, tryToParseDateTime, validateFieldType } from '../src/type-validation';
import {
getValueDescription,
tryToParseDateTime,
tryToParseJsonToFormFields,
validateFieldType,
} from '../src/type-validation';
describe('Type Validation', () => {
describe('string-alphanumeric', () => {
@@ -359,4 +364,12 @@ describe('Type Validation', () => {
expect(result.toISO()).toEqual('2025-01-01T00:00:00.000+09:00');
});
});
describe('tryToParseJsonToFormFields', () => {
it('should parse html field', () => {
const json = '[{"fieldType": "html", "html": "<div>test</div>"}]';
const fields = tryToParseJsonToFormFields(json);
expect(fields).toEqual([{ fieldType: 'html', html: '<div>test</div>' }]);
});
});
});