// Jest Snapshot v1, https://goo.gl/fbAQLP
+exports[`compiler: transform text <template v-for> 1`] = `
+"const _Vue = Vue
+
+return function render() {
+ with (this) {
+ const { renderList: _renderList, openBlock: _openBlock, createBlock: _createBlock, Fragment: _Fragment, createTextVNode: _createTextVNode } = _Vue
+
+ return (_openBlock(false), _createBlock(_Fragment, null, _renderList(list, (i) => {
+ return (_openBlock(), _createBlock(_Fragment, null, [
+ _createTextVNode(\\"foo\\")
+ ], 64 /* STABLE_FRAGMENT */))
+ }), 256 /* UNKEYED_FRAGMENT */))
+ }
+}"
+`;
+
exports[`compiler: transform text consecutive text 1`] = `
"const _Vue = Vue
parse,
transform,
NodeTypes,
- generate
+ generate,
+ ForNode
} from '../../src'
+import { transformFor } from '../../src/transforms/vFor'
import { transformText } from '../../src/transforms/transformText'
import { transformExpression } from '../../src/transforms/transformExpression'
import { transformElement } from '../../src/transforms/transformElement'
const ast = parse(template)
transform(ast, {
nodeTransforms: [
+ transformFor,
...(options.prefixIdentifiers ? [transformExpression] : []),
transformText,
transformElement
expect(generate(root).code).toMatchSnapshot()
})
+ test('<template v-for>', () => {
+ const root = transformWithTextOpt(
+ `<template v-for="i in list">foo</template>`
+ )
+ expect(root.children[0].type).toBe(NodeTypes.FOR)
+ const forNode = root.children[0] as ForNode
+ // should convert template v-for text children because they are inside
+ // fragments
+ expect(forNode.children[0]).toMatchObject({
+ type: NodeTypes.TEXT_CALL
+ })
+ expect(generate(root).code).toMatchSnapshot()
+ })
+
test('with prefixIdentifiers: true', () => {
const root = transformWithTextOpt(`{{ foo }} bar {{ baz + qux }}`, {
prefixIdentifiers: true
// Merge adjacent text nodes and expressions into a single expression
// e.g. <div>abc {{ d }} {{ e }}</div> should have a single expression node as child.
export const transformText: NodeTransform = (node, context) => {
- if (node.type === NodeTypes.ROOT || node.type === NodeTypes.ELEMENT) {
+ if (
+ node.type === NodeTypes.ROOT ||
+ node.type === NodeTypes.ELEMENT ||
+ node.type === NodeTypes.FOR
+ ) {
// perform the transform on node exit so that all expressions have already
// been processed.
return () => {