@@ -9,9 +9,17 @@ const TEXT_LABEL = 'cool text';
9
9
const TEXT_HINT = 'static text' ;
10
10
// Little hack to make all the methods happy with type
11
11
const NO_MATCHES_TEXT : any = 'not-existent-element' ;
12
- const NO_INSTANCES_FOUND = 'No instances found' ;
13
12
const FOUND_TWO_INSTANCES = 'Expected 1 but found 2 instances' ;
14
13
14
+ const getNoInstancesFoundMessage = (
15
+ name : string ,
16
+ value : string = NO_MATCHES_TEXT ,
17
+ includeQuotes : boolean = true
18
+ ) => {
19
+ const quote = includeQuotes ? '"' : '' ;
20
+ return `No instances found with ${ name } ${ quote } ${ value } ${ quote } ` ;
21
+ } ;
22
+
15
23
const Typography = ( { children, ...rest } : any ) => {
16
24
return < Text { ...rest } > { children } </ Text > ;
17
25
} ;
@@ -73,7 +81,9 @@ test('getByA11yLabel, queryByA11yLabel, findByA11yLabel', async () => {
73
81
const button = queryByA11yLabel ( / b u t t o n / g) ;
74
82
expect ( button && button . props . accessibilityLabel ) . toEqual ( BUTTON_LABEL ) ;
75
83
76
- expect ( ( ) => getByA11yLabel ( NO_MATCHES_TEXT ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
84
+ expect ( ( ) => getByA11yLabel ( NO_MATCHES_TEXT ) ) . toThrow (
85
+ getNoInstancesFoundMessage ( 'accessibilityLabel' )
86
+ ) ;
77
87
expect ( queryByA11yLabel ( NO_MATCHES_TEXT ) ) . toBeNull ( ) ;
78
88
79
89
expect ( ( ) => getByA11yLabel ( TEXT_LABEL ) ) . toThrow ( FOUND_TWO_INSTANCES ) ;
@@ -83,7 +93,7 @@ test('getByA11yLabel, queryByA11yLabel, findByA11yLabel', async () => {
83
93
expect ( asyncButton . props . accessibilityLabel ) . toEqual ( BUTTON_LABEL ) ;
84
94
await expect (
85
95
findByA11yLabel ( NO_MATCHES_TEXT , waitForOptions )
86
- ) . rejects . toThrow ( NO_INSTANCES_FOUND ) ;
96
+ ) . rejects . toThrow ( getNoInstancesFoundMessage ( 'accessibilityLabel' ) ) ;
87
97
88
98
await expect ( findByA11yLabel ( TEXT_LABEL , waitForOptions ) ) . rejects . toThrow (
89
99
FOUND_TWO_INSTANCES
@@ -98,12 +108,14 @@ test('getAllByA11yLabel, queryAllByA11yLabel, findAllByA11yLabel', async () => {
98
108
expect ( getAllByA11yLabel ( TEXT_LABEL ) ) . toHaveLength ( 2 ) ;
99
109
expect ( queryAllByA11yLabel ( / c o o l / g) ) . toHaveLength ( 3 ) ;
100
110
101
- expect ( ( ) => getAllByA11yLabel ( NO_MATCHES_TEXT ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
111
+ expect ( ( ) => getAllByA11yLabel ( NO_MATCHES_TEXT ) ) . toThrow (
112
+ getNoInstancesFoundMessage ( 'accessibilityLabel' )
113
+ ) ;
102
114
expect ( queryAllByA11yLabel ( NO_MATCHES_TEXT ) ) . toEqual ( [ ] ) ;
103
115
104
116
await expect ( findAllByA11yLabel ( TEXT_LABEL ) ) . resolves . toHaveLength ( 2 ) ;
105
117
await expect ( findAllByA11yLabel ( NO_MATCHES_TEXT ) ) . rejects . toThrow (
106
- NO_INSTANCES_FOUND
118
+ getNoInstancesFoundMessage ( 'accessibilityLabel' )
107
119
) ;
108
120
} ) ;
109
121
@@ -118,7 +130,9 @@ test('getByA11yHint, queryByA11yHint, findByA11yHint', async () => {
118
130
const button = queryByA11yHint ( / b u t t o n / g) ;
119
131
expect ( button && button . props . accessibilityHint ) . toEqual ( BUTTON_HINT ) ;
120
132
121
- expect ( ( ) => getByA11yHint ( NO_MATCHES_TEXT ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
133
+ expect ( ( ) => getByA11yHint ( NO_MATCHES_TEXT ) ) . toThrow (
134
+ getNoInstancesFoundMessage ( 'accessibilityHint' )
135
+ ) ;
122
136
expect ( queryByA11yHint ( NO_MATCHES_TEXT ) ) . toBeNull ( ) ;
123
137
124
138
expect ( ( ) => getByA11yHint ( TEXT_HINT ) ) . toThrow ( FOUND_TWO_INSTANCES ) ;
@@ -127,7 +141,7 @@ test('getByA11yHint, queryByA11yHint, findByA11yHint', async () => {
127
141
const asyncButton = await findByA11yHint ( BUTTON_HINT ) ;
128
142
expect ( asyncButton . props . accessibilityHint ) . toEqual ( BUTTON_HINT ) ;
129
143
await expect ( findByA11yHint ( NO_MATCHES_TEXT , waitForOptions ) ) . rejects . toThrow (
130
- NO_INSTANCES_FOUND
144
+ getNoInstancesFoundMessage ( 'accessibilityHint' )
131
145
) ;
132
146
await expect ( findByA11yHint ( TEXT_HINT , waitForOptions ) ) . rejects . toThrow (
133
147
FOUND_TWO_INSTANCES
@@ -142,12 +156,14 @@ test('getAllByA11yHint, queryAllByA11yHint, findAllByA11yHint', async () => {
142
156
expect ( getAllByA11yHint ( TEXT_HINT ) ) . toHaveLength ( 2 ) ;
143
157
expect ( queryAllByA11yHint ( / s t a t i c / g) ) . toHaveLength ( 2 ) ;
144
158
145
- expect ( ( ) => getAllByA11yHint ( NO_MATCHES_TEXT ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
159
+ expect ( ( ) => getAllByA11yHint ( NO_MATCHES_TEXT ) ) . toThrow (
160
+ getNoInstancesFoundMessage ( 'accessibilityHint' )
161
+ ) ;
146
162
expect ( queryAllByA11yHint ( NO_MATCHES_TEXT ) ) . toEqual ( [ ] ) ;
147
163
148
164
await expect ( findAllByA11yHint ( TEXT_HINT ) ) . resolves . toHaveLength ( 2 ) ;
149
165
await expect ( findAllByA11yHint ( NO_MATCHES_TEXT ) ) . rejects . toThrow (
150
- NO_INSTANCES_FOUND
166
+ getNoInstancesFoundMessage ( 'accessibilityHint' )
151
167
) ;
152
168
} ) ;
153
169
@@ -160,7 +176,9 @@ test('getByA11yRole, queryByA11yRole, findByA11yRole', async () => {
160
176
const button = queryByA11yRole ( / b u t t o n / g) ;
161
177
expect ( button && button . props . accessibilityRole ) . toEqual ( 'button' ) ;
162
178
163
- expect ( ( ) => getByA11yRole ( NO_MATCHES_TEXT ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
179
+ expect ( ( ) => getByA11yRole ( NO_MATCHES_TEXT ) ) . toThrow (
180
+ getNoInstancesFoundMessage ( 'accessibilityRole' )
181
+ ) ;
164
182
expect ( queryByA11yRole ( NO_MATCHES_TEXT ) ) . toBeNull ( ) ;
165
183
166
184
expect ( ( ) => getByA11yRole ( 'link' ) ) . toThrow ( FOUND_TWO_INSTANCES ) ;
@@ -169,7 +187,7 @@ test('getByA11yRole, queryByA11yRole, findByA11yRole', async () => {
169
187
const asyncButton = await findByA11yRole ( 'button' ) ;
170
188
expect ( asyncButton . props . accessibilityRole ) . toEqual ( 'button' ) ;
171
189
await expect ( findByA11yRole ( NO_MATCHES_TEXT , waitForOptions ) ) . rejects . toThrow (
172
- NO_INSTANCES_FOUND
190
+ getNoInstancesFoundMessage ( 'accessibilityRole' )
173
191
) ;
174
192
await expect ( findByA11yRole ( 'link' ) ) . rejects . toThrow ( FOUND_TWO_INSTANCES ) ;
175
193
} ) ;
@@ -182,13 +200,15 @@ test('getAllByA11yRole, queryAllByA11yRole, findAllByA11yRole', async () => {
182
200
expect ( getAllByA11yRole ( 'link' ) ) . toHaveLength ( 2 ) ;
183
201
expect ( queryAllByA11yRole ( / i n k / g) ) . toHaveLength ( 2 ) ;
184
202
185
- expect ( ( ) => getAllByA11yRole ( NO_MATCHES_TEXT ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
203
+ expect ( ( ) => getAllByA11yRole ( NO_MATCHES_TEXT ) ) . toThrow (
204
+ getNoInstancesFoundMessage ( 'accessibilityRole' )
205
+ ) ;
186
206
expect ( queryAllByA11yRole ( NO_MATCHES_TEXT ) ) . toEqual ( [ ] ) ;
187
207
188
208
await expect ( findAllByA11yRole ( 'link' ) ) . resolves . toHaveLength ( 2 ) ;
189
209
await expect (
190
210
findAllByA11yRole ( NO_MATCHES_TEXT , waitForOptions )
191
- ) . rejects . toThrow ( NO_INSTANCES_FOUND ) ;
211
+ ) . rejects . toThrow ( getNoInstancesFoundMessage ( 'accessibilityRole' ) ) ;
192
212
} ) ;
193
213
194
214
// TODO: accessibilityStates was removed from RN 0.62
@@ -209,7 +229,9 @@ test.skip('getByA11yStates, queryByA11yStates', () => {
209
229
disabledSelected && disabledSelected . props . accessibilityStates
210
230
) . toEqual ( [ 'selected' , 'disabled' ] ) ;
211
231
212
- expect ( ( ) => getByA11yStates ( NO_MATCHES_TEXT ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
232
+ expect ( ( ) => getByA11yStates ( NO_MATCHES_TEXT ) ) . toThrow (
233
+ getNoInstancesFoundMessage ( 'accessibilityStates' )
234
+ ) ;
213
235
expect ( queryByA11yStates ( NO_MATCHES_TEXT ) ) . toBeNull ( ) ;
214
236
expect ( queryByA11yStates ( [ ] ) ) . toBeNull ( ) ;
215
237
@@ -224,7 +246,9 @@ test.skip('getAllByA11yStates, queryAllByA11yStates', () => {
224
246
expect ( getAllByA11yStates ( 'selected' ) ) . toHaveLength ( 3 ) ;
225
247
expect ( queryAllByA11yStates ( [ 'selected' ] ) ) . toHaveLength ( 3 ) ;
226
248
227
- expect ( ( ) => getAllByA11yStates ( [ ] ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
249
+ expect ( ( ) => getAllByA11yStates ( [ ] ) ) . toThrow (
250
+ getNoInstancesFoundMessage ( 'accessibilityStates' )
251
+ ) ;
228
252
expect ( queryAllByA11yStates ( NO_MATCHES_TEXT ) ) . toEqual ( [ ] ) ;
229
253
} ) ;
230
254
@@ -244,7 +268,13 @@ test('getByA11yState, queryByA11yState, findByA11yState', async () => {
244
268
expanded : false ,
245
269
} ) ;
246
270
247
- expect ( ( ) => getByA11yState ( { disabled : true } ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
271
+ expect ( ( ) => getByA11yState ( { disabled : true } ) ) . toThrow (
272
+ getNoInstancesFoundMessage (
273
+ 'accessibilityState' ,
274
+ '{"disabled": true}' ,
275
+ false
276
+ )
277
+ ) ;
248
278
expect ( queryByA11yState ( { disabled : true } ) ) . toEqual ( null ) ;
249
279
250
280
expect ( ( ) => getByA11yState ( { expanded : false } ) ) . toThrow (
@@ -261,7 +291,13 @@ test('getByA11yState, queryByA11yState, findByA11yState', async () => {
261
291
} ) ;
262
292
await expect (
263
293
findByA11yState ( { disabled : true } , waitForOptions )
264
- ) . rejects . toThrow ( NO_INSTANCES_FOUND ) ;
294
+ ) . rejects . toThrow (
295
+ getNoInstancesFoundMessage (
296
+ 'accessibilityState' ,
297
+ '{"disabled": true}' ,
298
+ false
299
+ )
300
+ ) ;
265
301
await expect (
266
302
findByA11yState ( { expanded : false } , waitForOptions )
267
303
) . rejects . toThrow ( FOUND_TWO_INSTANCES ) ;
@@ -276,7 +312,11 @@ test('getAllByA11yState, queryAllByA11yState, findAllByA11yState', async () => {
276
312
expect ( queryAllByA11yState ( { selected : true } ) ) . toHaveLength ( 1 ) ;
277
313
278
314
expect ( ( ) => getAllByA11yState ( { disabled : true } ) ) . toThrow (
279
- NO_INSTANCES_FOUND
315
+ getNoInstancesFoundMessage (
316
+ 'accessibilityState' ,
317
+ '{"disabled": true}' ,
318
+ false
319
+ )
280
320
) ;
281
321
expect ( queryAllByA11yState ( { disabled : true } ) ) . toEqual ( [ ] ) ;
282
322
@@ -286,7 +326,13 @@ test('getAllByA11yState, queryAllByA11yState, findAllByA11yState', async () => {
286
326
await expect ( findAllByA11yState ( { selected : true } ) ) . resolves . toHaveLength ( 1 ) ;
287
327
await expect (
288
328
findAllByA11yState ( { disabled : true } , waitForOptions )
289
- ) . rejects . toThrow ( NO_INSTANCES_FOUND ) ;
329
+ ) . rejects . toThrow (
330
+ getNoInstancesFoundMessage (
331
+ 'accessibilityState' ,
332
+ '{"disabled": true}' ,
333
+ false
334
+ )
335
+ ) ;
290
336
await expect ( findAllByA11yState ( { expanded : false } ) ) . resolves . toHaveLength (
291
337
2
292
338
) ;
@@ -306,7 +352,9 @@ test('getByA11yValue, queryByA11yValue, findByA11yValue', async () => {
306
352
max : 60 ,
307
353
} ) ;
308
354
309
- expect ( ( ) => getByA11yValue ( { min : 50 } ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
355
+ expect ( ( ) => getByA11yValue ( { min : 50 } ) ) . toThrow (
356
+ getNoInstancesFoundMessage ( 'accessibilityValue' , '{"min": 50}' , false )
357
+ ) ;
310
358
expect ( queryByA11yValue ( { min : 50 } ) ) . toEqual ( null ) ;
311
359
312
360
expect ( ( ) => getByA11yValue ( { max : 60 } ) ) . toThrow ( FOUND_TWO_INSTANCES ) ;
@@ -318,7 +366,7 @@ test('getByA11yValue, queryByA11yValue, findByA11yValue', async () => {
318
366
max : 60 ,
319
367
} ) ;
320
368
await expect ( findByA11yValue ( { min : 50 } , waitForOptions ) ) . rejects . toThrow (
321
- NO_INSTANCES_FOUND
369
+ getNoInstancesFoundMessage ( 'accessibilityValue' , '{"min": 50}' , false )
322
370
) ;
323
371
await expect ( findByA11yValue ( { max : 60 } , waitForOptions ) ) . rejects . toThrow (
324
372
FOUND_TWO_INSTANCES
@@ -333,15 +381,17 @@ test('getAllByA11yValue, queryAllByA11yValue, findAllByA11yValue', async () => {
333
381
expect ( getAllByA11yValue ( { min : 40 } ) ) . toHaveLength ( 1 ) ;
334
382
expect ( queryAllByA11yValue ( { min : 40 } ) ) . toHaveLength ( 1 ) ;
335
383
336
- expect ( ( ) => getAllByA11yValue ( { min : 50 } ) ) . toThrow ( NO_INSTANCES_FOUND ) ;
384
+ expect ( ( ) => getAllByA11yValue ( { min : 50 } ) ) . toThrow (
385
+ getNoInstancesFoundMessage ( 'accessibilityValue' , '{"min": 50}' , false )
386
+ ) ;
337
387
expect ( queryAllByA11yValue ( { min : 50 } ) ) . toEqual ( [ ] ) ;
338
388
339
389
expect ( queryAllByA11yValue ( { max : 60 } ) ) . toHaveLength ( 2 ) ;
340
390
expect ( getAllByA11yValue ( { max : 60 } ) ) . toHaveLength ( 2 ) ;
341
391
342
392
await expect ( findAllByA11yValue ( { min : 40 } ) ) . resolves . toHaveLength ( 1 ) ;
343
393
await expect ( findAllByA11yValue ( { min : 50 } , waitForOptions ) ) . rejects . toThrow (
344
- NO_INSTANCES_FOUND
394
+ getNoInstancesFoundMessage ( 'accessibilityValue' , '{"min": 50}' , false )
345
395
) ;
346
396
await expect ( findAllByA11yValue ( { max : 60 } ) ) . resolves . toHaveLength ( 2 ) ;
347
397
} ) ;
0 commit comments