diff --git a/e2e/__projects__/basic/components/TemplateString.vue b/e2e/__projects__/basic/components/TemplateString.vue
new file mode 100644
index 00000000..7454d234
--- /dev/null
+++ b/e2e/__projects__/basic/components/TemplateString.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
diff --git a/e2e/__projects__/basic/package.json b/e2e/__projects__/basic/package.json
index 0ed65a1a..d6cbbcb1 100644
--- a/e2e/__projects__/basic/package.json
+++ b/e2e/__projects__/basic/package.json
@@ -38,6 +38,13 @@
"vue-jest": {
"pug": {
"basedir": "./"
+ },
+ "templateCompiler": {
+ "transpileOptions": {
+ "transforms": {
+ "dangerousTaggedTemplateString": true
+ }
+ }
}
}
}
diff --git a/e2e/__projects__/basic/test.js b/e2e/__projects__/basic/test.js
index 20adeb87..51a5bc2b 100644
--- a/e2e/__projects__/basic/test.js
+++ b/e2e/__projects__/basic/test.js
@@ -1,5 +1,6 @@
import { mount } from '@vue/test-utils'
import TypeScript from './components/TypeScript.vue'
+import TemplateString from './components/TemplateString.vue'
import { resolve } from 'path'
import { readFileSync } from 'fs'
import jestVue from 'vue-jest'
@@ -81,6 +82,15 @@ test('processes .vue files with lang set to typescript', () => {
expect(wrapper.element.tagName).toBe('DIV')
})
+test('processes .vue files with template strings in the template', () => {
+ const wrapper = mount(TemplateString)
+ expect(wrapper.attributes('data-sth')).toBe(`
+ query {
+ id
+ }
+ `)
+})
+
test('processes functional components', () => {
const clickSpy = jest.fn()
const wrapper = mount(FunctionalSFC, {
diff --git a/lib/process.js b/lib/process.js
index bdd00e37..1a462dc5 100644
--- a/lib/process.js
+++ b/lib/process.js
@@ -57,16 +57,21 @@ function processTemplate(template, filename, config) {
template.content = loadSrc(template.src, filename)
}
+ const userTemplateCompilerOptions = vueJestConfig.templateCompiler || {}
const result = compilerUtils.compileTemplate({
source: template.content,
compiler: VueTemplateCompiler,
filename: filename,
- compilerOptions: {
- optimize: false
- },
isFunctional: template.attrs.functional,
preprocessLang: template.lang,
- preprocessOptions: vueJestConfig[template.lang]
+ preprocessOptions: vueJestConfig[template.lang],
+ ...userTemplateCompilerOptions,
+ compilerOptions: {
+ optimize: false,
+ ...userTemplateCompilerOptions.compilerOptions
+ },
+ transformAssetUrls: { ...userTemplateCompilerOptions.transformAssetUrls },
+ transpileOptions: { ...userTemplateCompilerOptions.transpileOptions }
})
logResultErrors(result)