@@ -10,12 +10,13 @@ const loadSrc = require('./utils').loadSrc
10
10
const babelTransformer = require ( 'babel-jest' ) . default
11
11
const generateCode = require ( './generate-code' )
12
12
const mapLines = require ( './map-lines' )
13
+ const vueComponentNamespace = require ( './constants' ) . vueComponentNamespace
13
14
14
15
let isVue27 = false
15
16
let compilerUtils
16
17
17
18
try {
18
- compilerUtils = require ( '@ vue/compiler-sfc' )
19
+ compilerUtils = require ( 'vue/compiler-sfc' )
19
20
isVue27 = true
20
21
} catch ( e ) {
21
22
compilerUtils = require ( '@vue/component-compiler-utils' )
@@ -59,6 +60,7 @@ function processScriptSetup(descriptor, filePath, config) {
59
60
const vueJestConfig = getVueJestConfig ( config )
60
61
const content = compilerUtils . compileScript ( descriptor , {
61
62
id : filePath ,
63
+ reactivityTransform : true ,
62
64
...vueJestConfig . compilerOptions
63
65
} )
64
66
const contentMap = mapLines ( descriptor . scriptSetup . map , content . map )
@@ -92,6 +94,7 @@ function processTemplate(descriptor, filename, config) {
92
94
if ( isVue27 && scriptSetup ) {
93
95
const scriptSetupResult = compilerUtils . compileScript ( descriptor , {
94
96
id : filename ,
97
+ reactivityTransform : true ,
95
98
...vueJestConfig . compilerOptions
96
99
} )
97
100
bindings = scriptSetupResult . bindings
@@ -107,7 +110,7 @@ function processTemplate(descriptor, filename, config) {
107
110
preprocessOptions : vueJestConfig [ template . lang ] ,
108
111
...userTemplateCompilerOptions ,
109
112
compilerOptions : {
110
- optimize : false ,
113
+ ... ( ! isVue27 ? { optimize : false } : { } ) ,
111
114
...userTemplateCompilerOptions . compilerOptions
112
115
} ,
113
116
...( isVue27 ? { bindings } : { } )
@@ -136,17 +139,21 @@ function processStyle(styles, filename, config) {
136
139
module . exports = function ( src , filename , config ) {
137
140
const descriptor = compilerUtils . parse ( {
138
141
source : src ,
139
- compiler : VueTemplateCompiler ,
142
+ compiler : isVue27 ? undefined : VueTemplateCompiler ,
140
143
filename
141
144
} )
142
145
146
+ const componentNamespace =
147
+ getVueJestConfig ( config ) [ 'componentNamespace' ] || vueComponentNamespace
148
+
143
149
const templateResult = processTemplate ( descriptor , filename , config )
144
150
const scriptResult = processScript ( descriptor . script , filename , config )
145
151
const scriptSetupResult = processScriptSetup ( descriptor , filename , config )
146
152
const stylesResult = processStyle ( descriptor . styles , filename , config )
147
153
const customBlocksResult = processCustomBlocks (
148
154
descriptor . customBlocks ,
149
155
filename ,
156
+ componentNamespace ,
150
157
config
151
158
)
152
159
0 commit comments