1
1
import test from 'tape' ;
2
2
import deepEqual from 'deep-equal-json' ;
3
- import inspect from 'object-inspect' ;
4
- import some from 'array.prototype.some' ;
5
3
6
4
import ariaPropsMap from 'aria-query/src/ariaPropsMap' ;
7
5
import rolesMap from 'aria-query/src/rolesMap' ;
8
6
7
+ import testIteration from '../helpers/testIteration' ;
8
+ import testForEach from '../helpers/testForEach' ;
9
+
9
10
const entriesList = [
10
11
[ 'aria-activedescendant' , { 'type' : 'id' } ] ,
11
12
[ 'aria-atomic' , { 'type' : 'boolean' } ] ,
@@ -61,52 +62,11 @@ const entriesList = [
61
62
] ;
62
63
63
64
test ( '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 ) ;
101
68
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 ) ;
110
70
111
71
t . test ( 'get()' , ( st ) => {
112
72
st . notEqual ( ariaPropsMap . get ( 'aria-label' ) , undefined , 'has a defined prop' )
@@ -121,27 +81,6 @@ test('ariaPropsMap API', (t) => {
121
81
122
82
st . end ( ) ;
123
83
} ) ;
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
- } ) ;
145
84
146
85
t . test ( 'props and role defintions' , ( st ) => {
147
86
const usedProps = [ ] ;
0 commit comments