1
1
import * as React from 'react' ;
2
- import { TouchableOpacity , Text } from 'react-native' ;
2
+ import { View , Text , Pressable , TouchableOpacity } from 'react-native' ;
3
3
import { render } from '../..' ;
4
4
5
5
const TEXT_LABEL = 'cool text' ;
6
6
7
- const getMultipleInstancesFoundMessage = ( value : string ) => {
8
- return `Found multiple elements with accessibilityState: ${ value } ` ;
9
- } ;
10
-
11
- const getNoInstancesFoundMessage = ( value : string ) => {
12
- return `Unable to find an element with accessibilityState: ${ value } ` ;
13
- } ;
14
-
15
7
const Typography = ( { children, ...rest } : any ) => {
16
8
return < Text { ...rest } > { children } </ Text > ;
17
9
} ;
@@ -48,15 +40,15 @@ test('getByA11yState, queryByA11yState, findByA11yState', async () => {
48
40
} ) ;
49
41
50
42
expect ( ( ) => getByA11yState ( { disabled : true } ) ) . toThrow (
51
- getNoInstancesFoundMessage ( '{" disabled": true}' )
43
+ 'Unable to find an element with disabled state: true'
52
44
) ;
53
45
expect ( queryByA11yState ( { disabled : true } ) ) . toEqual ( null ) ;
54
46
55
47
expect ( ( ) => getByA11yState ( { expanded : false } ) ) . toThrow (
56
- getMultipleInstancesFoundMessage ( '{" expanded": false}' )
48
+ 'Found multiple elements with expanded state: false'
57
49
) ;
58
50
expect ( ( ) => queryByA11yState ( { expanded : false } ) ) . toThrow (
59
- getMultipleInstancesFoundMessage ( '{" expanded": false}' )
51
+ 'Found multiple elements with expanded state: false'
60
52
) ;
61
53
62
54
const asyncButton = await findByA11yState ( { selected : true } ) ;
@@ -65,10 +57,10 @@ test('getByA11yState, queryByA11yState, findByA11yState', async () => {
65
57
expanded : false ,
66
58
} ) ;
67
59
await expect ( findByA11yState ( { disabled : true } ) ) . rejects . toThrow (
68
- getNoInstancesFoundMessage ( '{" disabled": true}' )
60
+ 'Unable to find an element with disabled state: true'
69
61
) ;
70
62
await expect ( findByA11yState ( { expanded : false } ) ) . rejects . toThrow (
71
- getMultipleInstancesFoundMessage ( '{" expanded": false}' )
63
+ 'Found multiple elements with expanded state: false'
72
64
) ;
73
65
} ) ;
74
66
@@ -81,7 +73,7 @@ test('getAllByA11yState, queryAllByA11yState, findAllByA11yState', async () => {
81
73
expect ( queryAllByA11yState ( { selected : true } ) ) . toHaveLength ( 1 ) ;
82
74
83
75
expect ( ( ) => getAllByA11yState ( { disabled : true } ) ) . toThrow (
84
- getNoInstancesFoundMessage ( '{" disabled": true}' )
76
+ 'Unable to find an element with disabled state: true'
85
77
) ;
86
78
expect ( queryAllByA11yState ( { disabled : true } ) ) . toEqual ( [ ] ) ;
87
79
@@ -90,9 +82,147 @@ test('getAllByA11yState, queryAllByA11yState, findAllByA11yState', async () => {
90
82
91
83
await expect ( findAllByA11yState ( { selected : true } ) ) . resolves . toHaveLength ( 1 ) ;
92
84
await expect ( findAllByA11yState ( { disabled : true } ) ) . rejects . toThrow (
93
- getNoInstancesFoundMessage ( '{" disabled": true}' )
85
+ 'Unable to find an element with disabled state: true'
94
86
) ;
95
87
await expect ( findAllByA11yState ( { expanded : false } ) ) . resolves . toHaveLength (
96
88
2
97
89
) ;
98
90
} ) ;
91
+
92
+ describe ( 'checked state matching' , ( ) => {
93
+ it ( 'handles true' , ( ) => {
94
+ const view = render ( < View accessibilityState = { { checked : true } } /> ) ;
95
+
96
+ expect ( view . getByA11yState ( { checked : true } ) ) . toBeTruthy ( ) ;
97
+ expect ( view . queryByA11yState ( { checked : 'mixed' } ) ) . toBeFalsy ( ) ;
98
+ expect ( view . queryByA11yState ( { checked : false } ) ) . toBeFalsy ( ) ;
99
+ } ) ;
100
+
101
+ it ( 'handles mixed' , ( ) => {
102
+ const view = render ( < View accessibilityState = { { checked : 'mixed' } } /> ) ;
103
+
104
+ expect ( view . getByA11yState ( { checked : 'mixed' } ) ) . toBeTruthy ( ) ;
105
+ expect ( view . queryByA11yState ( { checked : true } ) ) . toBeFalsy ( ) ;
106
+ expect ( view . queryByA11yState ( { checked : false } ) ) . toBeFalsy ( ) ;
107
+ } ) ;
108
+
109
+ it ( 'handles false' , ( ) => {
110
+ const view = render ( < View accessibilityState = { { checked : false } } /> ) ;
111
+
112
+ expect ( view . getByA11yState ( { checked : false } ) ) . toBeTruthy ( ) ;
113
+ expect ( view . queryByA11yState ( { checked : true } ) ) . toBeFalsy ( ) ;
114
+ expect ( view . queryByA11yState ( { checked : 'mixed' } ) ) . toBeFalsy ( ) ;
115
+ } ) ;
116
+
117
+ it ( 'handles default' , ( ) => {
118
+ const view = render ( < View accessibilityState = { { } } /> ) ;
119
+
120
+ expect ( view . queryByA11yState ( { checked : false } ) ) . toBeFalsy ( ) ;
121
+ expect ( view . queryByA11yState ( { checked : true } ) ) . toBeFalsy ( ) ;
122
+ expect ( view . queryByA11yState ( { checked : 'mixed' } ) ) . toBeFalsy ( ) ;
123
+ } ) ;
124
+ } ) ;
125
+
126
+ describe ( 'expanded state matching' , ( ) => {
127
+ it ( 'handles true' , ( ) => {
128
+ const view = render ( < View accessibilityState = { { expanded : true } } /> ) ;
129
+
130
+ expect ( view . getByA11yState ( { expanded : true } ) ) . toBeTruthy ( ) ;
131
+ expect ( view . queryByA11yState ( { expanded : false } ) ) . toBeFalsy ( ) ;
132
+ } ) ;
133
+
134
+ it ( 'handles false' , ( ) => {
135
+ const view = render ( < View accessibilityState = { { expanded : false } } /> ) ;
136
+
137
+ expect ( view . getByA11yState ( { expanded : false } ) ) . toBeTruthy ( ) ;
138
+ expect ( view . queryByA11yState ( { expanded : true } ) ) . toBeFalsy ( ) ;
139
+ } ) ;
140
+
141
+ it ( 'handles default' , ( ) => {
142
+ const view = render ( < View accessibilityState = { { } } /> ) ;
143
+
144
+ expect ( view . queryByA11yState ( { expanded : false } ) ) . toBeFalsy ( ) ;
145
+ expect ( view . queryByA11yState ( { expanded : true } ) ) . toBeFalsy ( ) ;
146
+ } ) ;
147
+ } ) ;
148
+
149
+ describe ( 'disabled state matching' , ( ) => {
150
+ it ( 'handles true' , ( ) => {
151
+ const view = render ( < View accessibilityState = { { disabled : true } } /> ) ;
152
+
153
+ expect ( view . getByA11yState ( { disabled : true } ) ) . toBeTruthy ( ) ;
154
+ expect ( view . queryByA11yState ( { disabled : false } ) ) . toBeFalsy ( ) ;
155
+ } ) ;
156
+
157
+ it ( 'handles false' , ( ) => {
158
+ const view = render ( < View accessibilityState = { { disabled : false } } /> ) ;
159
+
160
+ expect ( view . getByA11yState ( { disabled : false } ) ) . toBeTruthy ( ) ;
161
+ expect ( view . queryByA11yState ( { disabled : true } ) ) . toBeFalsy ( ) ;
162
+ } ) ;
163
+
164
+ it ( 'handles default' , ( ) => {
165
+ const view = render ( < View accessibilityState = { { } } /> ) ;
166
+
167
+ expect ( view . getByA11yState ( { disabled : false } ) ) . toBeTruthy ( ) ;
168
+ expect ( view . queryByA11yState ( { disabled : true } ) ) . toBeFalsy ( ) ;
169
+ } ) ;
170
+ } ) ;
171
+
172
+ describe ( 'busy state matching' , ( ) => {
173
+ it ( 'handles true' , ( ) => {
174
+ const view = render ( < View accessibilityState = { { busy : true } } /> ) ;
175
+
176
+ expect ( view . getByA11yState ( { busy : true } ) ) . toBeTruthy ( ) ;
177
+ expect ( view . queryByA11yState ( { busy : false } ) ) . toBeFalsy ( ) ;
178
+ } ) ;
179
+
180
+ it ( 'handles false' , ( ) => {
181
+ const view = render ( < View accessibilityState = { { busy : false } } /> ) ;
182
+
183
+ expect ( view . getByA11yState ( { busy : false } ) ) . toBeTruthy ( ) ;
184
+ expect ( view . queryByA11yState ( { busy : true } ) ) . toBeFalsy ( ) ;
185
+ } ) ;
186
+
187
+ it ( 'handles default' , ( ) => {
188
+ const view = render ( < View accessibilityState = { { } } /> ) ;
189
+
190
+ expect ( view . getByA11yState ( { busy : false } ) ) . toBeTruthy ( ) ;
191
+ expect ( view . queryByA11yState ( { busy : true } ) ) . toBeFalsy ( ) ;
192
+ } ) ;
193
+ } ) ;
194
+
195
+ describe ( 'selected state matching' , ( ) => {
196
+ it ( 'handles true' , ( ) => {
197
+ const view = render ( < View accessibilityState = { { selected : true } } /> ) ;
198
+
199
+ expect ( view . getByA11yState ( { selected : true } ) ) . toBeTruthy ( ) ;
200
+ expect ( view . queryByA11yState ( { selected : false } ) ) . toBeFalsy ( ) ;
201
+ } ) ;
202
+
203
+ it ( 'handles false' , ( ) => {
204
+ const view = render ( < View accessibilityState = { { selected : false } } /> ) ;
205
+
206
+ expect ( view . getByA11yState ( { selected : false } ) ) . toBeTruthy ( ) ;
207
+ expect ( view . queryByA11yState ( { selected : true } ) ) . toBeFalsy ( ) ;
208
+ } ) ;
209
+
210
+ it ( 'handles default' , ( ) => {
211
+ const view = render ( < View accessibilityState = { { } } /> ) ;
212
+
213
+ expect ( view . getByA11yState ( { selected : false } ) ) . toBeTruthy ( ) ;
214
+ expect ( view . queryByA11yState ( { selected : true } ) ) . toBeFalsy ( ) ;
215
+ } ) ;
216
+ } ) ;
217
+
218
+ test ( '*ByA11yState on Pressable with "disabled" prop' , ( ) => {
219
+ const view = render ( < Pressable disabled /> ) ;
220
+ expect ( view . getByA11yState ( { disabled : true } ) ) . toBeTruthy ( ) ;
221
+ expect ( view . queryByA11yState ( { disabled : false } ) ) . toBeFalsy ( ) ;
222
+ } ) ;
223
+
224
+ test ( '*ByA11yState on TouchableOpacity with "disabled" prop' , ( ) => {
225
+ const view = render ( < TouchableOpacity disabled /> ) ;
226
+ expect ( view . getByA11yState ( { disabled : true } ) ) . toBeTruthy ( ) ;
227
+ expect ( view . queryByA11yState ( { disabled : false } ) ) . toBeFalsy ( ) ;
228
+ } ) ;
0 commit comments