|
@@ -151,6 +151,32 @@ describe('runtime-dom: v-show directive', () => {
|
|
|
expect($div.style.display).toEqual('')
|
|
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
|
|
// #2583, #2757
|
|
|
test('the value of `display` set by v-show should not be overwritten by the style attribute when updated (with Transition)', async () => {
|
|
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')
|
|
const style = ref('width: 100px')
|