diff --git a/docs/en/SUMMARY.md b/docs/en/SUMMARY.md index b3910f9fd..0a5379876 100644 --- a/docs/en/SUMMARY.md +++ b/docs/en/SUMMARY.md @@ -47,7 +47,7 @@ * [text](api/wrapper/text.md) * [trigger](api/wrapper/trigger.md) * [update](api/wrapper/update.md) - * [visible](api/wrapper/visible.md) + * [isVisible](api/wrapper/isVisible.md) * [WrapperArray](api/wrapper-array/README.md) * [at](api/wrapper-array/at.md) * [contains](api/wrapper-array/contains.md) @@ -62,7 +62,7 @@ * [setProps](api/wrapper-array/setProps.md) * [trigger](api/wrapper-array/trigger.md) * [update](api/wrapper-array/update.md) - * [visible](api/wrapper-array/visible.md) + * [isVisible](api/wrapper-array/isVisible.md) * [components](api/components/README.md) * [TransitionStub](api/components/TransitionStub.md) * [TransitionGroupStub](api/components/TransitionGroupStub.md) diff --git a/docs/en/api/wrapper-array/visible.md b/docs/en/api/wrapper-array/isVisible.md similarity index 71% rename from docs/en/api/wrapper-array/visible.md rename to docs/en/api/wrapper-array/isVisible.md index d6827ccd7..5ea2ccea6 100644 --- a/docs/en/api/wrapper-array/visible.md +++ b/docs/en/api/wrapper-array/isVisible.md @@ -16,7 +16,7 @@ import { expect } from 'chai' import Foo from './Foo.vue' const wrapper = mount(Foo) -expect(wrapper.visible()).toBe(true) -expect(wrapper.findAll('.is-not-visible').visible()).toBe(false) -expect(wrapper.findAll('.is-visible').visible()).toBe(true) +expect(wrapper.isVisible()).toBe(true) +expect(wrapper.findAll('.is-not-visible').isVisible()).toBe(false) +expect(wrapper.findAll('.is-visible').isVisible()).toBe(true) ``` diff --git a/docs/en/api/wrapper/visible.md b/docs/en/api/wrapper/isVisible.md similarity index 75% rename from docs/en/api/wrapper/visible.md rename to docs/en/api/wrapper/isVisible.md index c632ccdcf..b5ec2f397 100644 --- a/docs/en/api/wrapper/visible.md +++ b/docs/en/api/wrapper/isVisible.md @@ -1,4 +1,4 @@ -# visible() +# isVisible() Assert `Wrapper` is visible. @@ -16,6 +16,6 @@ import { expect } from 'chai' import Foo from './Foo.vue' const wrapper = mount(Foo) -expect(wrapper.visible()).toBe(true) -expect(wrapper.find('.is-not-visible').visible()).toBe(false) +expect(wrapper.isVisible()).toBe(true) +expect(wrapper.find('.is-not-visible').isVisible()).toBe(false) ``` diff --git a/docs/ja/SUMMARY.md b/docs/ja/SUMMARY.md index e9ee918bb..bf3f73d2c 100644 --- a/docs/ja/SUMMARY.md +++ b/docs/ja/SUMMARY.md @@ -47,7 +47,7 @@ * [text](api/wrapper/text.md) * [trigger](api/wrapper/trigger.md) * [update](api/wrapper/update.md) - * [visible](api/wrapper/visible.md) + * [isVisible](api/wrapper/isVisible.md) * [WrapperArray](api/wrapper-array/README.md) * [at](api/wrapper-array/at.md) * [contains](api/wrapper-array/contains.md) @@ -61,7 +61,7 @@ * [setProps](api/wrapper-array/setProps.md) * [trigger](api/wrapper-array/trigger.md) * [update](api/wrapper-array/update.md) - * [visible](api/wrapper-array/visible.md) + * [isVisible](api/wrapper-array/isVisible.md) * [コンポーネント](api/components/README.md) * [TransitionStub](api/components/TransitionStub.md) * [TransitionGroupStub](api/components/TransitionGroupStub.md) diff --git a/docs/ja/api/wrapper-array/visible.md b/docs/ja/api/wrapper-array/isVisible.md similarity index 75% rename from docs/ja/api/wrapper-array/visible.md rename to docs/ja/api/wrapper-array/isVisible.md index 9b826bce8..bba8d7260 100644 --- a/docs/ja/api/wrapper-array/visible.md +++ b/docs/ja/api/wrapper-array/isVisible.md @@ -1,4 +1,4 @@ -# visible() +# isVisible() `WrapperArray` 内のすべての `Wrapper` が表示されているかアサートします。 @@ -16,7 +16,7 @@ import { expect } from 'chai' import Foo from './Foo.vue' const wrapper = mount(Foo) -expect(wrapper.visible()).toBe(true) -expect(wrapper.findAll('.is-not-visible').visible()).toBe(false) -expect(wrapper.findAll('.is-visible').visible()).toBe(true) +expect(wrapper.isVisible()).toBe(true) +expect(wrapper.findAll('.is-not-visible').isVisible()).toBe(false) +expect(wrapper.findAll('.is-visible').isVisible()).toBe(true) ``` diff --git a/docs/ja/api/wrapper/visible.md b/docs/ja/api/wrapper/isVisible.md similarity index 80% rename from docs/ja/api/wrapper/visible.md rename to docs/ja/api/wrapper/isVisible.md index e06526855..41c7c61f7 100644 --- a/docs/ja/api/wrapper/visible.md +++ b/docs/ja/api/wrapper/isVisible.md @@ -1,4 +1,4 @@ -# visible() +# isVisible() `Wrapper` が表示されているかアサートします。 @@ -16,6 +16,6 @@ import { expect } from 'chai' import Foo from './Foo.vue' const wrapper = mount(Foo) -expect(wrapper.visible()).toBe(true) -expect(wrapper.find('.is-not-visible').visible()).toBe(false) +expect(wrapper.isVisible()).toBe(true) +expect(wrapper.find('.is-not-visible').isVisible()).toBe(false) ``` diff --git a/src/wrappers/wrapper.js b/src/wrappers/wrapper.js index efc9fc730..1f71e20e7 100644 --- a/src/wrappers/wrapper.js +++ b/src/wrappers/wrapper.js @@ -133,6 +133,8 @@ export default class Wrapper implements BaseWrapper { * Utility to check wrapper is visible. Returns false if a parent element has display: none or visibility: hidden style. */ visible (): boolean { + warn('visible has been deprecated and will be removed in version 1, use isVisible instead') + let element = this.element if (!element) { @@ -328,6 +330,26 @@ export default class Wrapper implements BaseWrapper { return this.vnode.children === undefined || this.vnode.children.length === 0 } + /** + * Checks if node is visible + */ + isVisible (): boolean { + let element = this.element + + if (!element) { + return false + } + + while (element) { + if (element.style && (element.style.visibility === 'hidden' || element.style.display === 'none')) { + return false + } + element = element.parentElement + } + + return true + } + /** * Checks if wrapper is a vue instance */ diff --git a/test/specs/wrapper/visible.spec.js b/test/specs/wrapper/isVisible.spec.js similarity index 78% rename from test/specs/wrapper/visible.spec.js rename to test/specs/wrapper/isVisible.spec.js index 050addb00..fcf908a4a 100644 --- a/test/specs/wrapper/visible.spec.js +++ b/test/specs/wrapper/isVisible.spec.js @@ -3,26 +3,26 @@ import ComponentWithVShow from '~resources/components/component-with-v-show.vue' import ComponentWithVIf from '~resources/components/component-with-v-if.vue' import { describeWithShallowAndMount } from '~resources/test-utils' -describeWithShallowAndMount('visible', (mountingMethod) => { +describeWithShallowAndMount('isVisible', (mountingMethod) => { it('returns true if element has no inline style', () => { const compiled = compileToFunctions('