@@ -63,3 +63,55 @@ describe('transform', () => {
63
63
expect ( await ctx . transform ( code , '' ) ) . toMatchSnapshot ( )
64
64
} )
65
65
} )
66
+
67
+ describe ( 'Component and directive as same name' , ( ) => {
68
+ it ( 'vue2 transform should work' , async ( ) => {
69
+ const code = `
70
+ var render = function () {
71
+ var _vm = this
72
+ var _h = _vm.$createElement
73
+ var _c = _vm._self._c || _h
74
+ return _c("loading", {
75
+ directives: [
76
+ { name: "loading", rawName: "v-loading", value: 123, expression: "123" }
77
+ ]
78
+ })
79
+ }
80
+ var staticRenderFns = []
81
+ render._withStripped = true
82
+ export { render, staticRenderFns }
83
+ `
84
+
85
+ const ctx = new Context ( {
86
+ resolvers : [ resolver ] ,
87
+ transformer : 'vue2' ,
88
+ directives : true ,
89
+ } )
90
+ ctx . sourcemap = false
91
+ expect ( await ctx . transform ( code , '' ) ) . toMatchSnapshot ( )
92
+ } )
93
+
94
+ it ( 'vue3 transform should work' , async ( ) => {
95
+ const code = `
96
+ const render = (_ctx, _cache) => {
97
+ const _component_el_infinite_scroll = _resolveComponent("el-infinite-scroll")
98
+ const _directive_el_infinite_scroll = _resolveDirective("el-infinite-scroll")
99
+
100
+ return _withDirectives(
101
+ (_openBlock(),
102
+ _createBlock(_component_test_comp, null, null, 512 /* NEED_PATCH */)),
103
+ [[_directive_loading, 123]]
104
+ )
105
+ }
106
+ `
107
+
108
+ const ctx = new Context ( {
109
+ resolvers : [ resolver ] ,
110
+ transformer : 'vue3' ,
111
+ directives : true ,
112
+ } )
113
+ ctx . sourcemap = false
114
+ expect ( await ctx . transform ( code , '' ) ) . toMatchSnapshot ( )
115
+ } )
116
+ } )
117
+
0 commit comments