@@ -103,3 +103,131 @@ test('.toBeDisabled fieldset>legend', () => {
103103
104104 expect ( queryByTestId ( 'outer-fieldset-element' ) ) . toBeDisabled ( )
105105} )
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