@@ -326,10 +326,14 @@ describe('Util', () => {
326
326
expect ( Util . isVisible ( div ) ) . toEqual ( false )
327
327
} )
328
328
329
- it ( 'should return false if the parent element is not visible ' , ( ) => {
329
+ it ( 'should return false if an ancestor element is display none ' , ( ) => {
330
330
fixtureEl . innerHTML = [
331
331
'<div style="display: none;">' ,
332
- ' <div class="content"></div>' ,
332
+ ' <div>' ,
333
+ ' <div>' ,
334
+ ' <div class="content"></div>' ,
335
+ ' </div>' ,
336
+ ' </div>' ,
333
337
'</div>'
334
338
] . join ( '' )
335
339
@@ -338,6 +342,38 @@ describe('Util', () => {
338
342
expect ( Util . isVisible ( div ) ) . toEqual ( false )
339
343
} )
340
344
345
+ it ( 'should return false if an ancestor element is visibility hidden' , ( ) => {
346
+ fixtureEl . innerHTML = [
347
+ '<div style="visibility: hidden;">' ,
348
+ ' <div>' ,
349
+ ' <div>' ,
350
+ ' <div class="content"></div>' ,
351
+ ' </div>' ,
352
+ ' </div>' ,
353
+ '</div>'
354
+ ] . join ( '' )
355
+
356
+ const div = fixtureEl . querySelector ( '.content' )
357
+
358
+ expect ( Util . isVisible ( div ) ) . toEqual ( false )
359
+ } )
360
+
361
+ it ( 'should return true if an ancestor element is visibility hidden, but reverted' , ( ) => {
362
+ fixtureEl . innerHTML = [
363
+ '<div style="visibility: hidden;">' ,
364
+ ' <div style="visibility: visible;">' ,
365
+ ' <div>' ,
366
+ ' <div class="content"></div>' ,
367
+ ' </div>' ,
368
+ ' </div>' ,
369
+ '</div>'
370
+ ] . join ( '' )
371
+
372
+ const div = fixtureEl . querySelector ( '.content' )
373
+
374
+ expect ( Util . isVisible ( div ) ) . toEqual ( true )
375
+ } )
376
+
341
377
it ( 'should return true if the element is visible' , ( ) => {
342
378
fixtureEl . innerHTML = [
343
379
'<div>' ,
@@ -349,6 +385,18 @@ describe('Util', () => {
349
385
350
386
expect ( Util . isVisible ( div ) ) . toEqual ( true )
351
387
} )
388
+
389
+ it ( 'should return false if the element is hidden, but not via display or visibility' , ( ) => {
390
+ fixtureEl . innerHTML = [
391
+ '<details>' ,
392
+ ' <div id="element"></div>' ,
393
+ '</details>'
394
+ ] . join ( '' )
395
+
396
+ const div = fixtureEl . querySelector ( '#element' )
397
+
398
+ expect ( Util . isVisible ( div ) ) . toEqual ( false )
399
+ } )
352
400
} )
353
401
354
402
describe ( 'isDisabled' , ( ) => {
0 commit comments