Skip to content

Commit cb425c3

Browse files
🔬 Adds unit test coverage for new use cases
1 parent 925450f commit cb425c3

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

‎tests/lib/rules/no-array-index-key.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)