@@ -234,6 +234,17 @@ describe('supports accessibility states', () => {
234
234
235
235
expect ( getByRole ( 'button' , { disabled : false } ) ) . toBeTruthy ( ) ;
236
236
} ) ;
237
+
238
+ test ( 'does not return disabled elements when querying for non disabled' , ( ) => {
239
+ const { queryByRole } = render (
240
+ < TouchableOpacity
241
+ accessibilityRole = "button"
242
+ accessibilityState = { { disabled : true } }
243
+ > </ TouchableOpacity >
244
+ ) ;
245
+
246
+ expect ( queryByRole ( 'button' , { disabled : false } ) ) . toBe ( null ) ;
247
+ } ) ;
237
248
} ) ;
238
249
239
250
describe ( 'selected' , ( ) => {
@@ -287,6 +298,17 @@ describe('supports accessibility states', () => {
287
298
288
299
expect ( getByRole ( 'tab' , { selected : false } ) ) . toBeTruthy ( ) ;
289
300
} ) ;
301
+
302
+ test ( 'does not return selected elements when querying for non selected' , ( ) => {
303
+ const { queryByRole } = render (
304
+ < TouchableOpacity
305
+ accessibilityRole = "tab"
306
+ accessibilityState = { { selected : true } }
307
+ > </ TouchableOpacity >
308
+ ) ;
309
+
310
+ expect ( queryByRole ( 'tab' , { selected : false } ) ) . toBe ( null ) ;
311
+ } ) ;
290
312
} ) ;
291
313
292
314
describe ( 'checked' , ( ) => {
@@ -312,6 +334,17 @@ describe('supports accessibility states', () => {
312
334
expect ( getByRole ( 'checkbox' , { checked : 'mixed' } ) ) . toBeTruthy ( ) ;
313
335
} ) ;
314
336
337
+ it ( 'does not return mixed checkboxes when querying for checked: true' , ( ) => {
338
+ const { queryByRole } = render (
339
+ < TouchableOpacity
340
+ accessibilityRole = "checkbox"
341
+ accessibilityState = { { checked : 'mixed' } }
342
+ />
343
+ ) ;
344
+
345
+ expect ( queryByRole ( 'checkbox' , { checked : false } ) ) . toBe ( null ) ;
346
+ } ) ;
347
+
315
348
test ( 'returns the correct element when only one matches all the requirements' , ( ) => {
316
349
const { getByRole } = render (
317
350
< >
@@ -351,6 +384,17 @@ describe('supports accessibility states', () => {
351
384
352
385
expect ( getByRole ( 'checkbox' , { checked : false } ) ) . toBeTruthy ( ) ;
353
386
} ) ;
387
+
388
+ test ( 'does not return checked elements when querying for non checked' , ( ) => {
389
+ const { queryByRole } = render (
390
+ < TouchableOpacity
391
+ accessibilityRole = "checkbox"
392
+ accessibilityState = { { checked : true } }
393
+ > </ TouchableOpacity >
394
+ ) ;
395
+
396
+ expect ( queryByRole ( 'checkbox' , { checked : false } ) ) . toBe ( null ) ;
397
+ } ) ;
354
398
} ) ;
355
399
356
400
describe ( 'busy' , ( ) => {
@@ -404,6 +448,17 @@ describe('supports accessibility states', () => {
404
448
405
449
expect ( getByRole ( 'button' , { busy : false } ) ) . toBeTruthy ( ) ;
406
450
} ) ;
451
+
452
+ test ( 'does not return busy elements when querying for non busy' , ( ) => {
453
+ const { queryByRole } = render (
454
+ < TouchableOpacity
455
+ accessibilityRole = "button"
456
+ accessibilityState = { { selected : true } }
457
+ > </ TouchableOpacity >
458
+ ) ;
459
+
460
+ expect ( queryByRole ( 'button' , { selected : false } ) ) . toBe ( null ) ;
461
+ } ) ;
407
462
} ) ;
408
463
409
464
describe ( 'expanded' , ( ) => {
@@ -457,6 +512,17 @@ describe('supports accessibility states', () => {
457
512
458
513
expect ( getByRole ( 'button' , { expanded : false } ) ) . toBeTruthy ( ) ;
459
514
} ) ;
515
+
516
+ test ( 'does not return expanded elements when querying for non expanded' , ( ) => {
517
+ const { queryByRole } = render (
518
+ < TouchableOpacity
519
+ accessibilityRole = "button"
520
+ accessibilityState = { { expanded : true } }
521
+ > </ TouchableOpacity >
522
+ ) ;
523
+
524
+ expect ( queryByRole ( 'button' , { expanded : false } ) ) . toBe ( null ) ;
525
+ } ) ;
460
526
} ) ;
461
527
462
528
test ( 'matches an element combining all the options' , ( ) => {
0 commit comments