@@ -18,6 +18,8 @@ const Typography = ({ children, ...rest }: any) => {
18
18
return < Text { ...rest } > { children } </ Text > ;
19
19
} ;
20
20
21
+ const waitForOptions = { timeout : 10 } ;
22
+
21
23
class Button extends React . Component < any > {
22
24
render ( ) {
23
25
return (
@@ -62,74 +64,133 @@ function Section() {
62
64
) ;
63
65
}
64
66
65
- test ( 'getByA11yLabel, queryByA11yLabel' , ( ) => {
66
- const { getByA11yLabel, queryByA11yLabel } = render ( < Section /> ) ;
67
+ test ( 'getByA11yLabel, queryByA11yLabel, findByA11yLabel' , async ( ) => {
68
+ const { getByA11yLabel, queryByA11yLabel, findByA11yLabel } = render (
69
+ < Section />
70
+ ) ;
67
71
68
72
expect ( getByA11yLabel ( BUTTON_LABEL ) . props . accessibilityLabel ) . toEqual (
69
73
BUTTON_LABEL
70
74
) ;
71
75
const button = queryByA11yLabel ( / b u t t o n / g) ;
72
76
expect ( button && button . props . accessibilityLabel ) . toEqual ( BUTTON_LABEL ) ;
77
+
73
78
expect ( ( ) => getByA11yLabel ( NO_MATCHES_TEXT ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
74
79
expect ( queryByA11yLabel ( NO_MATCHES_TEXT ) ) . toBeNull ( ) ;
75
80
76
81
expect ( ( ) => getByA11yLabel ( TEXT_LABEL ) ) . toThrow ( FOUND_TWO_INSTANCES ) ;
77
82
expect ( ( ) => queryByA11yLabel ( TEXT_LABEL ) ) . toThrow ( FOUND_TWO_INSTANCES ) ;
83
+
84
+ const asyncButton = await findByA11yLabel ( BUTTON_LABEL ) ;
85
+ expect ( asyncButton . props . accessibilityLabel ) . toEqual ( BUTTON_LABEL ) ;
86
+ await expect (
87
+ findByA11yLabel ( NO_MATCHES_TEXT , waitForOptions )
88
+ ) . rejects . toThrow ( NO_INSTANCES_FOUND ) ;
89
+
90
+ await expect ( findByA11yLabel ( TEXT_LABEL , waitForOptions ) ) . rejects . toThrow (
91
+ FOUND_TWO_INSTANCES
92
+ ) ;
78
93
} ) ;
79
94
80
- test ( 'getAllByA11yLabel, queryAllByA11yLabel' , ( ) => {
81
- const { getAllByA11yLabel, queryAllByA11yLabel } = render ( < Section /> ) ;
95
+ test ( 'getAllByA11yLabel, queryAllByA11yLabel' , async ( ) => {
96
+ const { getAllByA11yLabel, queryAllByA11yLabel, findAllByA11yLabel } = render (
97
+ < Section />
98
+ ) ;
82
99
83
100
expect ( getAllByA11yLabel ( TEXT_LABEL ) ) . toHaveLength ( 2 ) ;
84
101
expect ( queryAllByA11yLabel ( / c o o l / g) ) . toHaveLength ( 3 ) ;
102
+
85
103
expect ( ( ) => getAllByA11yLabel ( NO_MATCHES_TEXT ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
86
104
expect ( queryAllByA11yLabel ( NO_MATCHES_TEXT ) ) . toEqual ( [ ] ) ;
105
+
106
+ await expect ( findAllByA11yLabel ( TEXT_LABEL ) ) . resolves . toHaveLength ( 2 ) ;
107
+ await expect ( findAllByA11yLabel ( NO_MATCHES_TEXT ) ) . rejects . toThrow (
108
+ NO_INSTANCES_FOUND
109
+ ) ;
87
110
} ) ;
88
111
89
- test ( 'getByA11yHint, queryByA11yHint' , ( ) => {
90
- const { getByA11yHint, queryByA11yHint } = render ( < Section /> ) ;
112
+ test ( 'getByA11yHint, queryByA11yHint, findByA11yHint' , async ( ) => {
113
+ const { getByA11yHint, queryByA11yHint, findByA11yHint } = render (
114
+ < Section />
115
+ ) ;
91
116
92
117
expect ( getByA11yHint ( BUTTON_HINT ) . props . accessibilityHint ) . toEqual (
93
118
BUTTON_HINT
94
119
) ;
95
120
const button = queryByA11yHint ( / b u t t o n / g) ;
96
121
expect ( button && button . props . accessibilityHint ) . toEqual ( BUTTON_HINT ) ;
122
+
97
123
expect ( ( ) => getByA11yHint ( NO_MATCHES_TEXT ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
98
124
expect ( queryByA11yHint ( NO_MATCHES_TEXT ) ) . toBeNull ( ) ;
99
125
100
126
expect ( ( ) => getByA11yHint ( TEXT_HINT ) ) . toThrow ( FOUND_TWO_INSTANCES ) ;
101
127
expect ( ( ) => queryByA11yHint ( TEXT_HINT ) ) . toThrow ( FOUND_TWO_INSTANCES ) ;
128
+
129
+ const asyncButton = await findByA11yHint ( BUTTON_HINT ) ;
130
+ expect ( asyncButton . props . accessibilityHint ) . toEqual ( BUTTON_HINT ) ;
131
+ await expect ( findByA11yHint ( NO_MATCHES_TEXT , waitForOptions ) ) . rejects . toThrow (
132
+ NO_INSTANCES_FOUND
133
+ ) ;
134
+ await expect ( findByA11yHint ( TEXT_HINT , waitForOptions ) ) . rejects . toThrow (
135
+ FOUND_TWO_INSTANCES
136
+ ) ;
102
137
} ) ;
103
138
104
- test ( 'getAllByA11yHint, queryAllByA11yHint' , ( ) => {
105
- const { getAllByA11yHint, queryAllByA11yHint } = render ( < Section /> ) ;
139
+ test ( 'getAllByA11yHint, queryAllByA11yHint' , async ( ) => {
140
+ const { getAllByA11yHint, queryAllByA11yHint, findAllByA11yHint } = render (
141
+ < Section />
142
+ ) ;
106
143
107
144
expect ( getAllByA11yHint ( TEXT_HINT ) ) . toHaveLength ( 2 ) ;
108
145
expect ( queryAllByA11yHint ( / s t a t i c / g) ) . toHaveLength ( 2 ) ;
146
+
109
147
expect ( ( ) => getAllByA11yHint ( NO_MATCHES_TEXT ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
110
148
expect ( queryAllByA11yHint ( NO_MATCHES_TEXT ) ) . toEqual ( [ ] ) ;
149
+
150
+ await expect ( findAllByA11yHint ( TEXT_HINT ) ) . resolves . toHaveLength ( 2 ) ;
151
+ await expect ( findAllByA11yHint ( NO_MATCHES_TEXT ) ) . rejects . toThrow (
152
+ NO_INSTANCES_FOUND
153
+ ) ;
111
154
} ) ;
112
155
113
- test ( 'getByA11yRole, queryByA11yRole' , ( ) => {
114
- const { getByA11yRole, queryByA11yRole } = render ( < Section /> ) ;
156
+ test ( 'getByA11yRole, queryByA11yRole, findByA11yRole' , async ( ) => {
157
+ const { getByA11yRole, queryByA11yRole, findByA11yRole } = render (
158
+ < Section />
159
+ ) ;
115
160
116
161
expect ( getByA11yRole ( 'button' ) . props . accessibilityRole ) . toEqual ( 'button' ) ;
117
162
const button = queryByA11yRole ( / b u t t o n / g) ;
118
163
expect ( button && button . props . accessibilityRole ) . toEqual ( 'button' ) ;
164
+
119
165
expect ( ( ) => getByA11yRole ( NO_MATCHES_TEXT ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
120
166
expect ( queryByA11yRole ( NO_MATCHES_TEXT ) ) . toBeNull ( ) ;
121
167
122
168
expect ( ( ) => getByA11yRole ( 'link' ) ) . toThrow ( FOUND_TWO_INSTANCES ) ;
123
169
expect ( ( ) => queryByA11yRole ( 'link' ) ) . toThrow ( FOUND_TWO_INSTANCES ) ;
170
+
171
+ const asyncButton = await findByA11yRole ( 'button' ) ;
172
+ expect ( asyncButton . props . accessibilityRole ) . toEqual ( 'button' ) ;
173
+ await expect ( findByA11yRole ( NO_MATCHES_TEXT , waitForOptions ) ) . rejects . toThrow (
174
+ NO_INSTANCES_FOUND
175
+ ) ;
176
+ await expect ( findByA11yRole ( 'link' ) ) . rejects . toThrow ( FOUND_TWO_INSTANCES ) ;
124
177
} ) ;
125
178
126
- test ( 'getAllByA11yRole, queryAllByA11yRole' , ( ) => {
127
- const { getAllByA11yRole, queryAllByA11yRole } = render ( < Section /> ) ;
179
+ test ( 'getAllByA11yRole, queryAllByA11yRole, findAllByA11yRole' , async ( ) => {
180
+ const { getAllByA11yRole, queryAllByA11yRole, findAllByA11yRole } = render (
181
+ < Section />
182
+ ) ;
128
183
129
184
expect ( getAllByA11yRole ( 'link' ) ) . toHaveLength ( 2 ) ;
130
185
expect ( queryAllByA11yRole ( / i n k / g) ) . toHaveLength ( 2 ) ;
186
+
131
187
expect ( ( ) => getAllByA11yRole ( NO_MATCHES_TEXT ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
132
188
expect ( queryAllByA11yRole ( NO_MATCHES_TEXT ) ) . toEqual ( [ ] ) ;
189
+
190
+ await expect ( findAllByA11yRole ( 'link' ) ) . resolves . toHaveLength ( 2 ) ;
191
+ await expect (
192
+ findAllByA11yRole ( NO_MATCHES_TEXT , waitForOptions )
193
+ ) . rejects . toThrow ( NO_INSTANCES_FOUND ) ;
133
194
} ) ;
134
195
135
196
// TODO: accessibilityStates was removed from RN 0.62
@@ -169,8 +230,10 @@ test.skip('getAllByA11yStates, queryAllByA11yStates', () => {
169
230
expect ( queryAllByA11yStates ( NO_MATCHES_TEXT ) ) . toEqual ( [ ] ) ;
170
231
} ) ;
171
232
172
- test ( 'getByA11yState, queryByA11yState' , ( ) => {
173
- const { getByA11yState, queryByA11yState } = render ( < Section /> ) ;
233
+ test ( 'getByA11yState, queryByA11yState, findByA11yState' , async ( ) => {
234
+ const { getByA11yState, queryByA11yState, findByA11yState } = render (
235
+ < Section />
236
+ ) ;
174
237
175
238
expect ( getByA11yState ( { selected : true } ) . props . accessibilityState ) . toEqual ( {
176
239
selected : true ,
@@ -192,25 +255,49 @@ test('getByA11yState, queryByA11yState', () => {
192
255
expect ( ( ) => queryByA11yState ( { expanded : false } ) ) . toThrow (
193
256
FOUND_TWO_INSTANCES
194
257
) ;
258
+
259
+ const asyncButton = await findByA11yState ( { selected : true } ) ;
260
+ expect ( asyncButton . props . accessibilityState ) . toEqual ( {
261
+ selected : true ,
262
+ expanded : false ,
263
+ } ) ;
264
+ await expect (
265
+ findByA11yState ( { disabled : true } , waitForOptions )
266
+ ) . rejects . toThrow ( NO_INSTANCES_FOUND ) ;
267
+ await expect (
268
+ findByA11yState ( { expanded : false } , waitForOptions )
269
+ ) . rejects . toThrow ( FOUND_TWO_INSTANCES ) ;
195
270
} ) ;
196
271
197
- test ( 'getAllByA11yState, queryAllByA11yState' , ( ) => {
198
- const { getAllByA11yState, queryAllByA11yState } = render ( < Section /> ) ;
272
+ test ( 'getAllByA11yState, queryAllByA11yState, findAllByA11yState' , async ( ) => {
273
+ const { getAllByA11yState, queryAllByA11yState, findAllByA11yState } = render (
274
+ < Section />
275
+ ) ;
199
276
200
- expect ( getAllByA11yState ( { selected : true } ) . length ) . toEqual ( 1 ) ;
201
- expect ( queryAllByA11yState ( { selected : true } ) . length ) . toEqual ( 1 ) ;
277
+ expect ( getAllByA11yState ( { selected : true } ) ) . toHaveLength ( 1 ) ;
278
+ expect ( queryAllByA11yState ( { selected : true } ) ) . toHaveLength ( 1 ) ;
202
279
203
280
expect ( ( ) => getAllByA11yState ( { disabled : true } ) ) . toThrow (
204
281
NO_INSTANCES_FOUND
205
282
) ;
206
283
expect ( queryAllByA11yState ( { disabled : true } ) ) . toEqual ( [ ] ) ;
207
284
208
- expect ( getAllByA11yState ( { expanded : false } ) . length ) . toEqual ( 2 ) ;
209
- expect ( queryAllByA11yState ( { expanded : false } ) . length ) . toEqual ( 2 ) ;
285
+ expect ( getAllByA11yState ( { expanded : false } ) ) . toHaveLength ( 2 ) ;
286
+ expect ( queryAllByA11yState ( { expanded : false } ) ) . toHaveLength ( 2 ) ;
287
+
288
+ await expect ( findAllByA11yState ( { selected : true } ) ) . resolves . toHaveLength ( 1 ) ;
289
+ await expect (
290
+ findAllByA11yState ( { disabled : true } , waitForOptions )
291
+ ) . rejects . toThrow ( NO_INSTANCES_FOUND ) ;
292
+ await expect ( findAllByA11yState ( { expanded : false } ) ) . resolves . toHaveLength (
293
+ 2
294
+ ) ;
210
295
} ) ;
211
296
212
- test ( 'getByA11yValue, queryByA11yValue' , ( ) => {
213
- const { getByA11yValue, queryByA11yValue } = render ( < Section /> ) ;
297
+ test ( 'getByA11yValue, queryByA11yValue, findByA11yValue' , async ( ) => {
298
+ const { getByA11yValue, queryByA11yValue, findByA11yValue } = render (
299
+ < Section />
300
+ ) ;
214
301
215
302
expect ( getByA11yValue ( { min : 40 } ) . props . accessibilityValue ) . toEqual ( {
216
303
min : 40 ,
@@ -226,17 +313,37 @@ test('getByA11yValue, queryByA11yValue', () => {
226
313
227
314
expect ( ( ) => getByA11yValue ( { max : 60 } ) ) . toThrow ( FOUND_TWO_INSTANCES ) ;
228
315
expect ( ( ) => queryByA11yValue ( { max : 60 } ) ) . toThrow ( FOUND_TWO_INSTANCES ) ;
316
+
317
+ const asyncElement = await findByA11yValue ( { min : 40 } ) ;
318
+ expect ( asyncElement . props . accessibilityValue ) . toEqual ( {
319
+ min : 40 ,
320
+ max : 60 ,
321
+ } ) ;
322
+ await expect ( findByA11yValue ( { min : 50 } , waitForOptions ) ) . rejects . toThrow (
323
+ NO_INSTANCES_FOUND
324
+ ) ;
325
+ await expect ( findByA11yValue ( { max : 60 } , waitForOptions ) ) . rejects . toThrow (
326
+ FOUND_TWO_INSTANCES
327
+ ) ;
229
328
} ) ;
230
329
231
- test ( 'getAllByA11yValue, queryAllByA11yValue' , ( ) => {
232
- const { getAllByA11yValue, queryAllByA11yValue } = render ( < Section /> ) ;
330
+ test ( 'getAllByA11yValue, queryAllByA11yValue, findAllByA11yValue' , async ( ) => {
331
+ const { getAllByA11yValue, queryAllByA11yValue, findAllByA11yValue } = render (
332
+ < Section />
333
+ ) ;
233
334
234
- expect ( getAllByA11yValue ( { min : 40 } ) . length ) . toEqual ( 1 ) ;
235
- expect ( queryAllByA11yValue ( { min : 40 } ) . length ) . toEqual ( 1 ) ;
335
+ expect ( getAllByA11yValue ( { min : 40 } ) ) . toHaveLength ( 1 ) ;
336
+ expect ( queryAllByA11yValue ( { min : 40 } ) ) . toHaveLength ( 1 ) ;
236
337
237
338
expect ( ( ) => getAllByA11yValue ( { min : 50 } ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
238
339
expect ( queryAllByA11yValue ( { min : 50 } ) ) . toEqual ( [ ] ) ;
239
340
240
- expect ( getAllByA11yValue ( { max : 60 } ) . length ) . toEqual ( 2 ) ;
241
- expect ( queryAllByA11yValue ( { max : 60 } ) . length ) . toEqual ( 2 ) ;
341
+ expect ( queryAllByA11yValue ( { max : 60 } ) ) . toHaveLength ( 2 ) ;
342
+ expect ( getAllByA11yValue ( { max : 60 } ) ) . toHaveLength ( 2 ) ;
343
+
344
+ await expect ( findAllByA11yValue ( { min : 40 } ) ) . resolves . toHaveLength ( 1 ) ;
345
+ await expect ( findAllByA11yValue ( { min : 50 } , waitForOptions ) ) . rejects . toThrow (
346
+ NO_INSTANCES_FOUND
347
+ ) ;
348
+ await expect ( findAllByA11yValue ( { max : 60 } ) ) . resolves . toHaveLength ( 2 ) ;
242
349
} ) ;
0 commit comments