@@ -154,7 +154,7 @@ ruleTester.run('prefer-stateless-function', rule, {
154154 ] . join ( '\n' ) ,
155155 parser : 'babel-eslint'
156156 } , {
157- // Can return null (ES6)
157+ // Can return null (ES6, React 0.14.0 )
158158 code : [
159159 'class Foo extends React.Component {' ,
160160 ' render() {' ,
@@ -165,9 +165,14 @@ ruleTester.run('prefer-stateless-function', rule, {
165165 ' }' ,
166166 '}'
167167 ] . join ( '\n' ) ,
168- parser : 'babel-eslint'
168+ parser : 'babel-eslint' ,
169+ settings : {
170+ react : {
171+ version : '0.14.0'
172+ }
173+ }
169174 } , {
170- // Can return null (ES5)
175+ // Can return null (ES5, React 0.14.0 )
171176 code : [
172177 'var Foo = React.createClass({' ,
173178 ' render: function() {' ,
@@ -178,17 +183,27 @@ ruleTester.run('prefer-stateless-function', rule, {
178183 ' }' ,
179184 '});'
180185 ] . join ( '\n' ) ,
181- parserOptions : parserOptions
186+ parserOptions : parserOptions ,
187+ settings : {
188+ react : {
189+ version : '0.14.0'
190+ }
191+ }
182192 } , {
183- // Can return null (shorthand if in return)
193+ // Can return null (shorthand if in return, React 0.14.0 )
184194 code : [
185195 'class Foo extends React.Component {' ,
186196 ' render() {' ,
187197 ' return true ? <div /> : null;' ,
188198 ' }' ,
189199 '}'
190200 ] . join ( '\n' ) ,
191- parser : 'babel-eslint'
201+ parser : 'babel-eslint' ,
202+ settings : {
203+ react : {
204+ version : '0.14.0'
205+ }
206+ }
192207 } , {
193208 code : [
194209 'export default (Component) => (' ,
@@ -341,6 +356,51 @@ ruleTester.run('prefer-stateless-function', rule, {
341356 errors : [ {
342357 message : 'Component should be written as a pure function'
343358 } ]
359+ } , {
360+ // Can return null (ES6)
361+ code : [
362+ 'class Foo extends React.Component {' ,
363+ ' render() {' ,
364+ ' if (!this.props.foo) {' ,
365+ ' return null;' ,
366+ ' }' ,
367+ ' return <div>{this.props.foo}</div>;' ,
368+ ' }' ,
369+ '}'
370+ ] . join ( '\n' ) ,
371+ parser : 'babel-eslint' ,
372+ errors : [ {
373+ message : 'Component should be written as a pure function'
374+ } ]
375+ } , {
376+ // Can return null (ES5)
377+ code : [
378+ 'var Foo = React.createClass({' ,
379+ ' render: function() {' ,
380+ ' if (!this.props.foo) {' ,
381+ ' return null;' ,
382+ ' }' ,
383+ ' return <div>{this.props.foo}</div>;' ,
384+ ' }' ,
385+ '});'
386+ ] . join ( '\n' ) ,
387+ parserOptions : parserOptions ,
388+ errors : [ {
389+ message : 'Component should be written as a pure function'
390+ } ]
391+ } , {
392+ // Can return null (shorthand if in return)
393+ code : [
394+ 'class Foo extends React.Component {' ,
395+ ' render() {' ,
396+ ' return true ? <div /> : null;' ,
397+ ' }' ,
398+ '}'
399+ ] . join ( '\n' ) ,
400+ parser : 'babel-eslint' ,
401+ errors : [ {
402+ message : 'Component should be written as a pure function'
403+ } ]
344404 }
345405 ]
346406} ) ;
0 commit comments