@@ -26,6 +26,16 @@ const parserOptions = {
2626const MISSING_PARENS = 'Missing parentheses around multilines JSX' ;
2727const PARENS_NEW_LINES = 'Parentheses around JSX should be on separate lines' ;
2828
29+ const OPTIONS_ALL_NEW_LINES = {
30+ declaration : 'parens-new-line' ,
31+ assignment : 'parens-new-line' ,
32+ return : 'parens-new-line' ,
33+ arrow : 'parens-new-line' ,
34+ condition : 'parens-new-line' ,
35+ logical : 'parens-new-line' ,
36+ prop : 'parens-new-line' ,
37+ } ;
38+
2939const RETURN_SINGLE_LINE = `
3040 var Hello = createReactClass({
3141 render: function() {
@@ -550,6 +560,19 @@ const ATTR_PAREN_NEW_LINE_AUTOFIX_FRAGMENT = `
550560 </div>
551561` ;
552562
563+ const SFC_NO_PARENS_NO_NEWLINE = `
564+ export default () =>
565+ <div>
566+ with newline without parentheses eslint crashes
567+ </div>` ;
568+
569+ const SFC_NO_PARENS_AUTOFIX = `
570+ export default () => (
571+ <div>
572+ with newline without parentheses eslint crashes
573+ </div>
574+ )` ;
575+
553576function addNewLineSymbols ( code ) {
554577 return code . replace ( / \( < / g, '(\n<' ) . replace ( / > \) / g, '>\n)' ) ;
555578}
@@ -1157,5 +1180,11 @@ ruleTester.run('jsx-wrap-multilines', rule, {
11571180 output : ATTR_PAREN_NEW_LINE_AUTOFIX_FRAGMENT ,
11581181 options : [ { prop : 'parens-new-line' } ] ,
11591182 errors : [ { message : MISSING_PARENS } ]
1183+ } ,
1184+ {
1185+ code : SFC_NO_PARENS_NO_NEWLINE ,
1186+ output : SFC_NO_PARENS_AUTOFIX ,
1187+ options : [ OPTIONS_ALL_NEW_LINES ] ,
1188+ errors : [ { message : MISSING_PARENS } ]
11601189 } ]
11611190} ) ;
0 commit comments