title: Button disabled attribute is not updated correctly when two renders of the same component are performed
body: <p>I have just started using react-testing-library, so am guessing this is ultimately down to user error, but I am seeing the following behaviour which does not make sense to me.</p>
  
  <p>For the following test run in a freshly created CRA application and using jest-dom 3.0.0 and react-testing-library 5.4.4:</p>
  
  <pre><code>
      import React from "react";
      import { render } from "react-testing-library";
      import "jest-dom/extend-expect";
  
      import Component from "./Component";
  
      describe("Verify UI state based on jobs", () =&gt; {
        it("mounts with no previous data", () =&gt; {
          const { getByTestId } = render(&lt;Component data={[]} /&gt;);
          expect(getByTestId("refresh-button")).toBeDisabled();
        });
  
        it("mounts with previous data", () =&gt; {
          const { getByTestId } = render(&lt;Component data={["hi"]} /&gt;);
          expect(getByTestId("refresh-button")).not.toBeDisabled();
        });
      });
  
      /*
      const Component = props =&gt; {
        return (
          &lt;div&gt;
            &lt;button data-testid="refresh-button" disabled={props.data.length === 0}&gt;
              Refresh
            &lt;/button&gt;
          &lt;/div&gt;
        );
      };
      */
  
  </code></pre>
  
  <p>As things are I get the following failure:</p>
  
  <p>Verify UI state based on jobs › mounts with previous data</p>
  
  <pre><code>expect(element).not.toBeDisabled()
  
  Received element is disabled:
    &lt;button data-testid="refresh-button" disabled="" /&gt;
  
    13 |   it("mounts with previous data", async () =&gt; {
    14 |     const { getByTestId } = render(&lt;Component data={["hi"]} /&gt;);
  &gt; 15 |     expect(getByTestId("refresh-button")).not.toBeDisabled();
       |                                               ^
    16 |   });
    17 | });
    18 |
  
    at Object.toBeDisabled (src/Component.test.js:15:47)
  </code></pre>
  
  <p>However, if I disable the first test, the second now passes as it should. If I reorder things, the first test always passes and the second always fails, even if the first test is the 'mount with pervious data' test. </p>
  
  <p>Not sure if this is an issue in the test library, jest-dom or my code, but any advice on how to correctly construct these tests would be appreciated.</p>