@@ -103,3 +103,131 @@ test('.toBeDisabled fieldset>legend', () => {
103
103
104
104
expect ( queryByTestId ( 'outer-fieldset-element' ) ) . toBeDisabled ( )
105
105
} )
106
+
107
+ test ( '.toBeEnabled' , ( ) => {
108
+ const { queryByTestId} = render ( `
109
+ <div>
110
+ <button disabled={true} data-testid="button-element">x</button>
111
+ <textarea disabled={true} data-testid="textarea-element"></textarea>
112
+ <input type="checkbox" disabled={true} data-testid="input-element" />
113
+
114
+ <fieldset disabled={true} data-testid="fieldset-element">
115
+ <button data-testid="fieldset-child-element">x</button>
116
+ </fieldset>
117
+
118
+ <div disabled={true} data-testid="div-element">
119
+ <button data-testid="div-child-element">x</button>
120
+ </div>
121
+
122
+ <fieldset disabled={true}>
123
+ <div>
124
+ <button data-testid="nested-form-element">x</button>
125
+
126
+ <select data-testid="deep-select-element">
127
+ <optgroup data-testid="deep-optgroup-element">
128
+ <option data-testid="deep-option-element">x</option>
129
+ </optgroup>
130
+ </select>
131
+ </div>
132
+ </fieldset>
133
+
134
+ <a href="http://github.com" disabled={true} data-testid="a-element">x</a>
135
+ </div>
136
+ ` )
137
+
138
+ expect ( ( ) => {
139
+ expect ( queryByTestId ( 'button-element' ) ) . toBeEnabled ( )
140
+ } ) . toThrowError ( )
141
+ expect ( queryByTestId ( 'button-element' ) ) . not . toBeEnabled ( )
142
+ expect ( ( ) => {
143
+ expect ( queryByTestId ( 'textarea-element' ) ) . toBeEnabled ( )
144
+ } ) . toThrowError ( )
145
+ expect ( ( ) => {
146
+ expect ( queryByTestId ( 'input-element' ) ) . toBeEnabled ( )
147
+ } ) . toThrowError ( )
148
+
149
+ expect ( ( ) => {
150
+ expect ( queryByTestId ( 'fieldset-element' ) ) . toBeEnabled ( )
151
+ } ) . toThrowError ( )
152
+ expect ( ( ) => {
153
+ expect ( queryByTestId ( 'fieldset-child-element' ) ) . toBeEnabled ( )
154
+ } ) . toThrowError ( )
155
+
156
+ expect ( queryByTestId ( 'div-element' ) ) . toBeEnabled ( )
157
+ expect ( queryByTestId ( 'div-child-element' ) ) . toBeEnabled ( )
158
+
159
+ expect ( ( ) => {
160
+ expect ( queryByTestId ( 'nested-form-element' ) ) . toBeEnabled ( )
161
+ } ) . toThrowError ( )
162
+ expect ( ( ) => {
163
+ expect ( queryByTestId ( 'deep-select-element' ) ) . toBeEnabled ( )
164
+ } ) . toThrowError ( )
165
+ expect ( ( ) => {
166
+ expect ( queryByTestId ( 'deep-optgroup-element' ) ) . toBeEnabled ( )
167
+ } ) . toThrowError ( )
168
+ expect ( ( ) => {
169
+ expect ( queryByTestId ( 'deep-option-element' ) ) . toBeEnabled ( )
170
+ } ) . toThrowError ( )
171
+
172
+ expect ( queryByTestId ( 'a-element' ) ) . toBeEnabled ( )
173
+ expect ( ( ) =>
174
+ expect ( queryByTestId ( 'a-element' ) ) . not . toBeEnabled ( ) ,
175
+ ) . toThrowError ( )
176
+ } )
177
+
178
+ test ( '.toBeEnabled fieldset>legend' , ( ) => {
179
+ const { queryByTestId} = render ( `
180
+ <div>
181
+ <fieldset disabled={true}>
182
+ <button data-testid="inherited-element">x</button>
183
+ </fieldset>
184
+
185
+ <fieldset disabled={true}>
186
+ <legend>
187
+ <button data-testid="inside-legend-element">x</button>
188
+ </legend>
189
+ </fieldset>
190
+
191
+ <fieldset disabled={true}>
192
+ <legend>
193
+ <div>
194
+ <button data-testid="nested-inside-legend-element">x</button>
195
+ </div>
196
+ </legend>
197
+ </fieldset>
198
+
199
+ <fieldset disabled={true}>
200
+ <div></div>
201
+ <legend>
202
+ <button data-testid="first-legend-element">x</button>
203
+ </legend>
204
+ <legend>
205
+ <button data-testid="second-legend-element">x</button>
206
+ </legend>
207
+ </fieldset>
208
+
209
+ <fieldset disabled={true}>
210
+ <fieldset>
211
+ <legend>
212
+ <button data-testid="outer-fieldset-element">x</button>
213
+ </legend>
214
+ </fieldset>
215
+ </fieldset>
216
+ </div>
217
+ ` )
218
+
219
+ expect ( ( ) => {
220
+ expect ( queryByTestId ( 'inherited-element' ) ) . toBeEnabled ( )
221
+ } ) . toThrowError ( )
222
+ expect ( queryByTestId ( 'inside-legend-element' ) ) . toBeEnabled ( )
223
+ expect ( queryByTestId ( 'nested-inside-legend-element' ) ) . toBeEnabled ( )
224
+
225
+ expect ( queryByTestId ( 'first-legend-element' ) ) . toBeEnabled ( )
226
+ expect ( ( ) => {
227
+ expect ( queryByTestId ( 'second-legend-element' ) ) . toBeEnabled ( )
228
+ } ) . toThrowError ( )
229
+
230
+ expect ( ( ) => {
231
+ expect ( queryByTestId ( 'outer-fieldset-element' ) ) . toBeEnabled ( )
232
+ } ) . toThrowError ( )
233
+ } )
0 commit comments