@@ -649,6 +649,57 @@ ruleTester.run('no-for-loop', rule, {
649649 console.log(element);
650650 console.log(element_);
651651 }
652+ ` ) ,
653+
654+ // Singularization:
655+ ...[
656+ [ 'plugin' , 'plugins' ] , // Simple
657+ [ 'person' , 'people' ] , // Irregular
658+ [ 'girlsAndBoy' , 'girlsAndBoys' ] , // Multiple plurals
659+ [ 'largeCity' , 'largeCities' ] , // CamelCase
660+ [ 'LARGE_CITY' , 'LARGE_CITIES' ] , // Caps, snake_case
661+ [ 'element' , 'news' ] , // No singular version, ends in s
662+ [ 'element' , 'list' ] // No singular version
663+ ] . map ( ( [ elementName , arrayName ] ) =>
664+ testCase (
665+ `for(const i = 0; i < ${ arrayName } .length; i++) {console.log(${ arrayName } [i])}` ,
666+ `for(const ${ elementName } of ${ arrayName } ) {console.log(${ elementName } )}`
667+ )
668+ ) ,
669+
670+ // Singularization (avoid using reserved JavaScript keywords):
671+ testCase ( outdent `
672+ for (let i = 0; i < cases.length; i++) {
673+ console.log(cases[i]);
674+ }
675+ ` , outdent `
676+ for (const case_ of cases) {
677+ console.log(case_);
678+ }
679+ ` ) ,
680+ // Singularization (avoid variable name collision):
681+ testCase ( outdent `
682+ for (let i = 0; i < cities.length; i++) {
683+ console.log(cities[i]);
684+ const city = foo();
685+ console.log(city);
686+ }
687+ ` , outdent `
688+ for (const city_ of cities) {
689+ console.log(city_);
690+ const city = foo();
691+ console.log(city);
692+ }
693+ ` ) ,
694+ // Singularization (uses i):
695+ testCase ( outdent `
696+ for (let i = 0; i < cities.length; i++) {
697+ console.log(i, cities[i]);
698+ }
699+ ` , outdent `
700+ for (const [i, city] of cities.entries()) {
701+ console.log(i, city);
702+ }
652703 ` )
653704 ]
654705} ) ;
0 commit comments