test: record snapshots for text optimization
This commit is contained in:
parent
e5e40e1e38
commit
da0d785d84
@ -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)
|
||||||
|
}"
|
||||||
|
`;
|
@ -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 { optimizeText } from '../../src/transforms/optimizeText'
|
||||||
import { transformExpression } from '../../src/transforms/transformExpression'
|
import { transformExpression } from '../../src/transforms/transformExpression'
|
||||||
|
import { transformElement } from '../../src/transforms/transformElement'
|
||||||
|
|
||||||
function transformWithTextOpt(template: string, options: CompilerOptions = {}) {
|
function transformWithTextOpt(template: string, options: CompilerOptions = {}) {
|
||||||
const ast = parse(template)
|
const ast = parse(template)
|
||||||
transform(ast, {
|
transform(ast, {
|
||||||
nodeTransforms: [
|
nodeTransforms: [
|
||||||
...(options.prefixIdentifiers ? [transformExpression] : []),
|
...(options.prefixIdentifiers ? [transformExpression] : []),
|
||||||
optimizeText
|
optimizeText,
|
||||||
|
transformElement
|
||||||
],
|
],
|
||||||
...options
|
...options
|
||||||
})
|
})
|
||||||
@ -23,6 +31,7 @@ describe('compiler: optimize interpolation', () => {
|
|||||||
content: `foo`
|
content: `foo`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
expect(generate(root).code).toMatchSnapshot()
|
||||||
})
|
})
|
||||||
|
|
||||||
test('consecutive text', () => {
|
test('consecutive text', () => {
|
||||||
@ -38,6 +47,7 @@ describe('compiler: optimize interpolation', () => {
|
|||||||
{ type: NodeTypes.INTERPOLATION, content: { content: `baz` } }
|
{ type: NodeTypes.INTERPOLATION, content: { content: `baz` } }
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
expect(generate(root).code).toMatchSnapshot()
|
||||||
})
|
})
|
||||||
|
|
||||||
test('consecutive text between elements', () => {
|
test('consecutive text between elements', () => {
|
||||||
@ -55,6 +65,7 @@ describe('compiler: optimize interpolation', () => {
|
|||||||
]
|
]
|
||||||
})
|
})
|
||||||
expect(root.children[2].type).toBe(NodeTypes.ELEMENT)
|
expect(root.children[2].type).toBe(NodeTypes.ELEMENT)
|
||||||
|
expect(generate(root).code).toMatchSnapshot()
|
||||||
})
|
})
|
||||||
|
|
||||||
test('consecutive text mixed with elements', () => {
|
test('consecutive text mixed with elements', () => {
|
||||||
@ -85,6 +96,7 @@ describe('compiler: optimize interpolation', () => {
|
|||||||
]
|
]
|
||||||
})
|
})
|
||||||
expect(root.children[4].type).toBe(NodeTypes.ELEMENT)
|
expect(root.children[4].type).toBe(NodeTypes.ELEMENT)
|
||||||
|
expect(generate(root).code).toMatchSnapshot()
|
||||||
})
|
})
|
||||||
|
|
||||||
test('with prefixIdentifiers: true', () => {
|
test('with prefixIdentifiers: true', () => {
|
||||||
@ -108,5 +120,10 @@ describe('compiler: optimize interpolation', () => {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
expect(
|
||||||
|
generate(root, {
|
||||||
|
prefixIdentifiers: true
|
||||||
|
}).code
|
||||||
|
).toMatchSnapshot()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user