vue-test-utils с jest бросает неожиданную ошибку токена для оператора распространения карты - PullRequest
0 голосов
/ 08 мая 2018

Я пытался настроить тестирование для моего проекта Vue, следуя этому руководству https://vue -test-utils.vuejs.org / en / guides / testing-SFCs-with-jest.html

Я закончил руководство и создал тест для одного из моих компонентов. Затем я запустил jest и получил ошибку ниже:

unknown: Unexpected token (10:4)
         8 | export default {
         9 |   computed: {
      > 10 |     ...mapGetters([
           |     ^
        11 |       'user'
        12 |     ])
        13 |   }

Я погуглил эту ошибку и посмотрел другие примеры проектов, но пока не знаю, как это исправить.

Любая помощь будет оценена.

App.vue

<template>
  <div id="app" />
</template>

<script>
  import { mapGetters } from 'vuex'

  export default {
    computed: {
      ...mapGetters([
        'user'
      ])
    }
  }
</script>

App.spec.js

import { shallow } from '@vue/test-utils'
import App from './App'

describe('App', () => {

  it('works', () => {
    const wrapper = shallow(App)

    expect(wrapper.isVueInstance()).toBeTruthy()
  })
})

.babelrc

{
"presets": [
    ["env", { "modules": false }]
  ],
  "env": {
    "test": {
      "presets": [
        ["env", { "targets": { "node": "current" }}]
      ]
    }
  }
}

package.json (просто шутка)

"jest": {
    "moduleFileExtensions": [
      "js",
      "json",
      "vue"
    ],
    "transform": {
      ".*\\.(vue)$": "<rootDir>/node_modules/vue-jest",
      "^.+\\.js$": "<rootDir>/node_modules/babel-jest"
    },
    "snapshotSerializers": [
      "<rootDir>/node_modules/jest-serializer-vue"
    ],
    "moduleNameMapper": {
      "^@/(.*)$": "<rootDir>/src/$1"
    }
  }

1 Ответ

0 голосов
/ 18 июня 2018

С помощью этого ответа: SyntaxError для оператора распространения, при использовании предустановки babel env

Чтобы использовать оператор распространения, вы должны использовать babel-plugin-transform-object-rest-spread,поэтому установите его: npm install --save-dev babel-plugin-transform-object-rest-spread

И добавьте его под опцией «plugins» в .babelrc: "plugins": ["transform-object-rest-spread"]

Также посмотрите на https://vue -test-utils.vuejs.org/guides/#mocking-getters, чтобы высмеивать ваши геттеры в тесте.

...