eslint-plugin-jest
Version:
ESLint rules for Jest
53 lines (52 loc) • 1.48 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _utils = require("./utils");
const messages = {
restrictedJestMethod: 'Use of `{{ restriction }}` is disallowed',
restrictedJestMethodWithMessage: '{{ message }}'
};
var _default = exports.default = (0, _utils.createRule)({
name: __filename,
meta: {
docs: {
description: 'Disallow specific `jest.` methods'
},
type: 'suggestion',
schema: [{
type: 'object',
additionalProperties: {
type: ['string', 'null']
}
}],
messages
},
defaultOptions: [{}],
create(context, [restrictedMethods]) {
return {
CallExpression(node) {
const jestFnCall = (0, _utils.parseJestFnCall)(node, context);
if (jestFnCall?.type !== 'jest' || jestFnCall.members.length === 0) {
return;
}
const method = (0, _utils.getAccessorValue)(jestFnCall.members[0]);
if (method in restrictedMethods) {
const message = restrictedMethods[method];
context.report({
messageId: message ? 'restrictedJestMethodWithMessage' : 'restrictedJestMethod',
data: {
message,
restriction: method
},
loc: {
start: jestFnCall.members[0].loc.start,
end: jestFnCall.members[jestFnCall.members.length - 1].loc.end
}
});
}
}
};
}
});