@@ -89,6 +89,22 @@ ruleTester.run('no-array-index-key', rule, {
8989
9090 {
9191 code : 'foo.reduceRight((a, b, i) => a.concat(<Foo key={b.id} />), [])'
92+ } ,
93+
94+ {
95+ code : `
96+ React.Children.map(this.props.children, (child, index, arr) => {
97+ return React.cloneElement(child, { key: child.id });
98+ })
99+ `
100+ } ,
101+
102+ {
103+ code : `
104+ Children.forEach(this.props.children, (child, index, arr) => {
105+ return React.cloneElement(child, { key: child.id });
106+ })
107+ `
92108 }
93109 ] ,
94110
@@ -227,6 +243,43 @@ ruleTester.run('no-array-index-key', rule, {
227243 {
228244 code : 'foo.findIndex((bar, i) => { baz.push(React.createElement(\'Foo\', { key: i })); })' ,
229245 errors : [ { message : 'Do not use Array index in keys' } ]
246+ } ,
247+
248+ {
249+ code : `
250+ Children.map(this.props.children, (child, index) => {
251+ return React.cloneElement(child, { key: index });
252+ })
253+ ` ,
254+ errors : [ { message : 'Do not use Array index in keys' } ]
255+ } ,
256+
257+ {
258+ code : `
259+ React.Children.map(this.props.children, (child, index) => {
260+ return React.cloneElement(child, { key: index });
261+ })
262+ ` ,
263+ errors : [ { message : 'Do not use Array index in keys' } ]
264+ } ,
265+
266+ {
267+ code : `
268+ Children.forEach(this.props.children, (child, index) => {
269+ return React.cloneElement(child, { key: index });
270+ })
271+ ` ,
272+ errors : [ { message : 'Do not use Array index in keys' } ]
273+ } ,
274+
275+ {
276+ code : `
277+ React.Children.forEach(this.props.children, (child, index) => {
278+ return React.cloneElement(child, { key: index });
279+ })
280+ ` ,
281+ errors : [ { message : 'Do not use Array index in keys' } ]
230282 }
283+
231284 ]
232285} ) ;
0 commit comments