]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
test(compiler-ssr): test for ssr element transform
authorEvan You <yyx990803@gmail.com>
Mon, 3 Feb 2020 02:47:10 +0000 (21:47 -0500)
committerEvan You <yyx990803@gmail.com>
Mon, 3 Feb 2020 02:47:10 +0000 (21:47 -0500)
packages/compiler-ssr/__tests__/transforms/ssrTransformElement.spec.ts [new file with mode: 0644]
packages/compiler-ssr/src/ssrCodegenTransform.ts
packages/compiler-ssr/src/transforms/ssrTransformElement.ts

diff --git a/packages/compiler-ssr/__tests__/transforms/ssrTransformElement.spec.ts b/packages/compiler-ssr/__tests__/transforms/ssrTransformElement.spec.ts
new file mode 100644 (file)
index 0000000..f8b280a
--- /dev/null
@@ -0,0 +1,25 @@
+import { compile } from '../../src'
+
+function getElementString(src: string): string {
+  return compile(src).code.match(/_push\((.*)\)/)![1]
+}
+
+describe('ssr transform element', () => {
+  test('basic elements', () => {
+    expect(getElementString(`<div></div>`)).toMatchInlineSnapshot(
+      `"\`<div></div>\`"`
+    )
+  })
+
+  test('static attrs', () => {
+    expect(
+      getElementString(`<div id="foo" class="bar"></div>`)
+    ).toMatchInlineSnapshot(`"\`<div id=\\"foo\\" class=\\"bar\\"></div>\`"`)
+  })
+
+  test('nested elements', () => {
+    expect(
+      getElementString(`<div><span></span><span></span></div>`)
+    ).toMatchInlineSnapshot(`"\`<div><span></span><span></span></div>\`"`)
+  })
+})
index 1a3f9ff09b42b4127d2f2612ff09954d38de23b6..c60ba2bfdf5b098a4499eaa2708f7399741a4cfb 100644 (file)
@@ -5,10 +5,10 @@ import {
   TemplateLiteral,
   createCallExpression,
   createTemplateLiteral,
-  locStub,
   NodeTypes,
   TemplateChildNode,
-  ElementTypes
+  ElementTypes,
+  createBlockStatement
 } from '@vue/compiler-dom'
 import { isString } from '@vue/shared'
 
@@ -30,11 +30,7 @@ export function ssrCodegenTransform(ast: RootNode) {
     context.pushStringPart(`<!---->`)
   }
 
-  ast.codegenNode = {
-    type: NodeTypes.JS_BLOCK_STATEMENT,
-    loc: locStub,
-    body: context.body
-  }
+  ast.codegenNode = createBlockStatement(context.body)
 }
 
 type SSRTransformContext = ReturnType<typeof createSSRTransformContext>
index 386b66a45bf6c59cd75bc8f04d76a5f4937eeec9..e522b350fdf0b67279cbba016707801084eb180f 100644 (file)
@@ -5,7 +5,7 @@ import {
   TemplateLiteral,
   createTemplateLiteral
 } from '@vue/compiler-dom'
-import { escapeHtml } from '@vue/server-renderer/src'
+import { escapeHtml } from '@vue/server-renderer'
 
 /*
 ## Simple Element