eslint-plugin-mocha
Version:
Eslint rules for mocha.
36 lines • 1.41 kB
JavaScript
import { createMochaVisitors } from "../ast/mocha-visitors.js";
import { getRuleOption } from "../rule-options.js";
import { allowMochaCallOptionSchema, defaultAllowMochaCallOption, normalizeMochaCallName } from "./mocha-call-allowance.js";
export const noHooksRule = {
meta: {
type: 'suggestion',
docs: {
description: 'Disallow hooks',
recommended: false,
url: 'https://github.com/lo1tuma/eslint-plugin-mocha/blob/main/documentation/rules/no-hooks.md'
},
schema: [allowMochaCallOptionSchema],
defaultOptions: [defaultAllowMochaCallOption],
messages: {
unexpectedHook: 'Unexpected use of Mocha `{{name}}` hook'
},
languages: ['js/js']
},
create(context) {
const { allow } = getRuleOption(context);
const allowList = new Set(allow.map(normalizeMochaCallName));
return createMochaVisitors(context, {
hook(visitorContext) {
const isHookAllowed = allowList.has(visitorContext.name);
if (!isHookAllowed) {
context.report({
node: visitorContext.node,
messageId: 'unexpectedHook',
data: { name: visitorContext.name }
});
}
}
});
}
};
//# sourceMappingURL=no-hooks.js.map