title: mocha, mongoose - done() called multiple times
body: <p>I have test suite for testing user registration:</p>
  
  <pre class="lang-js prettyprint-override"><code>const chai = require('chai');
  const chaiHttp = require('chai-http');
  const { app } = require('../../');
  const {User} = require('../../models/');
  
  chai.use(chaiHttp);
  
  describe('Register new user', () =&gt; {
  
      it('it should register new user and return data', done =&gt; {
          done();
          chai.request(app)
          .post('/api/users')
          .send({name: 'Alex', email:'alex@gmail.com', password: 'alextest'})
          .then(res =&gt; {
              console.log('1-st done called');
              done();
  
          });
      });
  
      it('it should display not provided data error', done =&gt; {
          chai.request(app)
          .post('/api/users')
          .send({})
          .then(res =&gt; {
              chai.expect(res).to.have.status(400);
              chai.expect(res.body.errors).to.be.an('object');
              chai.expect(res.body.errors).to.have.ownProperty('password');
              chai.expect(res.body.errors).to.have.ownProperty('email');
              chai.expect(res.body.errors).to.have.ownProperty('name');
              done();
          });
      });
  
      after(done =&gt; {
          User.deleteMany({}, err =&gt; {
              done();
          });
      });
  
  });
  </code></pre>
  
  <p>And every time i run this test. There is an error. If i remove it('it should display not provided data error') test as result test suite is passed. But with this two tast cases in one test case one always be failing.</p>
  
  <pre><code>Server running on port 3000
  api_1    |   Register new user
  api_1    |     ✓ it should register new user and return data
  api_1    | 2-cnd done called
  api_1    |     ✓ it should display not provided data error
  api_1    | 1-st done called
  api_1    |     1) it should register new user and return data
  api_1    | done delete many called
  api_1    | 
  api_1    | 
  api_1    |   2 passing (121ms)
  api_1    |   1 failing
  api_1    | 
  api_1    |   1) Register new user
  api_1    |        it should register new user and return data:
  api_1    |      Error: done() called multiple times
  api_1    |       at /usr/src/app/test/it/auth.js:18:13
  api_1    |       at processTicksAndRejections (internal/process/task_queues.js:94:5)
  </code></pre>
  
  <p>Cant figure out what i`m doing wrong...</p>