11import test from 'tape' ;
22import deepEqual from 'deep-equal-json' ;
3- import inspect from 'object-inspect' ;
4- import some from 'array.prototype.some' ;
53
64import ariaPropsMap from 'aria-query/src/ariaPropsMap' ;
75import rolesMap from 'aria-query/src/rolesMap' ;
86
7+ import testIteration from '../helpers/testIteration' ;
8+ import testForEach from '../helpers/testForEach' ;
9+
910const entriesList = [
1011 [ 'aria-activedescendant' , { 'type' : 'id' } ] ,
1112 [ 'aria-atomic' , { 'type' : 'boolean' } ] ,
@@ -61,52 +62,11 @@ const entriesList = [
6162] ;
6263
6364test ( 'ariaPropsMap API' , ( t ) => {
64- t . test ( 'iteration' , async ( st ) => {
65- st . notEqual ( ariaPropsMap [ Symbol . iterator ] , undefined , 'has an iterator defined' ) ;
66- st . equal ( [ ...ariaPropsMap ] . length , 51 , 'has a specific length' ) ;
67-
68- st . test ( 'supports the spread operator' , async ( s2t ) => {
69- [ ...ariaPropsMap ] . forEach ( ( [ obj , roles ] ) => {
70- const found = entriesList . filter ( ( [ o ] ) => deepEqual ( o , obj ) ) [ 0 ] ;
71-
72- s2t . ok ( found , `spread has element: ${ inspect ( obj ) } ` ) ;
73- s2t . deepEqual ( roles , found [ 1 ] , `for-of has object elements` ) ;
74- } ) ;
75- } ) ;
76-
77- st . test ( 'supports the for..of pattern' , async ( s2t ) => {
78- const output = [ ] ;
79- for ( const [ key , value ] of ariaPropsMap ) {
80- output . push ( [ key , value ] ) ;
81- }
82-
83- output . forEach ( ( [ obj , roles ] ) => {
84- const found = entriesList . filter ( ( [ o ] ) => deepEqual ( o , obj ) ) [ 0 ] ;
85-
86- s2t . ok ( found , `for-of has element: ${ inspect ( obj ) } ` ) ;
87- s2t . deepEqual ( roles , found [ 1 ] , `for-of has object elements` ) ;
88- } ) ;
89- } ) ;
90- } ) ;
91-
92- t . test ( 'forEach()' , async ( st ) => {
93- const output = [ ] ;
94- let context ;
95- ariaPropsMap . forEach ( ( value , key , map ) => {
96- output . push ( [ key , value ] ) ;
97- if ( ! context ) {
98- context = map ;
99- }
100- } ) ;
65+ const predicate = ( obj , [ o ] ) => deepEqual ( o , obj ) ;
66+
67+ testIteration ( t , ariaPropsMap , entriesList , 51 , predicate ) ;
10168
102- for ( let i = 0 ; i < output . length ; i ++ ) {
103- const [ obj , roles ] = output [ i ] ;
104- const found = entriesList . filter ( ( [ o ] ) => deepEqual ( o , obj ) ) [ 0 ] ;
105-
106- st . ok ( found , `\`forEach\` has element: ${ inspect ( obj ) } ` ) ;
107- st . deepEqual ( roles , found [ 1 ] , `\`forEach\` has object elements` ) ;
108- }
109- } ) ;
69+ testForEach ( t , ariaPropsMap , entriesList , predicate ) ;
11070
11171 t . test ( 'get()' , ( st ) => {
11272 st . notEqual ( ariaPropsMap . get ( 'aria-label' ) , undefined , 'has a defined prop' )
@@ -121,27 +81,6 @@ test('ariaPropsMap API', (t) => {
12181
12282 st . end ( ) ;
12383 } ) ;
124-
125- t . test ( 'keys(), iteration' , async ( st ) => {
126- const entriesKeys = entriesList . map ( entry => entry [ 0 ] ) ;
127- for ( const obj of ariaPropsMap . keys ( ) ) {
128- st . ok ( entriesKeys . filter ( ( k ) => deepEqual ( k , obj ) ) [ 0 ] , `for-of has key: ${ inspect ( obj ) } ` ) ;
129- }
130-
131- [ ...ariaPropsMap . keys ( ) ] . forEach ( ( obj ) => {
132- st . ok ( entriesKeys . filter ( ( k ) => deepEqual ( k , obj ) ) [ 0 ] , `spread has key: ${ inspect ( obj ) } ` ) ;
133- } ) ;
134- } ) ;
135-
136- t . test ( 'values(), iteration' , async ( st ) => {
137- for ( const values of ariaPropsMap . values ( ) ) {
138- st . ok ( some ( entriesList , ( [ , x ] ) => deepEqual ( x , values ) ) , `for-of has object values: ${ inspect ( values ) } ` ) ;
139- }
140-
141- [ ...ariaPropsMap . values ( ) ] . forEach ( ( values ) => {
142- st . ok ( some ( entriesList , ( [ , x ] ) => deepEqual ( x , values ) ) , `spread has object values: ${ inspect ( values ) } ` ) ;
143- } ) ;
144- } ) ;
14584
14685 t . test ( 'props and role defintions' , ( st ) => {
14786 const usedProps = [ ] ;
0 commit comments