@@ -14,6 +14,11 @@ import {
14
14
import { RuleTester } from 'eslint' ;
15
15
import { version as eslintVersion } from 'eslint/package.json' ;
16
16
import 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
+
17
22
import parserOptionsMapper from '../../__util__/parserOptionsMapper' ;
18
23
import parsers from '../../__util__/helpers/parsers' ;
19
24
import rule from '../../../src/rules/role-supports-aria-props' ;
@@ -26,8 +31,7 @@ const ruleTester = new RuleTester();
26
31
27
32
const generateErrorMessage = ( attr , role , tag , isImplicit ) => {
28
33
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 } .` ;
31
35
}
32
36
33
37
return `The attribute ${ attr } is not supported by the role ${ role } .` ;
@@ -46,30 +50,28 @@ const componentsSettings = {
46
50
} ,
47
51
} ;
48
52
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 ) ) ;
50
54
51
55
const createTests = ( rolesNames ) => rolesNames . reduce ( ( tests , role ) => {
52
56
const {
53
57
props : propKeyValues ,
54
58
} = roles . get ( role ) ;
55
59
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
+ ) ;
59
64
const normalRole = role . toLowerCase ( ) ;
60
65
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
+ ] ;
73
75
} , [ [ ] , [ ] ] ) ;
74
76
75
77
const [ validTests , invalidTests ] = createTests ( nonAbstractRoles ) ;
0 commit comments