eslint-plugin-ava
Version:
ESLint rules for AVA
56 lines (48 loc) • 993 B
JavaScript
const {visitIf} = require('enhance-visitors');
const util = require('../util');
const createAvaRule = require('../create-ava-rule');
const modifiers = new Set([
'after',
'afterEach',
'always',
'before',
'beforeEach',
'default',
'only',
'serial',
'skip',
'todo',
'failing',
'macro',
]);
const unknownModifiers = node => util.getTestModifiers(node)
.filter(modifier => !modifiers.has(modifier.name));
const create = context => {
const ava = createAvaRule();
return ava.merge({
CallExpression: visitIf([
ava.isInTestFile,
ava.isTestNode,
])(node => {
const unknown = unknownModifiers(node);
if (unknown.length > 0) {
context.report({
node: unknown[0],
message: `Unknown test modifier \`.${unknown[0].name}\`.`,
});
}
}),
});
};
module.exports = {
create,
meta: {
type: 'problem',
docs: {
description: 'Disallow the use of unknown test modifiers.',
url: util.getDocsUrl(__filename),
},
schema: [],
},
};
;