From 3afd157ba152481cb18396ed08522b7c68fef547 Mon Sep 17 00:00:00 2001 From: eddyerburgh Date: Sun, 11 Feb 2018 10:41:26 +0000 Subject: [PATCH] refactor: rename visible to isVisible breaking change --- docs/en/SUMMARY.md | 4 +- .../{visible.md => isVisible.md} | 6 +-- .../api/wrapper/{visible.md => isVisible.md} | 6 +-- docs/ja/SUMMARY.md | 4 +- .../{visible.md => isVisible.md} | 8 ++-- .../api/wrapper/{visible.md => isVisible.md} | 6 +-- src/wrappers/wrapper.js | 22 ++++++++++ .../{visible.spec.js => isVisible.spec.js} | 40 +++++++++---------- 8 files changed, 59 insertions(+), 37 deletions(-) rename docs/en/api/wrapper-array/{visible.md => isVisible.md} (71%) rename docs/en/api/wrapper/{visible.md => isVisible.md} (75%) rename docs/ja/api/wrapper-array/{visible.md => isVisible.md} (75%) rename docs/ja/api/wrapper/{visible.md => isVisible.md} (80%) rename test/specs/wrapper/{visible.spec.js => isVisible.spec.js} (78%) 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('
') const wrapper = mountingMethod(compiled) const element = wrapper.find('.visible') - expect(element.visible()).to.equal(true) + expect(element.isVisible()).to.equal(true) }) it('returns false if element has inline style display: none', () => { const compiled = compileToFunctions('
') const wrapper = mountingMethod(compiled) const element = wrapper.find('.visible') - expect(element.visible()).to.equal(false) + expect(element.isVisible()).to.equal(false) }) it('returns false if element has inline style visibility: hidden', () => { const compiled = compileToFunctions('
') const wrapper = mountingMethod(compiled) const element = wrapper.find('.visible') - expect(element.visible()).to.equal(false) + expect(element.isVisible()).to.equal(false) }) it('returns true if element has v-show true', () => { @@ -31,10 +31,10 @@ describeWithShallowAndMount('visible', (mountingMethod) => { wrapper.update() const notReadyElement = wrapper.find('.not-ready') - expect(notReadyElement.visible()).to.equal(false) + expect(notReadyElement.isVisible()).to.equal(false) const readyElement = wrapper.find('.parent.ready') - expect(readyElement.visible()).to.equal(true) + expect(readyElement.isVisible()).to.equal(true) }) it('returns false if element has v-show true', () => { @@ -43,10 +43,10 @@ describeWithShallowAndMount('visible', (mountingMethod) => { wrapper.update() const notReadyElement = wrapper.find('.not-ready') - expect(notReadyElement.visible()).to.equal(false) + expect(notReadyElement.isVisible()).to.equal(false) const readyElement = wrapper.find('.parent.ready') - expect(readyElement.visible()).to.equal(true) + expect(readyElement.isVisible()).to.equal(true) }) it('returns true if parent element has v-show true', () => { @@ -55,10 +55,10 @@ describeWithShallowAndMount('visible', (mountingMethod) => { wrapper.update() const notReadyElement = wrapper.find('.not-ready') - expect(notReadyElement.visible()).to.equal(false) + expect(notReadyElement.isVisible()).to.equal(false) const readyChildElement = wrapper.find('.child.ready') - expect(readyChildElement.visible()).to.equal(true) + expect(readyChildElement.isVisible()).to.equal(true) }) it('returns false if parent element has v-show false', () => { @@ -67,10 +67,10 @@ describeWithShallowAndMount('visible', (mountingMethod) => { wrapper.update() const notReadyElement = wrapper.find('.not-ready') - expect(notReadyElement.visible()).to.equal(false) + expect(notReadyElement.isVisible()).to.equal(false) const readyChildElement = wrapper.find('.child.ready') - expect(readyChildElement.visible()).to.equal(true) + expect(readyChildElement.isVisible()).to.equal(true) }) it('returns false if root element has v-show false and parent has v-show true', () => { @@ -80,10 +80,10 @@ describeWithShallowAndMount('visible', (mountingMethod) => { wrapper.update() const notReadyElement = wrapper.find('.not-ready') - expect(notReadyElement.visible()).to.equal(false) + expect(notReadyElement.isVisible()).to.equal(false) const readyChildElement = wrapper.find('.child.ready') - expect(readyChildElement.visible()).to.equal(false) + expect(readyChildElement.isVisible()).to.equal(false) }) it('returns false if root element has v-show true and parent has v-show false', () => { @@ -93,10 +93,10 @@ describeWithShallowAndMount('visible', (mountingMethod) => { wrapper.update() const notReadyElement = wrapper.find('.not-ready') - expect(notReadyElement.visible()).to.equal(true) + expect(notReadyElement.isVisible()).to.equal(true) const readyChildElement = wrapper.find('.child.ready') - expect(readyChildElement.visible()).to.equal(false) + expect(readyChildElement.isVisible()).to.equal(false) }) it('returns true if all elements are visible', () => { @@ -106,7 +106,7 @@ describeWithShallowAndMount('visible', (mountingMethod) => { wrapper.update() const readyChildElement = wrapper.find('.ready') - expect(readyChildElement.visible()).to.equal(true) + expect(readyChildElement.isVisible()).to.equal(true) }) it('returns false if one element is not visible', () => { @@ -116,7 +116,7 @@ describeWithShallowAndMount('visible', (mountingMethod) => { wrapper.update() const readyChildElement = wrapper.find('.ready, .not-ready') - expect(readyChildElement.visible()).to.equal(false) + expect(readyChildElement.isVisible()).to.equal(false) }) it('fails if one element is absent', () => { @@ -124,7 +124,7 @@ describeWithShallowAndMount('visible', (mountingMethod) => { wrapper.vm.$set(wrapper.vm, 'ready', false) wrapper.update() - const fn = () => wrapper.find('.child.ready').visible() + const fn = () => wrapper.find('.child.ready').isVisible() expect(fn).to.throw() }) @@ -132,6 +132,6 @@ describeWithShallowAndMount('visible', (mountingMethod) => { const wrapper = mountingMethod(ComponentWithVIf) wrapper.vm.$set(wrapper.vm, 'ready', true) wrapper.update() - expect(wrapper.find('.child.ready').visible()).to.equal(true) + expect(wrapper.find('.child.ready').isVisible()).to.equal(true) }) })