mochapack Cannot assign to read only property 'exports' of object

168 Views Asked by At

I would like to create a vuejs unit test for components. I follow this official tutorial vuejs : Vuejs component unit test

I have created those file :

setup.js (main script for all test) :

require('jsdom-global')()

global.expect = require('expect')

// import jsdomGlobal from 'jsdom-global'
// export const jsdonGlobal = require('jsdom-global')

home.spec.js (unit test component file) :

import Vue from 'vue'
import { shallowMount } from '@vue/test-utils'
import Home from '../../src/page/Home.vue'
// import Home from '@/components/Home'

describe('Home.vue', () => {
  it('test the test', async () => {
    const wrapper = shallowMount(Home)
    let divContainer = wrapper.find('div.container')
    expect(divContainer.children()).to.have.length(12)
  })
})

my babel.config.js :

module.exports = {
presets: [
    '@vue/app',
    '@babel/preset-env'
],

}

and this my 'npm run test' command :

 "mochapack --webpack-config webpack.config.js --require test/setup.js test/**/*.spec.js"

All of this generate a 'Cannot assign to read only property 'exports' of object '#' error

others informations :

  • if a comment all line into setup.js and Home.spec.js file the behavior is identic (very strange behavior which difficult to understand where is the error)
  • I already try this preset Babel ('@babel/preset-env') for transpiling
  • I don't have a export instruction into my setup.js file and Home.spec.js file

Can you help me to understand why I have to error and how I can resolve this ?

The all others questions don't help me to resolve this because I don't have export instruction into my test code...

0

There are 0 best solutions below