diff --git a/packages/material-ui-lab/src/Autocomplete/Autocomplete.test.js b/packages/material-ui-lab/src/Autocomplete/Autocomplete.test.js index 457b1095add98f..3411cdcbf0a4f3 100644 --- a/packages/material-ui-lab/src/Autocomplete/Autocomplete.test.js +++ b/packages/material-ui-lab/src/Autocomplete/Autocomplete.test.js @@ -720,4 +720,26 @@ describe('', () => { expect(options.length).to.equal(1); }); }); + + describe('prop: freeSolo', () => { + it('pressing twice enter should not call onChange listener twice', () => { + const handleChange = spy(); + const options = [{ name: 'foo' }]; + render( + option.name} + renderInput={params => } + />, + ); + fireEvent.keyDown(document.activeElement, { key: 'ArrowDown' }); + fireEvent.keyDown(document.activeElement, { key: 'Enter' }); + expect(handleChange.callCount).to.equal(1); + expect(handleChange.args[0][1]).to.deep.equal(options[0]); + fireEvent.keyDown(document.activeElement, { key: 'Enter' }); + expect(handleChange.callCount).to.equal(1); + }); + }); }); diff --git a/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js b/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js index 95d714e81d4ec9..38f9ee430afd72 100644 --- a/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js +++ b/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js @@ -579,7 +579,7 @@ export default function useAutocomplete(props) { inputRef.current.value.length, ); } - } else if (freeSolo && inputValue !== '') { + } else if (freeSolo && inputValueFilter !== '') { selectNewValue(event, inputValue); } break;