message: Add test case for empty options
diff: @@ -4,6 +4,8 @@ import Select, { Option } from '../src';
  import { mount, render } from 'enzyme';
  import allowClearTest from './shared/allowClearTest';
  +const delay = timeout => new Promise(resolve => setTimeout(resolve, timeout));
  +
  describe('Select.combobox', () => {
  allowClearTest('combobox');
  @@ -112,5 +114,49 @@ describe('Select.combobox', () => {
  expect(wrapper.find('input').props().value).toBe('One');
  });
  });
  +
  + describe('hidden when filtered options is empty', () => {
  + // https://github.com/ant-design/ant-design/issues/3958
  + it.only('should popup when input with async data', () => {
  + class AsyncCombobox extends React.Component {
  + state = {
  + data: [],
  + }
  + handleChange = () => {
  + setTimeout(() => {
  + this.setState({
  + data: [{ key: '1', label: '1' }, { key: '2', label: '2' }],
  + });
  + }, 500);
  + }
  + render() {
  + const options = this.state.data.map(item => (
  + <Option key={item.key}>{item.label}</Option>
  + ));
  + return (
  + <Select
  + combobox
  + onChange={this.handleChange}
  + filterOption={false}
  + notFoundContent=""
  + >
  + {options}
  + </Select>
  + );
  + }
  + }
  + const wrapper = mount(<AsyncCombobox />);
  + wrapper.find('input').simulate('focus');
  + wrapper.find('input').simulate('change', { target: { value: '0' } });
  + return delay(1000).then(() => {
  + expect(wrapper.find('.rc-select-dropdown')
  + .hasClass('rc-select-dropdown-hidden')).toBe(false);
  + });
  + });
  +
  + // https://github.com/ant-design/ant-design/issues/6600
  + it('should not repop menu after select', () => {
  + });
  + });
  });
  });
  