UNPKG

eslint-plugin-jest

Version:
41 lines (35 loc) 1.31 kB
'use strict'; const _require = require('./util'), getDocsUrl = _require.getDocsUrl, expectCase = _require.expectCase, expectNotCase = _require.expectNotCase, expectResolveCase = _require.expectResolveCase, expectRejectCase = _require.expectRejectCase, method = _require.method; module.exports = { meta: { docs: { url: getDocsUrl(__filename) }, messages: { useToHaveLength: 'Use toHaveLength() instead' }, fixable: 'code' }, create(context) { return { CallExpression(node) { if (!(expectNotCase(node) || expectResolveCase(node) || expectRejectCase(node)) && expectCase(node) && (method(node).name === 'toBe' || method(node).name === 'toEqual') && node.arguments[0].property && node.arguments[0].property.name === 'length') { const propertyDot = context.getSourceCode().getFirstTokenBetween(node.arguments[0].object, node.arguments[0].property, token => token.value === '.'); context.report({ fix(fixer) { return [fixer.remove(propertyDot), fixer.remove(node.arguments[0].property), fixer.replaceText(method(node), 'toHaveLength')]; }, messageId: 'useToHaveLength', node: method(node) }); } } }; } };