What is the point of the done() callback?
<p>In Mochajs, they use <code>done()</code> to test for asynchronous code, like so:</p>

<pre><code>describe('User', function() {
  describe('#save()', function() {
    it('should save without error', function(done) {
      var user = new User('Luna');
      user.save(function(err) {
        if (err) throw err;
        done();
      });
    });
  });
});
</code></pre>

<p>What does this mean exactly? I did <code>console.log(done.toString())</code> and I got this: </p>

<pre><code>function (err) {
  if (err instanceof Error || toString.call(err) === '[object Error]') {
    return done(err);
  }
  if (err) {
    if (Object.prototype.toString.call(err) === '[object Object]') {
      return done(new Error('done() invoked with non-Error: '
        + JSON.stringify(err)));
    }
    return done(new Error('done() invoked with non-Error: ' + err));
  }
  done();
}
</code></pre>

<p>Is the <code>done()</code> at the very end here different than the <code>done()</code> in the first piece of code? </p>