@@ -192,14 +192,15 @@ describe('supports name option', () => {
192
192
describe ( 'supports accessibility states' , ( ) => {
193
193
describe ( 'disabled' , ( ) => {
194
194
test ( 'returns a disabled element when required' , ( ) => {
195
- const { getByRole } = render (
195
+ const { getByRole, queryByRole } = render (
196
196
< TouchableOpacity
197
197
accessibilityRole = "button"
198
198
accessibilityState = { { disabled : true } }
199
199
/>
200
200
) ;
201
201
202
202
expect ( getByRole ( 'button' , { disabled : true } ) ) . toBeTruthy ( ) ;
203
+ expect ( queryByRole ( 'button' , { disabled : false } ) ) . toBe ( null ) ;
203
204
} ) ;
204
205
205
206
test ( 'returns the correct element when only one matches all the requirements' , ( ) => {
@@ -224,22 +225,24 @@ describe('supports accessibility states', () => {
224
225
} ) ;
225
226
226
227
test ( 'returns an implicitly enabled element' , ( ) => {
227
- const { getByRole } = render (
228
+ const { getByRole, queryByRole } = render (
228
229
< TouchableOpacity accessibilityRole = "button" > </ TouchableOpacity >
229
230
) ;
230
231
231
232
expect ( getByRole ( 'button' , { disabled : false } ) ) . toBeTruthy ( ) ;
233
+ expect ( queryByRole ( 'button' , { disabled : true } ) ) . toBe ( null ) ;
232
234
} ) ;
233
235
234
236
test ( 'returns an explicitly enabled element' , ( ) => {
235
- const { getByRole } = render (
237
+ const { getByRole, queryByRole } = render (
236
238
< TouchableOpacity
237
239
accessibilityRole = "button"
238
240
accessibilityState = { { disabled : false } }
239
241
> </ TouchableOpacity >
240
242
) ;
241
243
242
244
expect ( getByRole ( 'button' , { disabled : false } ) ) . toBeTruthy ( ) ;
245
+ expect ( queryByRole ( 'button' , { disabled : true } ) ) . toBe ( null ) ;
243
246
} ) ;
244
247
245
248
test ( 'does not return disabled elements when querying for non disabled' , ( ) => {
@@ -288,14 +291,15 @@ describe('supports accessibility states', () => {
288
291
289
292
describe ( 'selected' , ( ) => {
290
293
test ( 'returns a selected element when required' , ( ) => {
291
- const { getByRole } = render (
294
+ const { getByRole, queryByRole } = render (
292
295
< TouchableOpacity
293
296
accessibilityRole = "tab"
294
297
accessibilityState = { { selected : true } }
295
298
/>
296
299
) ;
297
300
298
301
expect ( getByRole ( 'tab' , { selected : true } ) ) . toBeTruthy ( ) ;
302
+ expect ( queryByRole ( 'tab' , { selected : false } ) ) . toBe ( null ) ;
299
303
} ) ;
300
304
301
305
test ( 'returns the correct element when only one matches all the requirements' , ( ) => {
@@ -320,22 +324,24 @@ describe('supports accessibility states', () => {
320
324
} ) ;
321
325
322
326
test ( 'returns an implicitly non selected element' , ( ) => {
323
- const { getByRole } = render (
327
+ const { getByRole, queryByRole } = render (
324
328
< TouchableOpacity accessibilityRole = "tab" > </ TouchableOpacity >
325
329
) ;
326
330
327
331
expect ( getByRole ( 'tab' , { selected : false } ) ) . toBeTruthy ( ) ;
332
+ expect ( queryByRole ( 'tab' , { selected : true } ) ) . toBe ( null ) ;
328
333
} ) ;
329
334
330
335
test ( 'returns an explicitly non selected element' , ( ) => {
331
- const { getByRole } = render (
336
+ const { getByRole, queryByRole } = render (
332
337
< TouchableOpacity
333
338
accessibilityRole = "tab"
334
339
accessibilityState = { { selected : false } }
335
340
> </ TouchableOpacity >
336
341
) ;
337
342
338
343
expect ( getByRole ( 'tab' , { selected : false } ) ) . toBeTruthy ( ) ;
344
+ expect ( queryByRole ( 'tab' , { selected : true } ) ) . toBe ( null ) ;
339
345
} ) ;
340
346
341
347
test ( 'does not return selected elements when querying for non selected' , ( ) => {
@@ -352,25 +358,29 @@ describe('supports accessibility states', () => {
352
358
353
359
describe ( 'checked' , ( ) => {
354
360
test ( 'returns a checked element when required' , ( ) => {
355
- const { getByRole } = render (
361
+ const { getByRole, queryByRole } = render (
356
362
< TouchableOpacity
357
363
accessibilityRole = "checkbox"
358
364
accessibilityState = { { checked : true } }
359
365
/>
360
366
) ;
361
367
362
368
expect ( getByRole ( 'checkbox' , { checked : true } ) ) . toBeTruthy ( ) ;
369
+ expect ( queryByRole ( 'checkbox' , { checked : false } ) ) . toBe ( null ) ;
370
+ expect ( queryByRole ( 'checkbox' , { checked : 'mixed' } ) ) . toBe ( null ) ;
363
371
} ) ;
364
372
365
373
it ( 'returns `mixed` checkboxes' , ( ) => {
366
- const { getByRole } = render (
374
+ const { queryByRole , getByRole } = render (
367
375
< TouchableOpacity
368
376
accessibilityRole = "checkbox"
369
377
accessibilityState = { { checked : 'mixed' } }
370
378
/>
371
379
) ;
372
380
373
381
expect ( getByRole ( 'checkbox' , { checked : 'mixed' } ) ) . toBeTruthy ( ) ;
382
+ expect ( queryByRole ( 'checkbox' , { checked : true } ) ) . toBe ( null ) ;
383
+ expect ( queryByRole ( 'checkbox' , { checked : false } ) ) . toBe ( null ) ;
374
384
} ) ;
375
385
376
386
it ( 'does not return mixed checkboxes when querying for checked: true' , ( ) => {
@@ -414,14 +424,15 @@ describe('supports accessibility states', () => {
414
424
} ) ;
415
425
416
426
test ( 'returns an explicitly non checked element' , ( ) => {
417
- const { getByRole } = render (
427
+ const { getByRole, queryByRole } = render (
418
428
< TouchableOpacity
419
429
accessibilityRole = "checkbox"
420
430
accessibilityState = { { checked : false } }
421
431
> </ TouchableOpacity >
422
432
) ;
423
433
424
434
expect ( getByRole ( 'checkbox' , { checked : false } ) ) . toBeTruthy ( ) ;
435
+ expect ( queryByRole ( 'checkbox' , { checked : true } ) ) . toBe ( null ) ;
425
436
} ) ;
426
437
427
438
test ( 'does not return checked elements when querying for non checked' , ( ) => {
@@ -434,18 +445,30 @@ describe('supports accessibility states', () => {
434
445
435
446
expect ( queryByRole ( 'checkbox' , { checked : false } ) ) . toBe ( null ) ;
436
447
} ) ;
448
+
449
+ test ( 'does not return mixed elements when querying for non checked' , ( ) => {
450
+ const { queryByRole } = render (
451
+ < TouchableOpacity
452
+ accessibilityRole = "checkbox"
453
+ accessibilityState = { { checked : 'mixed' } }
454
+ > </ TouchableOpacity >
455
+ ) ;
456
+
457
+ expect ( queryByRole ( 'checkbox' , { checked : false } ) ) . toBe ( null ) ;
458
+ } ) ;
437
459
} ) ;
438
460
439
461
describe ( 'busy' , ( ) => {
440
462
test ( 'returns a busy element when required' , ( ) => {
441
- const { getByRole } = render (
463
+ const { getByRole, queryByRole } = render (
442
464
< TouchableOpacity
443
465
accessibilityRole = "button"
444
466
accessibilityState = { { busy : true } }
445
467
/>
446
468
) ;
447
469
448
470
expect ( getByRole ( 'button' , { busy : true } ) ) . toBeTruthy ( ) ;
471
+ expect ( queryByRole ( 'button' , { busy : false } ) ) . toBe ( null ) ;
449
472
} ) ;
450
473
451
474
test ( 'returns the correct element when only one matches all the requirements' , ( ) => {
@@ -470,22 +493,24 @@ describe('supports accessibility states', () => {
470
493
} ) ;
471
494
472
495
test ( 'returns an implicitly non busy element' , ( ) => {
473
- const { getByRole } = render (
496
+ const { getByRole, queryByRole } = render (
474
497
< TouchableOpacity accessibilityRole = "button" > </ TouchableOpacity >
475
498
) ;
476
499
477
500
expect ( getByRole ( 'button' , { busy : false } ) ) . toBeTruthy ( ) ;
501
+ expect ( queryByRole ( 'button' , { busy : true } ) ) . toBe ( null ) ;
478
502
} ) ;
479
503
480
504
test ( 'returns an explicitly non busy element' , ( ) => {
481
- const { getByRole } = render (
505
+ const { getByRole, queryByRole } = render (
482
506
< TouchableOpacity
483
507
accessibilityRole = "button"
484
508
accessibilityState = { { busy : false } }
485
509
> </ TouchableOpacity >
486
510
) ;
487
511
488
512
expect ( getByRole ( 'button' , { busy : false } ) ) . toBeTruthy ( ) ;
513
+ expect ( queryByRole ( 'button' , { busy : true } ) ) . toBe ( null ) ;
489
514
} ) ;
490
515
491
516
test ( 'does not return busy elements when querying for non busy' , ( ) => {
@@ -502,14 +527,15 @@ describe('supports accessibility states', () => {
502
527
503
528
describe ( 'expanded' , ( ) => {
504
529
test ( 'returns a expanded element when required' , ( ) => {
505
- const { getByRole } = render (
530
+ const { getByRole, queryByRole } = render (
506
531
< TouchableOpacity
507
532
accessibilityRole = "button"
508
533
accessibilityState = { { expanded : true } }
509
534
/>
510
535
) ;
511
536
512
537
expect ( getByRole ( 'button' , { expanded : true } ) ) . toBeTruthy ( ) ;
538
+ expect ( queryByRole ( 'button' , { expanded : false } ) ) . toBe ( null ) ;
513
539
} ) ;
514
540
515
541
test ( 'returns the correct element when only one matches all the requirements' , ( ) => {
@@ -542,14 +568,15 @@ describe('supports accessibility states', () => {
542
568
} ) ;
543
569
544
570
test ( 'returns an explicitly non expanded element' , ( ) => {
545
- const { getByRole } = render (
571
+ const { getByRole, queryByRole } = render (
546
572
< TouchableOpacity
547
573
accessibilityRole = "button"
548
574
accessibilityState = { { expanded : false } }
549
575
> </ TouchableOpacity >
550
576
) ;
551
577
552
578
expect ( getByRole ( 'button' , { expanded : false } ) ) . toBeTruthy ( ) ;
579
+ expect ( queryByRole ( 'button' , { expanded : true } ) ) . toBe ( null ) ;
553
580
} ) ;
554
581
555
582
test ( 'does not return expanded elements when querying for non expanded' , ( ) => {
@@ -565,7 +592,7 @@ describe('supports accessibility states', () => {
565
592
} ) ;
566
593
567
594
test ( 'ignores non queried accessibilityState' , ( ) => {
568
- const { getByRole } = render (
595
+ const { getByRole, queryByRole } = render (
569
596
< TouchableOpacity
570
597
accessibilityRole = "button"
571
598
accessibilityState = { {
@@ -584,6 +611,12 @@ describe('supports accessibility states', () => {
584
611
disabled : true ,
585
612
} )
586
613
) . toBeTruthy ( ) ;
614
+ expect (
615
+ queryByRole ( 'button' , {
616
+ name : 'Save' ,
617
+ disabled : false ,
618
+ } )
619
+ ) . toBe ( null ) ;
587
620
} ) ;
588
621
589
622
test ( 'matches an element combining all the options' , ( ) => {
0 commit comments