test(compiler): test for DirectiveTransform returning needRuntime: Symbol

This commit is contained in:
Evan You 2019-10-10 18:05:43 -04:00
parent d376439167
commit e6d0d08a43

View File

@ -5,7 +5,8 @@ import {
MERGE_PROPS,
RESOLVE_DIRECTIVE,
APPLY_DIRECTIVES,
TO_HANDLERS
TO_HANDLERS,
helperNameMap
} from '../../src/runtimeHelpers'
import {
CallExpression,
@ -349,6 +350,29 @@ describe('compiler: element transform', () => {
])
})
test('directiveTransform with needRuntime: Symbol', () => {
const { root, node } = parseWithElementTransform(
`<div v-foo:bar="hello" />`,
{
directiveTransforms: {
foo() {
return {
props: [],
needRuntime: CREATE_VNODE
}
}
}
}
)
expect(root.helpers).toContain(CREATE_VNODE)
expect(root.helpers).not.toContain(RESOLVE_DIRECTIVE)
expect(root.directives.length).toBe(0)
expect((node as any).arguments[1].elements[0].elements[0]).toBe(
`_${helperNameMap[CREATE_VNODE]}`
)
})
test('runtime directives', () => {
const { root, node } = parseWithElementTransform(
`<div v-foo v-bar="x" v-baz:[arg].mod.mad="y" />`