]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
test: add test case for regsitering onBeforeUnmount inside onMounted
authorEvan You <yyx990803@gmail.com>
Fri, 30 Aug 2019 17:48:27 +0000 (13:48 -0400)
committerEvan You <yyx990803@gmail.com>
Fri, 30 Aug 2019 17:48:27 +0000 (13:48 -0400)
packages/runtime-core/__tests__/apiLifecycle.spec.ts

index 8798b5ae90b2937bc60c8135234dc801a65d41b3..91b7a116698e6d717c0213174a5ce89601a96fc3 100644 (file)
@@ -153,6 +153,36 @@ describe('api: lifecycle hooks', () => {
     expect(fn).toHaveBeenCalledTimes(1)
   })
 
+  it('onBeforeUnmount in onMounted', async () => {
+    const toggle = ref(true)
+    const root = nodeOps.createElement('div')
+    const fn = jest.fn(() => {
+      // should be called before inner div is removed
+      expect(serializeInner(root)).toBe(`<div></div>`)
+    })
+
+    const Comp = {
+      setup() {
+        return () => (toggle.value ? h(Child) : null)
+      }
+    }
+
+    const Child = {
+      setup() {
+        onMounted(() => {
+          onBeforeUnmount(fn)
+        })
+        return () => h('div')
+      }
+    }
+
+    render(h(Comp), root)
+
+    toggle.value = false
+    await nextTick()
+    expect(fn).toHaveBeenCalledTimes(1)
+  })
+
   it('lifecycle call order', async () => {
     const count = ref(0)
     const root = nodeOps.createElement('div')
@@ -313,6 +343,4 @@ describe('api: lifecycle hooks', () => {
       newValue: 3
     })
   })
-
-  test.todo('onErrorCaptured')
 })