У меня новый проект Nuxt, и я использую markdownit для некоторых страниц с <template lang="md">
. Проект строится и визуализируется нормально, но когда я пытаюсь написать для него шутливые тесты, страницы уценки не анализируются соответствующим загрузчиком.
Вот страница уценки:
<template lang="md">
# About Us
...
</template>
Моя тестовая настройка в tests/pages.spec.js
:
let nuxt = null
beforeAll(async () => {
const config = {
dev: false,
rootDir: resolve(__dirname, '..')
}
nuxt = new Nuxt(config)
await new Builder(nuxt).build()
await nuxt.server.listen(4000, 'localhost')
}, 30000)
// Close server and ask nuxt to stop listening to file changes
afterAll(() => {
nuxt.close()
})
describe('Main page', () => {
// Init Nuxt.js and create a server listening on localhost:4000
// Example of testing only generated html
test('Route / exits and render HTML', async () => {
const context = {}
const { html } = await nuxt.server.renderRoute('/', context)
expect(html).toContain('About Us')
})
Моя nuxt.config.js
имеет следующее:
buildModules: [
// Doc: https://github.com/nuxt-community/eslint-module
'@nuxtjs/eslint-module',
'@nuxtjs/vuetify',
'@nuxtjs/markdownit',
'nuxt-responsive-loader', // process image srcsets
],
Когда я запускаю jest
, я получаю такую ошибку:
Nuxt build error
ERROR in ./pages/about.vue?vue&type=template&id=fd87bea8&lang=md& (./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./pages/about.vue?vue&type=template&id=fd87bea8&lang=md&)
Module Error (from ./node_modules/vue-loader/lib/loaders/templateLoader.js): (Emitted value instead of an instance of Error)
Errors compiling template:
Component template requires a root element, rather than just text.
1 |
|
2 | # About Us
| ^^^^^^^^^^
Кажется, что vue-loader
обрабатывает его, но в контексте jest он не добавляет markdownit-loader
для обработки уценки так, как при сборке или запуске сервера dev.