diff --git a/package.json b/package.json index 2ca60bd394..947afc596b 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "object.values": "^1.1.1", "prop-types": "^15.7.2", "resolve": "^1.15.1", + "semver": "^6.3.0", "string.prototype.matchall": "^4.0.2", "xregexp": "^4.3.0" }, @@ -69,5 +70,10 @@ "eslintplugin", "react" ], - "license": "MIT" + "license": "MIT", + "greenkeeper": { + "ignore": [ + "semver" + ] + } } diff --git a/tests/lib/rules/no-unescaped-entities.js b/tests/lib/rules/no-unescaped-entities.js index b10f5555e0..c3f4379b70 100644 --- a/tests/lib/rules/no-unescaped-entities.js +++ b/tests/lib/rules/no-unescaped-entities.js @@ -9,6 +9,12 @@ // Requirements // ------------------------------------------------------------------------------ +const semver = require('semver'); +let allowsInvalidJSX = false; +try { + allowsInvalidJSX = semver.satisfies(require('acorn-jsx/package.json').version, '< 5.2'); +} catch (e) { /**/ } + const RuleTester = require('eslint').RuleTester; const rule = require('../../../lib/rules/no-unescaped-entities'); @@ -107,7 +113,7 @@ ruleTester.run('no-unescaped-entities', rule, { ], invalid: [ - { + (allowsInvalidJSX && { code: ` var Hello = createReactClass({ render: function() { @@ -116,7 +122,7 @@ ruleTester.run('no-unescaped-entities', rule, { }); `, errors: [{message: '`>` can be escaped with `>`.'}] - }, { + }), { code: ` var Hello = createReactClass({ render: function() { @@ -126,7 +132,7 @@ ruleTester.run('no-unescaped-entities', rule, { `, parser: parsers.BABEL_ESLINT, errors: [{message: '`>` can be escaped with `>`.'}] - }, { + }, (allowsInvalidJSX && { code: ` var Hello = createReactClass({ render: function() { @@ -137,7 +143,7 @@ ruleTester.run('no-unescaped-entities', rule, { }); `, errors: [{message: '`>` can be escaped with `>`.'}] - }, { + }), { code: ` var Hello = createReactClass({ render: function() { @@ -158,7 +164,7 @@ ruleTester.run('no-unescaped-entities', rule, { }); `, errors: [{message: '`\'` can be escaped with `'`, `‘`, `'`, `’`.'}] - }, { + }, (allowsInvalidJSX && { code: ` var Hello = createReactClass({ render: function() { @@ -171,7 +177,7 @@ ruleTester.run('no-unescaped-entities', rule, { {message: '`>` can be escaped with `>`.'}, {message: '`>` can be escaped with `>`.'} ] - }, { + }), (allowsInvalidJSX && { code: ` var Hello = createReactClass({ render: function() { @@ -180,7 +186,7 @@ ruleTester.run('no-unescaped-entities', rule, { }); `, errors: [{message: '`}` can be escaped with `}`.'}] - }, { + }), { code: ` var Hello = createReactClass({ render: function() { @@ -231,5 +237,5 @@ ruleTester.run('no-unescaped-entities', rule, { }] }] } - ] + ].filter(Boolean) });