UNPKG

eslint-plugin-jest

Version:
63 lines (62 loc) 1.53 kB
"use strict"; 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: 'Disallow conditional logic in tests' }, messages: { conditionalInTest: 'Avoid having conditionals in tests' }, type: 'problem', schema: [{ type: 'object', properties: { allowOptionalChaining: { type: 'boolean' } }, additionalProperties: false }] }, defaultOptions: [{ allowOptionalChaining: true }], create(context, [{ allowOptionalChaining }]) { let inTestCase = false; const maybeReportConditional = node => { if (inTestCase) { context.report({ messageId: 'conditionalInTest', node }); } }; return { CallExpression(node) { if ((0, _utils.isTypeOfJestFnCall)(node, context, ['test'])) { inTestCase = true; } }, 'CallExpression:exit'(node) { if ((0, _utils.isTypeOfJestFnCall)(node, context, ['test'])) { inTestCase = false; } }, IfStatement: maybeReportConditional, SwitchStatement: maybeReportConditional, ConditionalExpression: maybeReportConditional, LogicalExpression: maybeReportConditional, ...(!allowOptionalChaining && { ChainExpression: maybeReportConditional }) }; } });