From 327670a034af1710b4793d8b97b9cf6ef8ebe3c7 Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 2 Feb 2020 21:47:10 -0500 Subject: [PATCH] test(compiler-ssr): test for ssr element transform --- .../transforms/ssrTransformElement.spec.ts | 25 +++++++++++++++++++ .../compiler-ssr/src/ssrCodegenTransform.ts | 10 +++----- .../src/transforms/ssrTransformElement.ts | 2 +- 3 files changed, 29 insertions(+), 8 deletions(-) create mode 100644 packages/compiler-ssr/__tests__/transforms/ssrTransformElement.spec.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 index 000000000..f8b280a32 --- /dev/null +++ b/packages/compiler-ssr/__tests__/transforms/ssrTransformElement.spec.ts @@ -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(`
`)).toMatchInlineSnapshot( + `"\`
\`"` + ) + }) + + test('static attrs', () => { + expect( + getElementString(`
`) + ).toMatchInlineSnapshot(`"\`
\`"`) + }) + + test('nested elements', () => { + expect( + getElementString(`
`) + ).toMatchInlineSnapshot(`"\`
\`"`) + }) +}) diff --git a/packages/compiler-ssr/src/ssrCodegenTransform.ts b/packages/compiler-ssr/src/ssrCodegenTransform.ts index 1a3f9ff09..c60ba2bfd 100644 --- a/packages/compiler-ssr/src/ssrCodegenTransform.ts +++ b/packages/compiler-ssr/src/ssrCodegenTransform.ts @@ -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 diff --git a/packages/compiler-ssr/src/transforms/ssrTransformElement.ts b/packages/compiler-ssr/src/transforms/ssrTransformElement.ts index 386b66a45..e522b350f 100644 --- a/packages/compiler-ssr/src/transforms/ssrTransformElement.ts +++ b/packages/compiler-ssr/src/transforms/ssrTransformElement.ts @@ -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