title: Cannot set value of select element inside component with Enzyme
body: <p>I've been trying to set the value for a select element inside the <code>Dropdown</code> component, but the test keeps failing.</p>
  <p><a href="https://codesandbox.io/s/quizzical-stallman-stf98?file=/src/Dropdown.tsx" rel="nofollow noreferrer">Here</a> is a codesandbox of the component to test.</p>
  <pre><code>it('should execute onChange once and change value to &quot;item2&quot;', () =&gt; {
          const onChangeMock = jest.fn();
          const wrapper = mount(
              &lt;Dropdown{ ...args } 
                  onChange={ onChangeMock } 
                  listItems={ ['item1', 'item2', 'item3'] } /&gt;
          );
  
      
          wrapper.find('select').simulate('change', { value: 'item2' });
  
          console.log(wrapper.debug());
          console.log(wrapper.find('select').props());
          
          expect(wrapper.find('select').props().value).toBe('item2');
          expect(onChangeMock.mock.calls.length).toBe(1);
      });
  </code></pre>
  <p>Output after running <code>npm run test</code>:</p>
  <blockquote>
  <pre><code> expect(received).toBe(expected) // Object.is equality
   Expected: &quot;item2&quot;
   Received: undefined
  
   51 |         console.log(wrapper.find('select').props());
   52 |         
   53 |         expect(wrapper.find('select').props().value).toBe('item2');
      |                                                      ^
   54 |         expect(onChangeMock.mock.calls.length).toBe(1);
   55 |     });
   56 | });
  </code></pre>
  </blockquote>
  <pre><code>console.log
      &lt;Dropdown id=&quot;&quot; name=&quot;&quot; label=&quot;&quot; placeholder=&quot;&quot; errorMessage=&quot;&quot; valid={false} required={false} listItems={{...}} onChange={[Function: mockConstructor] { _isMockFunction: true, getMockImplementation: [Function (anonymous)], mock: Object [Object: null prototype] { calls: [ [ SyntheticBaseEvent { _reactName: 'onChange', _targetInst: [Object], type: 'change', nativeEvent: [Object], target: [Object], currentTarget: null, eventPhase: undefined, bubbles: undefined, cancelable: undefined, timeStamp: 1637655017281, defaultPrevented: undefined, isTrusted: undefined, isDefaultPrevented: [Function: functionThatReturnsFalse], isPropagationStopped: [Function: functionThatReturnsFalse], value: 'item2', _dispatchListeners: null, _dispatchInstances: null } ] ], instances: [ undefined ], invocationCallOrder: [ 1 ], results: [ Object [Object: null prototype] { type: 'return', value: undefined } ] }, mockClear: [Function (anonymous)], mockReset: [Function (anonymous)], mockRestore: [Function (anonymous)], mockReturnValueOnce: [Function (anonymous)], mockResolvedValueOnce: [Function (anonymous)], mockRejectedValueOnce: [Function (anonymous)], mockReturnValue: [Function (anonymous)], mockResolvedValue: [Function (anonymous)], mockRejectedValue: [Function (anonymous)], mockImplementationOnce: [Function (anonymous)], mockImplementation: [Function (anonymous)], mockReturnThis: [Function (anonymous)], mockName: [Function (anonymous)], getMockName: [Function (anonymous)] }}&gt;
        &lt;div className=&quot;med-dropdown&quot;&gt;
          &lt;label htmlFor=&quot;&quot; className=&quot;med-dropdown__label&quot;&gt;
             (Optional)
          &lt;/label&gt;
          &lt;select id=&quot;&quot; name=&quot;&quot; className=&quot;med-dropdown__select false&quot; defaultValue={0} onChange={[Function: mockConstructor] { _isMockFunction: true, getMockImplementation: [Function (anonymous)], mock: Object [Object: null prototype] { calls: [ [ SyntheticBaseEvent { _reactName: 'onChange', _targetInst: [Object], type: 'change', nativeEvent: [Object], target: [Object], currentTarget: null, eventPhase: undefined, bubbles: undefined, cancelable: undefined, timeStamp: 1637655017281, defaultPrevented: undefined, isTrusted: undefined, isDefaultPrevented: [Function: functionThatReturnsFalse], isPropagationStopped: [Function: functionThatReturnsFalse], value: 'item2', _dispatchListeners: null, _dispatchInstances: null } ] ], instances: [ undefined ], invocationCallOrder: [ 1 ], results: [ Object [Object: null prototype] { type: 'return', value: undefined } ] }, mockClear: [Function (anonymous)], mockReset: [Function (anonymous)], mockRestore: [Function (anonymous)], mockReturnValueOnce: [Function (anonymous)], mockResolvedValueOnce: [Function (anonymous)], mockRejectedValueOnce: [Function (anonymous)], mockReturnValue: [Function (anonymous)], mockResolvedValue: [Function (anonymous)], mockRejectedValue: [Function (anonymous)], mockImplementationOnce: [Function (anonymous)], mockImplementation: [Function (anonymous)], mockReturnThis: [Function (anonymous)], mockName: [Function (anonymous)], getMockName: [Function (anonymous)] }} onFocus={[Function: onFocus]} onBlur={[Function: onBlur]} disabled={[undefined]}&gt;
            &lt;option disabled={true} value={0} /&gt;
            &lt;option value=&quot;item1&quot;&gt;
              item1
            &lt;/option&gt;
            &lt;option value=&quot;item2&quot;&gt;
              item2
            &lt;/option&gt;
            &lt;option value=&quot;item3&quot;&gt;
              item3
            &lt;/option&gt;
          &lt;/select&gt;
        &lt;/div&gt;
      &lt;/Dropdown&gt;
  </code></pre>