test: test case for style binding w/ object value + v-show

ref #10074
This commit is contained in:
Evan You 2024-01-11 17:14:49 +08:00
parent cd419aec3c
commit 07b19a53a5
1 changed files with 26 additions and 0 deletions

View File

@ -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')