title: Sinon useFakeTimers() creates a timeout in before/afterEach
body: <p>I'm using Sinon with Mocha to test some expiration date values. I used the same code a few months ago and it worked fine, but somewhere between v1.12.x and v1.17.x, something has changed and I can't seem to find the right path.</p>
  
  <pre><code>let sinon = require('sinon');
  describe('USER &amp; AUTHENTICATION ENDPOINTS', function(done) {
      beforeEach(function() {
          this.clock = sinon.useFakeTimers(new Date().getTime());
          return fixtures.load(data);
      });
      afterEach(function() {
          this.clock.restore();
          return fixtures.clear(data);
      });
  
      context('POST /users', function() { ... }
  });
  </code></pre>
  
  <ul>
  <li>I've tried with and without the <code>new Date().getTime()</code> argument.</li>
  <li>I've tried passing in and explicitly calling <code>done()</code>.</li>
  <li>I've tried removing my fixture load/clear processes.</li>
  </ul>
  
  <p>The end result is always the same:</p>
  
  <pre><code>Error: timeout of 5000ms exceeded. Ensure the done() callback is being called in this test.
  </code></pre>
  
  <p>Has something changed that I just haven't noticed in the documentation? Do I have some kind of error in there that I can't see?</p>
  
  <p>Any thoughts would be appreciated.</p>
  
  <p><strong>UPDATE</strong></p>
  
  <p>So a little more info here. This clearly has something to do with my code, but I'm at a loss. </p>
  
  <p>If I comment every actual test, the tests run and give me a green "0 passing".</p>
  
  <p>If I run an actual test, even one that just this:</p>
  
  <pre><code>context('POST /users', function() {
      it('should create a new user', function(done) {
          done();
      })
  });
  </code></pre>
  
  <p>I'm right back to the timeout. What am I missing?</p>