title: What is the point of the done() callback?
body: <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>