@@ -151,13 +151,24 @@ ruleTester.run('prefer-read-only-props', rule, {
151151 parser : parsers . BABEL_ESLINT ,
152152 errors : [ {
153153 message : 'Prop \'name\' should be read-only.'
154- } ]
154+ } ] ,
155+ output : `
156+ type Props = {
157+ +name: string,
158+ }
159+
160+ class Hello extends React.Component<Props> {
161+ render () {
162+ return <div>Hello {this.props.name}</div>;
163+ }
164+ }
165+ `
155166 } ,
156167 {
157168 // Props.name is contravariant
158169 code : `
159170 type Props = {
160- -name: string,
171+ -name: string,
161172 }
162173
163174 class Hello extends React.Component<Props> {
@@ -169,7 +180,18 @@ ruleTester.run('prefer-read-only-props', rule, {
169180 parser : parsers . BABEL_ESLINT ,
170181 errors : [ {
171182 message : 'Prop \'name\' should be read-only.'
172- } ]
183+ } ] ,
184+ output : `
185+ type Props = {
186+ +name: string,
187+ }
188+
189+ class Hello extends React.Component<Props> {
190+ render () {
191+ return <div>Hello {this.props.name}</div>;
192+ }
193+ }
194+ `
173195 } ,
174196 {
175197 code : `
@@ -186,7 +208,18 @@ ruleTester.run('prefer-read-only-props', rule, {
186208 parser : parsers . BABEL_ESLINT ,
187209 errors : [ {
188210 message : 'Prop \'name\' should be read-only.'
189- } ]
211+ } ] ,
212+ output : `
213+ class Hello extends React.Component {
214+ props: {
215+ +name: string,
216+ }
217+
218+ render () {
219+ return <div>Hello {this.props.name}</div>;
220+ }
221+ }
222+ `
190223 } ,
191224 {
192225 code : `
@@ -197,7 +230,12 @@ ruleTester.run('prefer-read-only-props', rule, {
197230 parser : parsers . BABEL_ESLINT ,
198231 errors : [ {
199232 message : 'Prop \'name\' should be read-only.'
200- } ]
233+ } ] ,
234+ output : `
235+ function Hello(props: {+name: string}) {
236+ return <div>Hello {props.name}</div>;
237+ }
238+ `
201239 } ,
202240 {
203241 code : `
@@ -208,7 +246,12 @@ ruleTester.run('prefer-read-only-props', rule, {
208246 parser : parsers . BABEL_ESLINT ,
209247 errors : [ {
210248 message : 'Prop \'name\' should be read-only.'
211- } ]
249+ } ] ,
250+ output : `
251+ function Hello(props: {|+name: string|}) {
252+ return <div>Hello {props.name}</div>;
253+ }
254+ `
212255 } ,
213256 {
214257 code : `
@@ -219,7 +262,12 @@ ruleTester.run('prefer-read-only-props', rule, {
219262 parser : parsers . BABEL_ESLINT ,
220263 errors : [ {
221264 message : 'Prop \'name\' should be read-only.'
222- } ]
265+ } ] ,
266+ output : `
267+ function Hello({name}: {+name: string}) {
268+ return <div>Hello {props.name}</div>;
269+ }
270+ `
223271 } ,
224272 {
225273 code : `
@@ -236,7 +284,16 @@ ruleTester.run('prefer-read-only-props', rule, {
236284 message : 'Prop \'firstName\' should be read-only.'
237285 } , {
238286 message : 'Prop \'lastName\' should be read-only.'
239- } ]
287+ } ] ,
288+ output : `
289+ type PropsA = {+firstName: string};
290+ type PropsB = {+lastName: string};
291+ type Props = PropsA & PropsB;
292+
293+ function Hello({firstName, lastName}: Props) {
294+ return <div>Hello {firstName} {lastName}</div>;
295+ }
296+ `
240297 } ,
241298 {
242299 code : `
@@ -247,7 +304,12 @@ ruleTester.run('prefer-read-only-props', rule, {
247304 parser : parsers . BABEL_ESLINT ,
248305 errors : [ {
249306 message : 'Prop \'name\' should be read-only.'
250- } ]
307+ } ] ,
308+ output : `
309+ const Hello = (props: {+name: string}) => (
310+ <div>Hello {props.name}</div>
311+ );
312+ `
251313 }
252314 ]
253315} ) ;
0 commit comments