Expected "Resolution method is overspecified"

Prerequisites

  • Checked that your issue hasn't already been filed by cross-referencing issues with the faq label
  • Checked next-gen ES issues and syntax problems by using the same environment and/or transpiler configuration without Mocha to ensure it isn't just a feature that actually isn't supported in the environment in question or a bug in your code.
  • 'Smoke tested' the code to be tested by running it outside the real test suite to get a better sense of whether the problem is in the code under test, your usage of Mocha, or Mocha itself
  • Ensured that there is no discrepancy between the locally and globally installed versions of Mocha. You can find them with: node node_modules/.bin/mocha --version(Local) and mocha --version(Global). We recommend that you not install Mocha globally.

Description

Creating test with an async function which calls done synchronously does not result in the "Resolution method is overspecified" error.

Steps to Reproduce

Run the following test with mocha 6.2.2:

it('should throw overspecified resolution', async (done) => {
  done();
});

Expected behavior: Error: Resolution method is overspecified. Specify a callback *or* return a Promise; not both.

Actual behavior: The test passes.

Reproduces how often: Every time.

Versions

  • mocha 6.2.2 (I tested local install only)
  • node 8+
  • Fedora 30 / x86_64
  • bash shell
  • No additional modules installed (npm i mocha only)