diff --git a/packages/compiler-core/__tests__/transforms/transformElement.spec.ts b/packages/compiler-core/__tests__/transforms/transformElement.spec.ts index 072d34950..ae44be684 100644 --- a/packages/compiler-core/__tests__/transforms/transformElement.spec.ts +++ b/packages/compiler-core/__tests__/transforms/transformElement.spec.ts @@ -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( + `
`, + { + 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( `
`