title: Test method is overspecified
body: <p>I have this <code>before</code> function in my test:</p>
  
  <pre><code>before((done) =&gt; {
          const cognito = new Cognito();
          return cognito.authUser(
            'john@doe.com',
            'password',
          )
        .then((res) =&gt; {
          AuthToken += res.AuthenticationResult.IdToken;
          done();
        })
        .catch((err) =&gt; {
          done(err);
        });
    });
  </code></pre>
  
  <p>It throws this error:</p>
  
  <pre><code>Error: Resolution method is overspecified. Specify a callback *or* return a Promise; not both.
  </code></pre>
  
  <p>I thought this may have been the fix:</p>
  
  <pre><code>before((done) =&gt; {
          const cognito = new Cognito();
          return new Promise(function(resolve) {
            cognito.authUser(
              'john@doe.com',
              'password',
            )
          })
        .then((res) =&gt; {
          AuthToken += res.AuthenticationResult.IdToken;
          done();
        })
        .catch((err) =&gt; {
          done(err);
        });
    });
  </code></pre>
  
  <p>but it gives me this error:</p>
  
  <pre><code>Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
  </code></pre>
  
  <p>How do I resolve this?</p>