mirror of
https://github.com/n8n-io/n8n.git
synced 2025-02-21 02:56:40 -08:00
fix(n8n Form Trigger Node): When clicking on a multiple choice label, the wrong one is selected (#11059)
This commit is contained in:
parent
3c7556542c
commit
948edd1a04
|
@ -211,9 +211,51 @@ describe('FormTrigger, prepareFormData', () => {
|
||||||
|
|
||||||
expect(result.formFields[0].isMultiSelect).toBe(true);
|
expect(result.formFields[0].isMultiSelect).toBe(true);
|
||||||
expect(result.formFields[0].multiSelectOptions).toEqual([
|
expect(result.formFields[0].multiSelectOptions).toEqual([
|
||||||
{ id: 'option0', label: 'Red' },
|
{ id: 'option0_field-0', label: 'Red' },
|
||||||
{ id: 'option1', label: 'Blue' },
|
{ id: 'option1_field-0', label: 'Blue' },
|
||||||
{ id: 'option2', label: 'Green' },
|
{ id: 'option2_field-0', label: 'Green' },
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
it('should correctly handle multiselect fields with unique ids', () => {
|
||||||
|
const formFields: FormField[] = [
|
||||||
|
{
|
||||||
|
fieldLabel: 'Favorite Colors',
|
||||||
|
fieldType: 'text',
|
||||||
|
requiredField: true,
|
||||||
|
multiselect: true,
|
||||||
|
fieldOptions: { values: [{ option: 'Red' }, { option: 'Blue' }, { option: 'Green' }] },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fieldLabel: 'Favorite Colors',
|
||||||
|
fieldType: 'text',
|
||||||
|
requiredField: true,
|
||||||
|
multiselect: true,
|
||||||
|
fieldOptions: { values: [{ option: 'Red' }, { option: 'Blue' }, { option: 'Green' }] },
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const query = { 'Favorite Colors': 'Red,Blue' };
|
||||||
|
|
||||||
|
const result = prepareFormData({
|
||||||
|
formTitle: 'Test Form',
|
||||||
|
formDescription: 'This is a test form',
|
||||||
|
formSubmittedText: 'Thank you',
|
||||||
|
redirectUrl: 'example.com',
|
||||||
|
formFields,
|
||||||
|
testRun: false,
|
||||||
|
query,
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(result.formFields[0].isMultiSelect).toBe(true);
|
||||||
|
expect(result.formFields[0].multiSelectOptions).toEqual([
|
||||||
|
{ id: 'option0_field-0', label: 'Red' },
|
||||||
|
{ id: 'option1_field-0', label: 'Blue' },
|
||||||
|
{ id: 'option2_field-0', label: 'Green' },
|
||||||
|
]);
|
||||||
|
expect(result.formFields[1].multiSelectOptions).toEqual([
|
||||||
|
{ id: 'option0_field-1', label: 'Red' },
|
||||||
|
{ id: 'option1_field-1', label: 'Blue' },
|
||||||
|
{ id: 'option2_field-1', label: 'Green' },
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -83,7 +83,7 @@ export function prepareFormData({
|
||||||
input.isMultiSelect = true;
|
input.isMultiSelect = true;
|
||||||
input.multiSelectOptions =
|
input.multiSelectOptions =
|
||||||
field.fieldOptions?.values.map((e, i) => ({
|
field.fieldOptions?.values.map((e, i) => ({
|
||||||
id: `option${i}`,
|
id: `option${i}_${input.id}`,
|
||||||
label: e.option,
|
label: e.option,
|
||||||
})) ?? [];
|
})) ?? [];
|
||||||
} else if (fieldType === 'file') {
|
} else if (fieldType === 'file') {
|
||||||
|
|
Loading…
Reference in a new issue