eslint-plugin-jest
Version:
Eslint rules for Jest
45 lines (37 loc) • 974 B
JavaScript
;
const _require = require('./util'),
getDocsUrl = _require.getDocsUrl,
isFunction = _require.isFunction,
isTestCase = _require.isTestCase;
const RETURN_STATEMENT = 'ReturnStatement';
const BLOCK_STATEMENT = 'BlockStatement';
const getBody = args => {
if (args.length > 1 && isFunction(args[1]) && args[1].body.type === BLOCK_STATEMENT) {
return args[1].body.body;
}
return [];
};
module.exports = {
meta: {
docs: {
url: getDocsUrl(__filename)
},
messages: {
noReturnValue: 'Jest tests should not return a value.'
}
},
create(context) {
return {
CallExpression(node) {
if (!isTestCase(node)) return;
const body = getBody(node.arguments);
const returnStmt = body.find(t => t.type === RETURN_STATEMENT);
if (!returnStmt) return;
context.report({
messageId: 'noReturnValue',
node: returnStmt
});
}
};
}
};