eslint-plugin-jest
Version:
ESLint rules for Jest
59 lines (58 loc) • 1.32 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _utils = require("./utils");
var _default = exports.default = (0, _utils.createRule)({
name: __filename,
meta: {
docs: {
description: 'Enforces a maximum depth to nested describe calls'
},
messages: {
exceededMaxDepth: 'Too many nested describe calls ({{ depth }}) - maximum allowed is {{ max }}'
},
type: 'suggestion',
schema: [{
type: 'object',
properties: {
max: {
type: 'integer',
minimum: 0
}
},
additionalProperties: false
}]
},
defaultOptions: [{
max: 5
}],
create(context, [{
max
}]) {
const describes = [];
return {
CallExpression(node) {
if ((0, _utils.isTypeOfJestFnCall)(node, context, ['describe'])) {
describes.unshift(node);
if (describes.length > max) {
context.report({
node,
messageId: 'exceededMaxDepth',
data: {
depth: describes.length,
max
}
});
}
}
},
'CallExpression:exit'(node) {
if (describes[0] === node) {
describes.shift();
}
}
};
}
});
;