eslint-plugin-jest-dom
Advanced tools
Comparing version 3.1.7 to 3.2.0
@@ -35,2 +35,3 @@ "use strict"; | ||
arguments: [{ | ||
object, | ||
property, | ||
@@ -54,3 +55,3 @@ property: { | ||
message: `Use ${correctFunction}() instead of checking .${name} directly`, | ||
fix: fixer => [fixer.removeRange([property.range[0] - 1, property.range[1]]), fixer.replaceTextRange([node.callee.property.range[0], node.range[1]], `${correctFunction}()`)] | ||
fix: fixer => [fixer.removeRange([object.range[1], property.range[1]]), fixer.replaceTextRange([node.callee.property.range[0], node.range[1]], `${correctFunction}()`)] | ||
}); | ||
@@ -57,0 +58,0 @@ }, |
@@ -29,3 +29,3 @@ "use strict"; | ||
message: "Use toBeEmptyDOMElement instead of checking inner html.", | ||
fix: fixer => [fixer.removeRange([node.left.property.range[0] - 1, node.range[1]]), fixer.replaceText(node.parent.parent.property, Boolean(node.parent.parent.parent.arguments[0].value) === node.operator.startsWith("=") // binary expression XNOR matcher boolean | ||
fix: fixer => [fixer.removeRange([node.left.object.range[1], node.range[1]]), fixer.replaceText(node.parent.parent.property, Boolean(node.parent.parent.parent.arguments[0].value) === node.operator.startsWith("=") // binary expression XNOR matcher boolean | ||
? "toBeEmptyDOMElement" : "not.toBeEmptyDOMElement"), fixer.remove(node.parent.parent.parent.arguments[0])] | ||
@@ -39,3 +39,3 @@ }); | ||
message: "Use toBeEmptyDOMElement instead of checking inner html.", | ||
fix: fixer => [fixer.removeRange([node.left.property.range[0] - 1, node.range[1]]), fixer.replaceText(node.parent.parent.property, Boolean(node.parent.parent.parent.arguments[0].value) === node.operator.startsWith("=") // binary expression XNOR matcher boolean | ||
fix: fixer => [fixer.removeRange([node.left.object.range[1], node.range[1]]), fixer.replaceText(node.parent.parent.property, Boolean(node.parent.parent.parent.arguments[0].value) === node.operator.startsWith("=") // binary expression XNOR matcher boolean | ||
? "toBeEmptyDOMElement" : "not.toBeEmptyDOMElement"), fixer.remove(node.parent.parent.parent.arguments[0])] | ||
@@ -55,3 +55,3 @@ }); | ||
message: "Use toBeEmptyDOMElement instead of checking inner html.", | ||
fix: fixer => [fixer.removeRange([node.property.range[0] - 1, node.property.range[1]]), fixer.replaceText(node.parent.parent.property, "toBeEmptyDOMElement"), fixer.remove(node.parent.parent.parent.arguments[0])] | ||
fix: fixer => [fixer.removeRange([node.object.range[1], node.property.range[1]]), fixer.replaceText(node.parent.parent.property, "toBeEmptyDOMElement"), fixer.remove(node.parent.parent.parent.arguments[0])] | ||
}); | ||
@@ -70,3 +70,3 @@ }, | ||
message: "Use toBeEmptyDOMElement instead of checking inner html.", | ||
fix: fixer => [fixer.removeRange([node.property.range[0] - 1, node.property.range[1]]), fixer.replaceText(node.parent.parent.parent.property, "toBeEmptyDOMElement"), fixer.remove(node.parent.parent.parent.parent.arguments[0])] | ||
fix: fixer => [fixer.removeRange([node.object.range[1], node.property.range[1]]), fixer.replaceText(node.parent.parent.parent.property, "toBeEmptyDOMElement"), fixer.remove(node.parent.parent.parent.parent.arguments[0])] | ||
}); | ||
@@ -79,3 +79,3 @@ }, | ||
message: "Use toBeEmptyDOMElement instead of checking inner html.", | ||
fix: fixer => [fixer.removeRange([node.property.range[0] - 1, node.property.range[1]]), fixer.replaceText(node.parent.parent.property, "toBeEmptyDOMElement")] | ||
fix: fixer => [fixer.removeRange([node.object.range[1], node.property.range[1]]), fixer.replaceText(node.parent.parent.property, "toBeEmptyDOMElement")] | ||
}); | ||
@@ -92,3 +92,3 @@ }, | ||
message: "Use toBeEmptyDOMElement instead of checking inner html.", | ||
fix: fixer => [fixer.removeRange([node.property.range[0] - 1, node.property.range[1]]), fixer.replaceText(node.parent.parent.parent.property, "toBeEmptyDOMElement"), fixer.remove(node.parent.parent.parent.parent.arguments[0])] | ||
fix: fixer => [fixer.removeRange([node.object.range[1], node.property.range[1]]), fixer.replaceText(node.parent.parent.parent.property, "toBeEmptyDOMElement"), fixer.remove(node.parent.parent.parent.parent.arguments[0])] | ||
}); | ||
@@ -101,3 +101,3 @@ }, | ||
message: "Use toBeEmptyDOMElement instead of checking inner html.", | ||
fix: fixer => [fixer.removeRange([node.property.range[0] - 1, node.property.range[1]]), fixer.replaceText(node.parent.parent.parent.property, "toBeEmptyDOMElement")] | ||
fix: fixer => [fixer.removeRange([node.object.range[1], node.property.range[1]]), fixer.replaceText(node.parent.parent.parent.property, "toBeEmptyDOMElement")] | ||
}); | ||
@@ -114,3 +114,3 @@ }, | ||
message: "Use toBeEmptyDOMElement instead of checking inner html.", | ||
fix: fixer => [fixer.removeRange([node.property.range[0] - 1, node.property.range[1]]), fixer.replaceText(node.parent.parent.property, "toBeEmptyDOMElement"), fixer.remove(node.parent.parent.parent.arguments[0])] | ||
fix: fixer => [fixer.removeRange([node.object.range[1], node.property.range[1]]), fixer.replaceText(node.parent.parent.property, "toBeEmptyDOMElement"), fixer.remove(node.parent.parent.parent.arguments[0])] | ||
}); | ||
@@ -117,0 +117,0 @@ } |
@@ -18,2 +18,3 @@ "use strict"; | ||
docs: { | ||
url: "prefer-focus", | ||
description: "prefer toHaveFocus over checking document.activeElement", | ||
@@ -20,0 +21,0 @@ category: "jest-dom", |
@@ -17,3 +17,5 @@ "use strict"; | ||
docs: { | ||
category: "jest-dom", | ||
description: "prefer toHaveAttribute over checking getAttribute/hasAttribute ", | ||
url: "prefer-to-have-attribute", | ||
recommended: true | ||
@@ -71,3 +73,3 @@ }, | ||
[`CallExpression[callee.property.name='hasAttribute'][parent.callee.name='expect'][parent.parent.property.name=/toBe$|to(Striclty)?Equal/]`](node) { | ||
[`CallExpression[callee.property.name='hasAttribute'][parent.callee.name='expect'][parent.parent.property.name=/toBe$|to(Strict)?Equal/]`](node) { | ||
if (typeof node.parent.parent.parent.arguments[0].value === "boolean") { | ||
@@ -74,0 +76,0 @@ context.report({ |
@@ -14,2 +14,4 @@ "use strict"; | ||
docs: { | ||
category: "jest-dom", | ||
url: "prefer-to-have-text-content", | ||
description: "Prefer toHaveTextContent over checking element.textContent", | ||
@@ -30,3 +32,3 @@ recommended: true | ||
fix: fixer => { | ||
return [fixer.removeRange([node.property.range[0] - 1, node.property.range[1]]), fixer.replaceTextRange(node.parent.parent.property.range, "toHaveTextContent"), fixer.replaceTextRange(expectedArg.range, expectedArg.type === "Literal" ? expectedArg.regex ? expectedArgSource : new RegExp(expectedArg.value.toString().replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&")) : `new RegExp(${expectedArgSource})`)]; | ||
return [fixer.removeRange([node.object.range[1], node.property.range[1]]), fixer.replaceTextRange(node.parent.parent.property.range, "toHaveTextContent"), fixer.replaceTextRange(expectedArg.range, expectedArg.type === "Literal" ? expectedArg.regex ? expectedArgSource : new RegExp(expectedArg.value.toString().replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&")) : `new RegExp(${expectedArgSource})`)]; | ||
} | ||
@@ -40,3 +42,3 @@ }); | ||
message: `Use toHaveTextContent instead of asserting on DOM node attributes`, | ||
fix: fixer => [fixer.removeRange([node.property.range[0] - 1, node.property.range[1]]), fixer.replaceTextRange(node.parent.parent.property.range, "toHaveTextContent")] | ||
fix: fixer => [fixer.removeRange([node.object.range[1], node.property.range[1]]), fixer.replaceTextRange(node.parent.parent.property.range, "toHaveTextContent")] | ||
}); | ||
@@ -49,3 +51,3 @@ }, | ||
message: `Use toHaveTextContent instead of asserting on DOM node attributes`, | ||
fix: fixer => [fixer.removeRange([node.property.range[0] - 1, node.property.range[1]]), fixer.replaceTextRange(node.parent.parent.parent.property.range, "toHaveTextContent")] | ||
fix: fixer => [fixer.removeRange([node.object.range[1], node.property.range[1]]), fixer.replaceTextRange(node.parent.parent.parent.property.range, "toHaveTextContent")] | ||
}); | ||
@@ -60,3 +62,3 @@ }, | ||
message: `Use toHaveTextContent instead of asserting on DOM node attributes`, | ||
fix: fixer => [fixer.removeRange([node.property.range[0] - 1, node.property.range[1]]), fixer.replaceTextRange(node.parent.parent.parent.property.range, "toHaveTextContent"), fixer.replaceTextRange(expectedArg.range, expectedArg.type === "Literal" ? expectedArg.regex ? expectedArgSource : new RegExp(expectedArg.value.toString().replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&")) : `new RegExp(${expectedArgSource})`)] | ||
fix: fixer => [fixer.removeRange([node.object.range[1], node.property.range[1]]), fixer.replaceTextRange(node.parent.parent.parent.property.range, "toHaveTextContent"), fixer.replaceTextRange(expectedArg.range, expectedArg.type === "Literal" ? expectedArg.regex ? expectedArgSource : new RegExp(expectedArg.value.toString().replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&")) : `new RegExp(${expectedArgSource})`)] | ||
}); | ||
@@ -63,0 +65,0 @@ } |
{ | ||
"name": "eslint-plugin-jest-dom", | ||
"version": "3.1.7", | ||
"version": "3.2.0", | ||
"description": "ESLint plugin to follow best practices and anticipate common mistakes when writing tests with jest-dom", | ||
@@ -38,2 +38,3 @@ "main": "dist/index.js", | ||
"devDependencies": { | ||
"jest-extended": "^0.11.5", | ||
"kcd-scripts": "^6.0.0" | ||
@@ -40,0 +41,0 @@ }, |
@@ -98,17 +98,18 @@ <div align="center"> | ||
βοΈ indicates that a rule is recommended for all users. | ||
π indicates that a rule is recommended for all users. | ||
π indicates that a rule is fixable. | ||
π§ indicates that a rule is fixable. | ||
<!-- __BEGIN AUTOGENERATED TABLE__ --> | ||
| Name | βοΈ | π | Description | | ||
| Name | π | π§ | Description | | ||
| ---------------------------------------------------------------------------------------------------------------------------------------------- | --- | --- | -------------------------------------------------------------- | | ||
| [prefer-checked](https://github.com/testing-library/eslint-plugin-jest-dom/blob/master/docs/rules/prefer-checked.md) | βοΈ | π | prefer toBeChecked over checking attributes | | ||
| [prefer-empty](https://github.com/testing-library/eslint-plugin-jest-dom/blob/master/docs/rules/prefer-empty.md) | βοΈ | π | Prefer toBeEmpty over checking innerHTML | | ||
| [prefer-enabled-disabled](https://github.com/testing-library/eslint-plugin-jest-dom/blob/master/docs/rules/prefer-enabled-disabled.md) | βοΈ | π | prefer toBeDisabled or toBeEnabled over checking attributes | | ||
| [prefer-focus](https://github.com/testing-library/eslint-plugin-jest-dom/blob/master/docs/rules/prefer-focus.md) | βοΈ | π | prefer toHaveFocus over checking document.activeElement | | ||
| [prefer-required](https://github.com/testing-library/eslint-plugin-jest-dom/blob/master/docs/rules/prefer-required.md) | βοΈ | π | prefer toBeRequired over checking properties | | ||
| [prefer-to-have-attribute](https://github.com/testing-library/eslint-plugin-jest-dom/blob/master/docs/rules/prefer-to-have-attribute.md) | βοΈ | π | prefer toHaveAttribute over checking getAttribute/hasAttribute | | ||
| [prefer-to-have-text-content](https://github.com/testing-library/eslint-plugin-jest-dom/blob/master/docs/rules/prefer-to-have-text-content.md) | βοΈ | π | Prefer toHaveTextContent over checking element.textContent | | ||
| [prefer-checked](https://github.com/testing-library/eslint-plugin-jest-dom/blob/master/docs/rules/prefer-checked.md) | π | π§ | prefer toBeChecked over checking attributes | | ||
| [prefer-empty](https://github.com/testing-library/eslint-plugin-jest-dom/blob/master/docs/rules/prefer-empty.md) | π | π§ | Prefer toBeEmpty over checking innerHTML | | ||
| [prefer-enabled-disabled](https://github.com/testing-library/eslint-plugin-jest-dom/blob/master/docs/rules/prefer-enabled-disabled.md) | π | π§ | prefer toBeDisabled or toBeEnabled over checking attributes | | ||
| [prefer-focus](https://github.com/testing-library/eslint-plugin-jest-dom/blob/master/docs/rules/prefer-focus.md) | π | π§ | prefer toHaveFocus over checking document.activeElement | | ||
| [prefer-required](https://github.com/testing-library/eslint-plugin-jest-dom/blob/master/docs/rules/prefer-required.md) | π | π§ | prefer toBeRequired over checking properties | | ||
| [prefer-to-have-attribute](https://github.com/testing-library/eslint-plugin-jest-dom/blob/master/docs/rules/prefer-to-have-attribute.md) | π | π§ | prefer toHaveAttribute over checking getAttribute/hasAttribute | | ||
| [prefer-to-have-style](https://github.com/testing-library/eslint-plugin-jest-dom/blob/master/docs/rules/prefer-to-have-style.md) | π | π§ | prefer toHaveStyle over checking element style | | ||
| [prefer-to-have-text-content](https://github.com/testing-library/eslint-plugin-jest-dom/blob/master/docs/rules/prefer-to-have-text-content.md) | π | π§ | Prefer toHaveTextContent over checking element.textContent | | ||
@@ -160,2 +161,3 @@ <!-- __END AUTOGENERATED TABLE__ --> | ||
<!-- prettier-ignore-end --> | ||
<!-- ALL-CONTRIBUTORS-LIST:END --> | ||
@@ -162,0 +164,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
46889
13
646
193
2