Procházet zdrojové kódy

test(srr): group portal tests

Evan You před 6 roky
rodič
revize
9c4de7b9ed

+ 1 - 21
packages/server-renderer/__tests__/renderToString.spec.ts

@@ -5,16 +5,11 @@ import {
   withScopeId,
   resolveComponent,
   ComponentOptions,
-  Portal,
   ref,
   defineComponent
 } from 'vue'
 import { escapeHtml, mockWarn } from '@vue/shared'
-import {
-  renderToString,
-  renderComponent,
-  SSRContext
-} from '../src/renderToString'
+import { renderToString, renderComponent } from '../src/renderToString'
 import { ssrRenderSlot } from '../src/helpers/ssrRenderSlot'
 
 mockWarn()
@@ -511,21 +506,6 @@ describe('ssr: renderToString', () => {
     })
   })
 
-  test('portal', async () => {
-    const ctx: SSRContext = {}
-    await renderToString(
-      h(
-        Portal,
-        {
-          target: `#target`
-        },
-        h('span', 'hello')
-      ),
-      ctx
-    )
-    expect(ctx.portals!['#target']).toBe('<span>hello</span>')
-  })
-
   describe('scopeId', () => {
     // note: here we are only testing scopeId handling for vdom serialization.
     // compiled srr render functions will include scopeId directly in strings.

+ 17 - 2
packages/server-renderer/__tests__/ssrRenderPortal.spec.ts → packages/server-renderer/__tests__/ssrPortal.spec.ts

@@ -1,9 +1,9 @@
-import { createApp } from 'vue'
+import { createApp, h, Portal } from 'vue'
 import { renderToString, SSRContext } from '../src/renderToString'
 import { ssrRenderPortal } from '../src/helpers/ssrRenderPortal'
 
 describe('ssrRenderPortal', () => {
-  test('portal rendering', async () => {
+  test('portal rendering (compiled)', async () => {
     const ctx = {
       portals: {}
     } as SSRContext
@@ -26,4 +26,19 @@ describe('ssrRenderPortal', () => {
     )
     expect(ctx.portals!['#target']).toBe(`<div>content</div>`)
   })
+
+  test('portal rendering (vnode)', async () => {
+    const ctx: SSRContext = {}
+    await renderToString(
+      h(
+        Portal,
+        {
+          target: `#target`
+        },
+        h('span', 'hello')
+      ),
+      ctx
+    )
+    expect(ctx.portals!['#target']).toBe('<span>hello</span>')
+  })
 })