]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
test: record snapshots for text optimization
authorEvan You <yyx990803@gmail.com>
Mon, 30 Sep 2019 18:58:20 +0000 (14:58 -0400)
committerEvan You <yyx990803@gmail.com>
Mon, 30 Sep 2019 18:58:20 +0000 (14:58 -0400)
packages/compiler-core/__tests__/transforms/__snapshots__/optimizeText.spec.ts.snap [new file with mode: 0644]
packages/compiler-core/__tests__/transforms/optimizeText.spec.ts

diff --git a/packages/compiler-core/__tests__/transforms/__snapshots__/optimizeText.spec.ts.snap b/packages/compiler-core/__tests__/transforms/__snapshots__/optimizeText.spec.ts.snap
new file mode 100644 (file)
index 0000000..921cbec
--- /dev/null
@@ -0,0 +1,60 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`compiler: optimize interpolation consecutive text 1`] = `
+"const _Vue = Vue
+return function render() {
+  with (this) {
+    const { toString: _toString } = _Vue
+    return _toString(foo) + \\" bar \\" + _toString(baz)
+  }
+}"
+`;
+
+exports[`compiler: optimize interpolation consecutive text between elements 1`] = `
+"const _Vue = Vue
+return function render() {
+  with (this) {
+    const { createVNode: _createVNode, toString: _toString } = _Vue
+    return [
+      _createVNode(\\"div\\"),
+      _toString(foo) + \\" bar \\" + _toString(baz),
+      _createVNode(\\"div\\")
+    ]
+  }
+}"
+`;
+
+exports[`compiler: optimize interpolation consecutive text mixed with elements 1`] = `
+"const _Vue = Vue
+return function render() {
+  with (this) {
+    const { createVNode: _createVNode, toString: _toString } = _Vue
+    return [
+      _createVNode(\\"div\\"),
+      _toString(foo) + \\" bar \\" + _toString(baz),
+      _createVNode(\\"div\\"),
+      _toString(foo) + \\" bar \\" + _toString(baz),
+      _createVNode(\\"div\\")
+    ]
+  }
+}"
+`;
+
+exports[`compiler: optimize interpolation no consecutive text 1`] = `
+"const _Vue = Vue
+return function render() {
+  with (this) {
+    const { toString: _toString } = _Vue
+    return _toString(foo)
+  }
+}"
+`;
+
+exports[`compiler: optimize interpolation with prefixIdentifiers: true 1`] = `
+"const { toString } = Vue
+
+return function render() {
+  const _ctx = this
+  return toString(_ctx.foo) + \\" bar \\" + toString(_ctx.baz + _ctx.qux)
+}"
+`;
index 64ed2da0d87a2b3a14057291f0c07ccf37cc85a0..3c8c2638b1b0ea90ed56216ed12a4e16757e74a9 100644 (file)
@@ -1,13 +1,21 @@
-import { CompilerOptions, parse, transform, NodeTypes } from '../../src'
+import {
+  CompilerOptions,
+  parse,
+  transform,
+  NodeTypes,
+  generate
+} from '../../src'
 import { optimizeText } from '../../src/transforms/optimizeText'
 import { transformExpression } from '../../src/transforms/transformExpression'
+import { transformElement } from '../../src/transforms/transformElement'
 
 function transformWithTextOpt(template: string, options: CompilerOptions = {}) {
   const ast = parse(template)
   transform(ast, {
     nodeTransforms: [
       ...(options.prefixIdentifiers ? [transformExpression] : []),
-      optimizeText
+      optimizeText,
+      transformElement
     ],
     ...options
   })
@@ -23,6 +31,7 @@ describe('compiler: optimize interpolation', () => {
         content: `foo`
       }
     })
+    expect(generate(root).code).toMatchSnapshot()
   })
 
   test('consecutive text', () => {
@@ -38,6 +47,7 @@ describe('compiler: optimize interpolation', () => {
         { type: NodeTypes.INTERPOLATION, content: { content: `baz` } }
       ]
     })
+    expect(generate(root).code).toMatchSnapshot()
   })
 
   test('consecutive text between elements', () => {
@@ -55,6 +65,7 @@ describe('compiler: optimize interpolation', () => {
       ]
     })
     expect(root.children[2].type).toBe(NodeTypes.ELEMENT)
+    expect(generate(root).code).toMatchSnapshot()
   })
 
   test('consecutive text mixed with elements', () => {
@@ -85,6 +96,7 @@ describe('compiler: optimize interpolation', () => {
       ]
     })
     expect(root.children[4].type).toBe(NodeTypes.ELEMENT)
+    expect(generate(root).code).toMatchSnapshot()
   })
 
   test('with prefixIdentifiers: true', () => {
@@ -108,5 +120,10 @@ describe('compiler: optimize interpolation', () => {
         }
       ]
     })
+    expect(
+      generate(root, {
+        prefixIdentifiers: true
+      }).code
+    ).toMatchSnapshot()
   })
 })