Skip to content

Commit

Permalink
no-unescaped-entities: support shorthand fragments
Browse files Browse the repository at this point in the history
  • Loading branch information
alexzherdev committed Aug 27, 2018
1 parent 83eb307 commit bace62c
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 1 deletion.
3 changes: 2 additions & 1 deletion lib/rules/no-unescaped-entities.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
'use strict';

const docsUrl = require('../util/docsUrl');
const jsxUtil = require('../util/jsx');

// ------------------------------------------------------------------------------
// Rule Definition
Expand Down Expand Up @@ -72,7 +73,7 @@ module.exports = {

return {
'Literal, JSXText': function(node) {
if (node.parent.type === 'JSXElement') {
if (jsxUtil.isJSX(node.parent)) {
reportInvalidEntity(node);
}
}
Expand Down
61 changes: 61 additions & 0 deletions tests/lib/rules/no-unescaped-entities.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,35 @@ ruleTester.run('no-unescaped-entities', rule, {
},
});
`
},
{
code: `
var Hello = createReactClass({
render: function() {
return <>Here is some text!</>;
}
});
`,
parser: 'babel-eslint'
}, {
code: `
var Hello = createReactClass({
render: function() {
return <>I&rsquo;ve escaped some entities: &gt; &lt; &amp;</>;
}
});
`,
parser: 'babel-eslint'
},
{
code: `
var Hello = createReactClass({
render: function() {
return <>{">" + "<" + "&" + '"'}</>;
},
});
`,
parser: 'babel-eslint'
}
],

Expand All @@ -84,6 +113,16 @@ ruleTester.run('no-unescaped-entities', rule, {
});
`,
errors: [{message: 'HTML entities must be escaped.'}]
}, {
code: `
var Hello = createReactClass({
render: function() {
return <>></>;
}
});
`,
parser: 'babel-eslint',
errors: [{message: 'HTML entities must be escaped.'}]
}, {
code: `
var Hello = createReactClass({
Expand All @@ -95,6 +134,18 @@ ruleTester.run('no-unescaped-entities', rule, {
});
`,
errors: [{message: 'HTML entities must be escaped.'}]
}, {
code: `
var Hello = createReactClass({
render: function() {
return <>first line is ok
so is second
and here are some bad entities: ></>
}
});
`,
parser: 'babel-eslint',
errors: [{message: 'HTML entities must be escaped.'}]
}, {
code: `
var Hello = createReactClass({
Expand Down Expand Up @@ -126,6 +177,16 @@ ruleTester.run('no-unescaped-entities', rule, {
});
`,
errors: [{message: 'HTML entities must be escaped.'}]
}, {
code: `
var Hello = createReactClass({
render: function() {
return <>{"Unbalanced braces"}}</>;
}
});
`,
parser: 'babel-eslint',
errors: [{message: 'HTML entities must be escaped.'}]
}
]
});

0 comments on commit bace62c

Please sign in to comment.