Browse Source

test: update test

Evan You 6 years ago
parent
commit
0d176ebf2a
1 changed files with 27 additions and 2 deletions
  1. 27 2
      packages/runtime-core/__tests__/rendererSuspense.spec.ts

+ 27 - 2
packages/runtime-core/__tests__/rendererSuspense.spec.ts

@@ -23,6 +23,7 @@ describe('renderer: suspense', () => {
       }
     })
 
+    // TODO test mounted hook & watch callback buffering
     const AsyncChild = createAsyncComponent(
       () =>
         new Promise(resolve => {
@@ -36,6 +37,19 @@ describe('renderer: suspense', () => {
         })
     )
 
+    const AsyncChild2 = createAsyncComponent(
+      () =>
+        new Promise(resolve => {
+          setTimeout(() => {
+            resolve({
+              setup(props: { msg: string }) {
+                return () => h('div', props.msg)
+              }
+            })
+          }, 10)
+        })
+    )
+
     const Mid = {
       setup() {
         return () =>
@@ -49,7 +63,8 @@ describe('renderer: suspense', () => {
       name: 'root',
       setup() {
         // TODO test fallback
-        return () => h(Suspense, [msg.value, h(Mid)])
+        return () =>
+          h(Suspense, [msg.value, h(Mid), h(AsyncChild2, { msg: 'child 2' })])
       }
     }
 
@@ -59,6 +74,16 @@ describe('renderer: suspense', () => {
 
     await Promise.all(deps)
     await nextTick()
-    expect(serializeInner(root)).toBe(`<!---->hello<div>hello</div><!---->`)
+    expect(serializeInner(root)).toBe(
+      `<!---->hello<div>hello</div><div>child 2</div><!---->`
+    )
   })
+
+  test.todo('fallback content update')
+
+  test.todo('content update before suspense resolve')
+
+  test.todo('unmount before suspense resolve')
+
+  test.todo('nested suspense')
 })