Тестирование nuxt + vue + уценка - PullRequest
1 голос
/ 09 марта 2020

У меня новый проект 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.

...