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;