From: Evan You Date: Thu, 11 Jan 2024 09:14:49 +0000 (+0800) Subject: test: test case for style binding w/ object value + v-show X-Git-Tag: v3.4.9~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=07b19a53a5f313a219ea87546846b79d89e39e96;p=thirdparty%2Fvuejs%2Fcore.git test: test case for style binding w/ object value + v-show ref #10074 --- diff --git a/packages/runtime-dom/__tests__/directives/vShow.spec.ts b/packages/runtime-dom/__tests__/directives/vShow.spec.ts index 5e83765085..70b69f2df1 100644 --- a/packages/runtime-dom/__tests__/directives/vShow.spec.ts +++ b/packages/runtime-dom/__tests__/directives/vShow.spec.ts @@ -151,6 +151,32 @@ describe('runtime-dom: v-show directive', () => { expect($div.style.display).toEqual('') }) + test('the value of `display` set by v-show should not be overwritten by the style attribute when updated (object value)', async () => { + const style = ref({ + display: 'block', + width: '100px', + }) + const display = ref(false) + const component = defineComponent({ + render() { + return withVShow(h('div', { style: style.value }), display.value) + }, + }) + render(h(component), root) + + const $div = root.children[0] + + expect($div.style.display).toEqual('none') + + style.value.width = '50px' + await nextTick() + expect($div.style.display).toEqual('none') + + display.value = true + await nextTick() + expect($div.style.display).toEqual('block') + }) + // #2583, #2757 test('the value of `display` set by v-show should not be overwritten by the style attribute when updated (with Transition)', async () => { const style = ref('width: 100px')