From 86bf3da18e29cbec2ff9c88f8ff39e2eefe3e168 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 11 Aug 2016 08:53:31 -0500 Subject: [PATCH] fix flow error for #3393 --- src/platforms/web/runtime/directives/show.js | 4 ++-- test/unit/features/directives/show.spec.js | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/platforms/web/runtime/directives/show.js b/src/platforms/web/runtime/directives/show.js index b4fb45d7..44c00979 100644 --- a/src/platforms/web/runtime/directives/show.js +++ b/src/platforms/web/runtime/directives/show.js @@ -11,7 +11,7 @@ function locateNode (vnode: VNode): VNodeWithData { } export default { - bind (el: HTMLElement, { value }: VNodeDirective, vnode: VNodeWithData) { + bind (el: any, { value }: VNodeDirective, vnode: VNodeWithData) { vnode = locateNode(vnode) const transition = vnode.data && vnode.data.transition if (value && transition && transition.appear && !isIE9) { @@ -21,7 +21,7 @@ export default { el.style.display = value ? originalDisplay : 'none' el.__vOriginalDisplay = originalDisplay }, - update (el: HTMLElement, { value, oldValue }: VNodeDirective, vnode: VNodeWithData) { + update (el: any, { value, oldValue }: VNodeDirective, vnode: VNodeWithData) { /* istanbul ignore if */ if (value === oldValue) return vnode = locateNode(vnode) diff --git a/test/unit/features/directives/show.spec.js b/test/unit/features/directives/show.spec.js index 21175d8a..fd0db03e 100644 --- a/test/unit/features/directives/show.spec.js +++ b/test/unit/features/directives/show.spec.js @@ -50,11 +50,18 @@ describe('Directive v-show', () => { }).then(done) }) - it('should respect display value in style attribute', () => { + it('should respect display value in style attribute', done => { const vm = new Vue({ template: '
hello
', data: { foo: true } }).$mount() expect(vm.$el.firstChild.style.display).toBe('block') + vm.foo = false + waitForUpdate(() => { + expect(vm.$el.firstChild.style.display).toBe('none') + vm.foo = true + }).then(() => { + expect(vm.$el.firstChild.style.display).toBe('block') + }).then(done) }) })