@@ -14,6 +14,11 @@ import {
1414import { RuleTester } from 'eslint' ;
1515import { version as eslintVersion } from 'eslint/package.json' ;
1616import semver from 'semver' ;
17+ import iterFrom from 'es-iterator-helpers/Iterator.from' ;
18+ import filter from 'es-iterator-helpers/Iterator.prototype.filter' ;
19+ import map from 'es-iterator-helpers/Iterator.prototype.map' ;
20+ import toArray from 'es-iterator-helpers/Iterator.prototype.toArray' ;
21+
1722import parserOptionsMapper from '../../__util__/parserOptionsMapper' ;
1823import parsers from '../../__util__/helpers/parsers' ;
1924import rule from '../../../src/rules/role-supports-aria-props' ;
@@ -26,8 +31,7 @@ const ruleTester = new RuleTester();
2631
2732const generateErrorMessage = ( attr , role , tag , isImplicit ) => {
2833 if ( isImplicit ) {
29- return `The attribute ${ attr } is not supported by the role ${ role } . \
30- This role is implicit on the element ${ tag } .` ;
34+ return `The attribute ${ attr } is not supported by the role ${ role } . This role is implicit on the element ${ tag } .` ;
3135 }
3236
3337 return `The attribute ${ attr } is not supported by the role ${ role } .` ;
@@ -46,30 +50,28 @@ const componentsSettings = {
4650 } ,
4751} ;
4852
49- const nonAbstractRoles = [ ... roles . keys ( ) ] . filter ( ( role ) => roles . get ( role ) . abstract === false ) ;
53+ const nonAbstractRoles = toArray ( filter ( iterFrom ( roles . keys ( ) ) , ( role ) => roles . get ( role ) . abstract === false ) ) ;
5054
5155const createTests = ( rolesNames ) => rolesNames . reduce ( ( tests , role ) => {
5256 const {
5357 props : propKeyValues ,
5458 } = roles . get ( role ) ;
5559 const validPropsForRole = Object . keys ( propKeyValues ) ;
56- const invalidPropsForRole = [ ...aria . keys ( ) ]
57- . map ( ( attribute ) => attribute . toLowerCase ( ) )
58- . filter ( ( attribute ) => validPropsForRole . indexOf ( attribute ) === - 1 ) ;
60+ const invalidPropsForRole = filter (
61+ map ( iterFrom ( aria . keys ( ) ) , ( attribute ) => attribute . toLowerCase ( ) ) ,
62+ ( attribute ) => validPropsForRole . indexOf ( attribute ) === - 1 ,
63+ ) ;
5964 const normalRole = role . toLowerCase ( ) ;
6065
61- const allTests = [ ] ;
62-
63- allTests [ 0 ] = tests [ 0 ] . concat ( validPropsForRole . map ( ( prop ) => ( {
64- code : `<div role="${ normalRole } " ${ prop . toLowerCase ( ) } />` ,
65- } ) ) ) ;
66-
67- allTests [ 1 ] = tests [ 1 ] . concat ( invalidPropsForRole . map ( ( prop ) => ( {
68- code : `<div role="${ normalRole } " ${ prop . toLowerCase ( ) } />` ,
69- errors : [ errorMessage ( prop . toLowerCase ( ) , normalRole , 'div' , false ) ] ,
70- } ) ) ) ;
71-
72- return allTests ;
66+ return [
67+ tests [ 0 ] . concat ( validPropsForRole . map ( ( prop ) => ( {
68+ code : `<div role="${ normalRole } " ${ prop . toLowerCase ( ) } />` ,
69+ } ) ) ) ,
70+ tests [ 1 ] . concat ( toArray ( map ( invalidPropsForRole , ( prop ) => ( {
71+ code : `<div role="${ normalRole } " ${ prop . toLowerCase ( ) } />` ,
72+ errors : [ errorMessage ( prop . toLowerCase ( ) , normalRole , 'div' , false ) ] ,
73+ } ) ) ) ) ,
74+ ] ;
7375} , [ [ ] , [ ] ] ) ;
7476
7577const [ validTests , invalidTests ] = createTests ( nonAbstractRoles ) ;
0 commit comments