|
'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',
|
|
},
|
|
};
|