@@ -28,6 +28,7 @@ var ruleTester = new RuleTester();
28
28
ruleTester . run ( 'require-render-return' , rule , {
29
29
30
30
valid : [ {
31
+ // ES6 class
31
32
code : [
32
33
'class Hello extends React.Component {' ,
33
34
' render() {' ,
@@ -37,6 +38,7 @@ ruleTester.run('require-render-return', rule, {
37
38
] . join ( '\n' ) ,
38
39
parserOptions : parserOptions
39
40
} , {
41
+ // ES5 class
40
42
code : [
41
43
'var Hello = React.createClass({' ,
42
44
' displayName: \'Hello\',' ,
@@ -46,9 +48,47 @@ ruleTester.run('require-render-return', rule, {
46
48
'});'
47
49
] . join ( '\n' ) ,
48
50
parserOptions : parserOptions
51
+ } , {
52
+ // Return in a switch...case
53
+ code : [
54
+ 'var Hello = React.createClass({' ,
55
+ ' render: function() {' ,
56
+ ' switch (this.props.name) {' ,
57
+ ' case \'Foo\':' ,
58
+ ' return <div>Hello Foo</div>;' ,
59
+ ' default:' ,
60
+ ' return <div>Hello {this.props.name}</div>;' ,
61
+ ' }' ,
62
+ ' }' ,
63
+ '});'
64
+ ] . join ( '\n' ) ,
65
+ parserOptions : parserOptions
66
+ } , {
67
+ // Return in a if...else
68
+ code : [
69
+ 'var Hello = React.createClass({' ,
70
+ ' render: function() {' ,
71
+ ' if (this.props.name === \'Foo\') {' ,
72
+ ' return <div>Hello Foo</div>;' ,
73
+ ' } else {' ,
74
+ ' return <div>Hello {this.props.name}</div>;' ,
75
+ ' }' ,
76
+ ' }' ,
77
+ '});'
78
+ ] . join ( '\n' ) ,
79
+ parserOptions : parserOptions
80
+ } , {
81
+ // Not a React component
82
+ code : [
83
+ 'class Hello {' ,
84
+ ' render() {}' ,
85
+ '}'
86
+ ] . join ( '\n' ) ,
87
+ parserOptions : parserOptions
49
88
} ] ,
50
89
51
90
invalid : [ {
91
+ // Missing return in ES5 class
52
92
code : [
53
93
'var Hello = React.createClass({' ,
54
94
' displayName: \'Hello\',' ,
@@ -60,6 +100,7 @@ ruleTester.run('require-render-return', rule, {
60
100
message : 'Your render method should have return statement'
61
101
} ]
62
102
} , {
103
+ // Missing return in ES6 class
63
104
code : [
64
105
'class Hello extends React.Component {' ,
65
106
' render() {} ' ,
@@ -69,5 +110,20 @@ ruleTester.run('require-render-return', rule, {
69
110
errors : [ {
70
111
message : 'Your render method should have return statement'
71
112
} ]
113
+ } , {
114
+ // Missing return (but one is present in a sub-function)
115
+ code : [
116
+ 'class Hello extends React.Component {' ,
117
+ ' render() {' ,
118
+ ' const names = this.props.names.map(function(name) {' ,
119
+ ' return <div>{name}</div>' ,
120
+ ' });' ,
121
+ ' } ' ,
122
+ '}'
123
+ ] . join ( '\n' ) ,
124
+ parserOptions : parserOptions ,
125
+ errors : [ {
126
+ message : 'Your render method should have return statement'
127
+ } ]
72
128
}
73
129
] } ) ;
0 commit comments