'use strict'; module.exports = { env: { mocha: true, }, extends: [ './index.js', 'plugin:mocha/recommended', ], plugins: [ 'mocha', ], rules: { 'mocha/no-hooks-for-single-case': 'off', 'mocha/no-return-from-async': 'error', // Disabled due to false positives: // - https://github.com/lo1tuma/eslint-plugin-mocha/issues/274 // - Using a loop to define tests can trigger it unless the logic is trivial. 'mocha/no-setup-in-describe': 'off', 'mocha/no-synchronous-tests': 'error', 'mocha/prefer-arrow-callback': 'error', // The node/no-unpublished-require rule considers devDependencies to be unpublished. Downgrade // the severity to warn for test code so that test code can require something from // devDependencies without causing the lint check to fail. Alternatives: // - Set it to 'off' for test code. This would silence warnings about "acceptable" uses of // devDependencies, but it would also hide true bugs. // - Add test code to .npmignore. This would cause the test code to also be considered // unpublished, so the rule wouldn't complain about depending on someting that is // unpublished. Unfortunately, .npmignore is tricky to get right, it can be dangerous (for // example, it's easy to accidentally publish credentials saved in dot files), and it // imposes a burden on all users of this config. // - Parse package.json and add all of the devDependencies to this rule's allowModules // setting. Example of this approach: // https://github.com/mysticatea/eslint-plugin-node/issues/47#issuecomment-629777952 // Unfortunately it is not feasible to find the user's package.json so this approach is not // usable here. 'node/no-unpublished-require': 'warn', 'prefer-arrow-callback': 'off', 'prefer-arrow/prefer-arrow-functions': 'off', }, };