title: Sinon clock.tick doesn't advance time for setTimeout
body: <p>I am writing a test for an <code>async</code> function which performs a series of tasks and at one point waits for 60 seconds before doing some more tasks. I am trying to use <code>sinon.useFakeTimers()</code> to skip those 60 seconds so that I can test the logic after the delay.</p>
  
  <p>foo.js</p>
  
  <pre><code>module.exports.foo = async f =&gt; {
    // ... more code ...
    await new Promise((resolve, reject) =&gt; {
      setTimeout(resolve, 60000);
    });
    // ... more code ...
    f();
    // ... more code ...
  };
  </code></pre>
  
  <p>test-foo.js</p>
  
  <pre><code>const sinon = require('sinon');
  const expect = require('chai').expect;
  
  const { foo } = require('./foo');
  
  describe('Module Foo ', function() {
    it('call function after 1 minute', function() {
      var clock = sinon.useFakeTimers();
      const bar = sinon.stub();
  
      foo(bar);
      expect(bar.called).to.be.false;
      clock.tick(100000);
      expect(bar.called).to.be.true; // this one fails
    });
  });
  </code></pre>
  
  <p>I tried putting <code>sinon.useFakeTimers();</code> in various other places, but the Promise doesn't resolve and the stub I pass into <code>foo</code> doesn't get called.</p>