12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- import { prefixIdentifiers } from '../src/prefixIdentifiers'
- import { compile } from 'web/entry-compiler'
- import { format } from 'prettier'
- import { BindingTypes } from '../src/types'
- const toFn = (source: string) => `function render(){${source}\n}`
- it('should work', () => {
- const { render } = compile(`<div id="app">
- <div :style="{ color }">{{ foo }}</div>
- <p v-for="i in list">{{ i }}</p>
- <foo inline-template>
- <div>{{ bar }}</div>
- </foo>
- </div>`)
- const result = format(prefixIdentifiers(toFn(render)), {
- semi: false,
- parser: 'babel'
- })
- expect(result).not.toMatch(`_vm._c`)
- expect(result).toMatch(`_vm.foo`)
- expect(result).toMatch(`_vm.list`)
- expect(result).toMatch(`{ color: _vm.color }`)
- expect(result).not.toMatch(`_vm.i`)
- expect(result).not.toMatch(`with (this)`)
- expect(result).toMatchInlineSnapshot(`
- "function render() {
- var _vm = this,
- _c = _vm._self._c
- return _c(
- \\"div\\",
- { attrs: { id: \\"app\\" } },
- [
- _c(\\"div\\", { style: { color: _vm.color } }, [_vm._v(_vm._s(_vm.foo))]),
- _vm._v(\\" \\"),
- _vm._l(_vm.list, function (i) {
- return _c(\\"p\\", [_vm._v(_vm._s(i))])
- }),
- _vm._v(\\" \\"),
- _c(\\"foo\\", {
- inlineTemplate: {
- render: function () {
- var _vm = this,
- _c = _vm._self._c
- return _c(\\"div\\", [_vm._v(_vm._s(_vm.bar))])
- },
- staticRenderFns: [],
- },
- }),
- ],
- 2
- )
- }
- "
- `)
- })
- it('setup bindings', () => {
- const { render } = compile(`<div @click="count++">{{ count }}</div>`)
- const result = format(
- prefixIdentifiers(toFn(render), false, false, undefined, {
- count: BindingTypes.SETUP_REF
- }),
- {
- semi: false,
- parser: 'babel'
- }
- )
- expect(result).toMatch(`_setup = _vm._self._setupProxy`)
- expect(result).toMatch(`_setup.count++`)
- expect(result).toMatch(`_vm._s(_setup.count)`)
- expect(result).toMatchInlineSnapshot(`
- "function render() {
- var _vm = this,
- _c = _vm._self._c,
- _setup = _vm._self._setupProxy
- return _c(
- \\"div\\",
- {
- on: {
- click: function (\$event) {
- _setup.count++
- },
- },
- },
- [_vm._v(_vm._s(_setup.count))]
- )
- }
- "
- `)
- })
|