title: Mocha tests for expressjs 4, spying on a function called in a promise, tests fail silently
body: <p>I have some tests that look like this:</p>
  
  <pre><code>it('does stuff', function(done) {
    somePromise.then(function () {
      expect(someSpy).to.have.been.called
      done()
    })
  })
  </code></pre>
  
  <p>If the assertion in that test fails, it will fail silently, and the test itself will timeout because <code>done()</code> is never reached. For example, this: </p>
  
  <pre><code>it('does stuff', function(done) {
    expect(1).to.equal(2)
  
    somePromise.then(function () {
      expect(someSpy).to.have.been.called
      done()
    })
  })
  </code></pre>
  
  <p>will fail with a nice error explaining that we were expecting 1 but got 2. However, this: </p>
  
  <pre><code>it('does stuff', function(done) {
    somePromise.then(function () {
      expect(1).to.equal(2)
  
      expect(someSpy).to.have.been.called
      done()
    })
  })
  </code></pre>
  
  <p>will fail due to timeout. I gather the issue is that I'm not in the "it" context, but what's the best way to deal with this? </p>