選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 

45 行
1.2 KiB

'use strict';
const createAstUtils = require('../util/ast');
module.exports = {
meta: {
type: 'suggestion',
docs: {
description: 'Disallow hooks'
},
schema: [
{
type: 'object',
properties: {
allow: {
type: 'array',
items: {
type: 'string'
}
}
},
additionalProperties: false
}
]
},
create(context) {
const astUtils = createAstUtils(context.settings);
const [ config = {} ] = context.options;
const { allow = [] } = config;
return {
CallExpression(node) {
const isHookAllowed = allow.includes(node.callee.name);
if (astUtils.isHookIdentifier(node.callee) && !isHookAllowed) {
context.report({
node: node.callee,
message: `Unexpected use of Mocha \`${ node.callee.name }\` hook`
});
}
}
};
}
};