UNPKG

eslint-plugin-mocha

Version:

Eslint rules for mocha.

36 lines 1.41 kB
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